记录:变速函数封装之增加任意一个属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>王侯将相宁有种乎</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            margin-top: 20px;
            width: 200px;
            height: 100px;
            background-color: green;
            position: absolute;
            left: 0;
            top: 0;
        }
    </style>
</head>
<body>
<input type="button" value="变高到800px" id="btn1"/>
<input type="button" value="变宽到400px" id="btn2"/>
<div id="dv"> </div>
<script src="common.js"> </script>
<script>
    //获取任何元素的任意一个样式的属性的值
    function getCssStyle(element,attr) {
      return window.getComputedStyle? window.getComputedStyle(element,null)[attr]: element.currentStyle[attr];
        //得到的属性的值是字符串
    }
    //封装的变速函数动画:任意的元素,增加任意一个属性,到任意的一个距离
   function animate(element,attr,target) {
     clearInterval(element.timeId);//清除定时器
     element.timeId=setInterval(function (args) {
       var current=parseInt(getCssStyle(element,attr));//获取当前元素属性的值,并转换成数字
       var step=(target-current)/10;
       step=step>0?Math.ceil(step):Math.floor(step);
       current+=step;
       element.style[attr]=current+"px";
       if(target==current){
         clearInterval(element.timeId);
       }
     },10)
   }
    my$("btn1").οnclick=function () {
      animate(my$("dv"),"height",800)
    };
    my$("btn2").οnclick=function () {
      animate(my$("dv"),"width",400)
    }
</script>
</body>
</html>

转载于:https://my.oschina.net/u/3848851/blog/1813586

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值