zoukankan      html  css  js  c++  java
  • css3 html5画心

    以下内容不是原创 我是搬运工

    1.

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8"/>
    <title>myHeart</title>
    <style type="text/css">
    *{
    margin: 0;
    padding: 0;
    }
    .heart{
    position:absolute;
    left: 50%;
    top:50%;
    margin-left: -150px;
    margin-top: -135px;
    300px;
    height:270px;
    background: transparent;
    /*box-shadow: 2px 2px 5px #000;*/
    filter:drop-shadow(0px 0px 20px rgb(255,20,20));
    animation: test 1s linear infinite;
    }
    .heart:before,
    .heart:after{
    content: "";
    position: absolute;
    left: 150px;
    150px;
    height: 240px;
    background: rgb(255,0,0);
    border-radius: 150px 150px 0 0;
    transform:rotate(-45deg);
    transform-origin: 0 100%;
    }
    .heart:after{
    left: 0;
    transform:rotate(45deg);
    transform-origin: 100% 100%;
    }
    @keyframes test{
    0%{
    transform: scale(0.8,0.8);
    opacity: 1;
    }
    25%{
    transform: scale(1,1);
    opacity: 0.8;
    }
    100%{
    transform: scale(0.8,0.8);
    opacity: 1;
    }
    }
    </style>
    </head>
    <body>
    <div class="heart"></div>
    <script>
    // alert(window.navigator.userAgent);
    </script>
    </body>
    </html>

    2.

    <!DOCTYPE html>
    <html>
    <head>
    <title>Draw Heart</title>
    <style type="text/css">
    * {
    margin: 0;
    padding: 0;
    }

    html {
    height: 100%;
    margin: 0;
    }

    body {
    height: 100%;
    background-color:white;
    }

    #canvasZone {
    100%;
    height: 100%;
    text-align: center;
    background-color: black;
    }

    #myCanvas {
    height:100%;
    display: block;
    /*background-color:aqua;*/
    }
    </style>
    <script type="text/javascript">
    var arr = [];//保存所有的XY坐标,只为验证。实际程序中可删除。
    var r = 4;
    var radian;//弧度
    var i;
    var radianDecrement;//弧度增量
    var time = 10;//每个点之间的时间间隔
    var intervalId;
    var num = 360;//分割为 360 个点
    var startRadian = Math.PI;
    var ctx;
    window.onload = function () {
    startAnimation();
    }
    function startAnimation() {
    ctx = document.getElementById("myCanvas").getContext("2d");
    //让画布撑满整个屏幕,-20是滚动条的位置,需留出。如滚动条出现则会挤压画布。
    WINDOW_HEIGHT=document.documentElement.clientHeight-20;
    WINDOW_WIDTH=document.documentElement.clientWidth-20;
    ctx.width = WINDOW_WIDTH;
    ctx.heigh = WINDOW_HEIGHT;
    drawHeart();
    }

    function drawHeart() {

    ctx.strokeStyle = "red";
    ctx.lineWidth = 1;//设置线的宽度
    radian = startRadian;//弧度设为初始弧度
    radianDecrement = Math.PI / num * 2;
    ctx.moveTo(getX(radian), getY(radian));//移动到初始点
    i = 0;
    intervalId = setInterval("printHeart()", time);
    }
    //x = 16 sin^3 t, y = (13 cos t - 5 cos 2t - 2 cos 3t - cos 4t)
    function printHeart() {
    radian += radianDecrement;
    ctx.lineTo(getX(radian), getY(radian));//在旧点和新点之间连线
    //arr.push("X:" + getX(radian) + "<br/>Y:" + getY(radian) + "<br/>");
    i++;
    ctx.stroke();//画线
    if (i >= num) {
    clearInterval(intervalId);
    //document.getElementById("bs").innerHTML = arr.join("");//打印所有的XY坐标点。
    }
    }
    function getX(t) {//由弧度得到 X 坐标
    return 100 + r * (16 * Math.pow(Math.sin(t), 3));
    }

    function getY(t) {//由弧度得到 Y 坐标
    return 50 - r * (13 * Math.cos(t) - 5 * Math.cos(2 * t) - 2 * Math.cos(3 * t) - Math.cos(4 * t));
    }
    </script>
    </head>
    <body>
    <div id="canvasZone">
    <canvas id="myCanvas"></canvas>
    </div>
    <div id="bs">
    </div>
    </body>
    </html>

  • 相关阅读:
    multilabel-multiclass classifier
    关于zabbix _get返回Could not attach to pid的问题
    python导出环境依赖到req,txt文件中
    inode满的解决方法
    搞定面试官:咱们从头到尾再说一次 Java 垃圾回收
    SpringBoot项目,如何优雅的把接口参数中的空白值替换为null值?
    万万没想到,JVM内存区域的面试题也可以问的这么难?
    万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题…..
    npm私服verdaccio报sha错误的解决方案
    配置SQL Server 2016无域AlwaysOn(转)
  • 原文地址:https://www.cnblogs.com/moli-/p/6322495.html
Copyright © 2011-2022 走看看