zoukankan      html  css  js  c++  java
  • 重力回弹 好玩的小随笔

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
    .cont{
    1000px;
    height: 600px;
    background: #eee;
    margin: 20px auto;
    position: relative;
    }
    .box{ 100px;height: 100px;background: red;position: absolute;left: 0;border-radius: 50%;}
    </style>
    </head>
    <body>
    <div class="cont">
    <div class="box"></div>
    </div>
    </body>
    <script type="text/javascript">
    var obox = document.querySelector(".box");
    var ocont = document.querySelector(".cont");

    var speed = 10; //步长
    var target = ocont.clientHeight - obox.offsetHeight; //目标
    var g = 2; //重力
    var timer; //计时器

    document.onclick = function(){
    // 点击之前先清除,上一次
    clearInterval(timer)
    timer = setInterval(()=>{
    // 重力加速
    speed += g;
    // 判断是否到重点
    if(speed >= target-obox.offsetTop){
    // 强行确认到重点
    obox.style.top = target + "px";
    // 回弹,回弹损耗
    speed = -parseInt(speed*0.8);
    // console.log(speed)
    // 当回弹不足1的时候,意味着不再弹起了,就可以清除计时器了
    if(Math.abs(speed) < 1){
    clearInterval(timer)
    obox.style.top = target + "px";
    }
    }else{
    // 生效位置
    obox.style.top = obox.offsetTop + speed + "px";
    }
    },30) //频率
    }


    </script>
    </html>

  • 相关阅读:
    深入浅出Nginx
    图解MySQL索引BTree(B+Tree)
    postman升级后,collection集合中的接口找不到了
    PHP抖音SDK搭建问题整理
    vi10
    vi8
    vi9
    vi4
    shell 自动输入密码
    LINUX平台可以用GDB进行反汇编和调试。
  • 原文地址:https://www.cnblogs.com/CH-cnblogs/p/13526809.html
Copyright © 2011-2022 走看看