码迷,mamicode.com
首页 > 其他好文 > 详细

封装运动框架单个属性

时间:2017-08-02 00:27:25      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:属性   cli   animate   运动   计算   script   btn   封装   开始   

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>封装运动框架的单个属性</title>
<style>
div{
width: 100px;
height: 100px;
font-weight:bold;">pink;
position: absolute;
left: 10px;
top: 50px;

}
</style>
</head>
<body>
<button id="btn200">200</button>
<button id="btn400">400</button>
<div id="demo"></div>
</body>
</html>
<script>
var btn200 = document.getElementById("btn200");
var btn400 = document.getElementById("btn400");
var demo = document.getElementById("demo");
btn200.onclick = function(){
animate(demo,"width",400);
}
btn400.onclick = function(){
animate(demo,"left",100);
}
function animate(obj,attr,target){
clearInterval(obj.timer);
obj.timer = setInterval(function() {
//先算出步长 盒子的动画原理 盒子本身的样式+步长
//我们怎么知道当前的样式
//得到当前样式后,用(target - current )/10 计算出步长
//得到当前样式 parseInt目的是为了去掉PX
var current = parseInt(getStyle(obj,attr));
var step = (target - current) / 10;
step = step > 0? Math.ceil(step):Math.floor(step); //取整函数

//开始做动画
obj.style[attr] = current + step + "px";
if(target == current){
clearInterval(obj.timer);
}

},30)
}


//封装返回当前样式函数
function getStyle(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}else{
return window.getComputedStyle(obj,null)[attr];
}
}
</script>

封装运动框架单个属性

标签:属性   cli   animate   运动   计算   script   btn   封装   开始   

原文地址:http://www.cnblogs.com/zhaocong/p/7271430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!