鱼C论坛

 找回密码
 立即注册
查看: 2206|回复: 0

[学习笔记] JS.006:WEB API总结(03动画函数)

[复制链接]
发表于 2020-7-21 00:50:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 小脑斧 于 2020-7-22 10:20 编辑

定时器使用之
协议按钮禁用
<body>
<textarea name="texta" id="" cols="30" rows="10">
  这个世界,,,,,,,,,,,,,,,,
</textarea>
<input type="button" value="请仔细阅读协议(5)" id="btn" disabled="disabled" />
<script src="jquery-3.2.1/jquery-3.2.1.js"></script>
<script>
function myId(id) {
        return document.getElementById(id);
    }
  var time=5;
 var timeId= setInterval(function () {
    time--;
   myId("btn").value="请仔细阅读协议("+time+")";
    if(time<=0){
      //停止定时器就可以
      clearInterval(timeId);
      //按钮可以被点击了
      myId("btn").disabled=false;
      myId("btn").value="同意";
    }
  },1000);
</script>
</body>
案例div变化

<body>
<div id="dv"></div>
<input type="button" value="渐变" id="btn"/>
<script src="jquery-3.2.1/jquery-3.2.1.js"></script>
<script>
 //颜色透明度变化
myId("btn").onclick=function () {

 var opacity=10;
 //按钮的点击事件
var timeId=setInterval(function () {
 //透明化了
opacity--;
if(opacity<=0){
 clearInterval(timeId);//清理定时器
}
 //设置div的透明度
myId("dv").style.opacity=opacity/10;
 },200);
 };
</script>
</body>

div宽度变化

<body>
<input type="button" value="变宽" id="btn"/>
<div id="dv"></div>
<script src="记得修改.js"></script>
<script>
  myId("btn").onclick = function () {
    var width = 200;
    var timeId = setInterval(function () {
      width+=10;
      if(width==800){
        clearInterval(timeId);
      }
      myId("dv").style.width=width+"px";
    }, 20);
  };
</script>
</body>


案例div移动封装函数(重点)
<body>
<input type="button" id="btn1" value="移到400px">
<input type="button" id="btn2" value="移到800px">
<div id="dv" ></div>
<script src="jquery-3.2.1/jquery-3.2.1.js"></script>
<script>
//div要移动,要脱离文档流---position:absolute
  //如果样式的代码是在style的标签中设置,外面是获取不到
  //如果样式的代码是在style的属性设置,外面是可以获取
  //获取div的当前位置
  //console.log(myId("dv").offsetLeft);
    //800->400当前与目标比大小
    function myId(id) {
        return document.getElementById(id);
    }</p><p>
 //封装函数
    // function animate(element,target) {
    //     var timeid = setInterval(function () {
    //         var current= element.offsetLeft;//number
    //         var step =10;
    //
    //         if (current<target){
    //             if ((target-current)>step){
    //                 current += step;
    //                 element.style.left = current+"px";
    //             }else {
    //                 element.style.left = target +"px";
    //             }
    //
    //         }else if (current>target){
    //             if ((current-target)>step){
    //                 current -= step;
    //                 element.style.left = current+"px";
    //             }else {
    //                 element.style.left = target +"px";
    //             }
    //         }else {
    //             clearInterval(timeid);
    //         }
    //     },20);
    // }

    // 封装函数精简版
    function animate(element,target){
        //优化代码减少无用定时器
        clearInterval(element.timeid);
          element.timeid = setInterval(function () {
        //var timeid = setInterval(function () {
            var current = element.offsetLeft;
            var step = 10;
            step = current>target?-step:step;
            current += step;

            if (Math.abs(current-target)>Math.abs(step)){//绝对值
                element.style.left = current+"px";
            }else {
                clearInterval(element.timeid);//可一起写
                element.style.left = target +"px";
            }
        },20);
    }
    
    myId("btn1").onclick = function () {
        animate(myId("dv"),400);
    };
    myId("btn2").onclick = function () {
        animate(myId("dv"),800);
    };
</script>
</body>
Scan.jpg



WebstormProjects.zip

78.8 KB, 阅读权限: 10, 下载次数: 46

最后一个的源代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 15:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表