标签:turn order int agg top charset 浏览器 rip compute
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#box1{
width: 100px;
height: 100px;
background-color: red;
position: absolute;
left: 0;
/*此处加上left为0,是因为ie浏览器中,自动获取left值显示为
auto.是无法进行计算的,
在css中添加上left的值,ie浏览器就可以获取left的值进行计算
*/
}
</style>
<script type="text/javascript">
window.onload=function(){
//获取box1
var box1=document.getElementById("box1");
var btn=document.getElementById("btn");
var timer;
/*
* 定义一个函数,用来获取指定元素的当前样式
* 参数:
* obj要获取样式的元素
* name要获取的样式名
*/
function getStyle(obj,name){
if(window.getComputedStyle){
//正常浏览器的方式,具有getComputedStyle()方
法
return getComputedStyle(obj,null)[name];
}else{
//ie8的方式,没有getComputedStyle()方法
return obj.currentStyle[name];
}
//return window.getComputedStyle?getComputedStyle(obj,null)[name];
}
//点击按钮以后,使box1向右移动(left值增大)
btn.onclick=function(){
//开启一个定时器,用来执行动画效果
//获取到的left为0px,和数字无法直接相加,需要提取有效数字
//parseInt()函数可解析一个字符串,并返回一个整数
/*
* parseInt()语法:
* parseInt(string,radix);
* string 必需,要被解析的字符串
* radix 可选,表示要解析的数字的基数,该值介于2-36之间
* 如果省略该参数或其值为0,则数字将以10为基础来解析。
* 如果它以“0x”或"0X"开头,将以16为基数
* 如果该参数小于2或者大于36,则parseInt()将返回NaN
*/
//定时器多次点击只开一次,点击两次会关闭上一次定时器
clearInterval(timer);
timer=setInterval(function(){
//获取box1原来的left值
//getStyle()获取当前显示的样式
var oldValue=parseInt(getStyle(box1,"left"));
//在旧值的基础上增加
var newValue=oldValue+10;
//将新值设置给box1
box1.style.left=newValue+"px";
//做个优化,如果加速不是10,相加无法正好等于800,那就无法停下
//判断newValue是否大于800
if(newValue>800){
newValue=800;
}
//当元素移动到800px时,使其停止执行动画
if(newValue==800){
//到达目标,停止动画
clearInterval(timer);
}
},30);
}
}
</script>
</head>
<body>
<button id="btn">点击按钮以后box1向右移动</button>
<br /><br />
<div id="box1"></div>
<div id="" style="width: 0px;height: 1000px; border-left:1px black solid;position: absolute;left: 800px;top: 0;">
</div>
</body>
</html>
总结知识点:
*{
margin: 0;
padding: 0;
}
标签:turn order int agg top charset 浏览器 rip compute
原文地址:https://www.cnblogs.com/c-cl/p/9824953.html