实现效果:当鼠标移动上去时,div逐渐变慢的移除;当鼠标离开时,又逐渐变慢的恢复原位置。
代码:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>缓冲动画</title>
<style type="text/css">
body,div,span{
margin:0;
padding;
}
#div1{
width:200px;
height:200px;
background:red;
position:relative;
left:-200px;
top:0;
}
#div1 span{
width:20px;
height:50px;
background:blue;
position:absolute;
left:200px;
top:75px;
}
</style>
<script>
window.onload = function(){
var odiv = document.getelementbyid('div1');
odiv.onmouseover = function(){
startmove(0);
}
odiv.onmouseout = function(){
startmove(-200);
}
}
var timer = null;
// 参数itarget,设置div移动的边界。
// 取消由 setinterval()设置的每一次触发鼠标事件。
// 设置div的运动。
function startmove(itarget){
clearinterval(timer);
var odiv = document.getelementbyid('div1');
timer = setinterval(function(){
var speed = (itarget - odiv.offsetleft)/20;
speed = speed > 0?math.ceil(speed):math.floor(speed);
if(odiv.offsetleft == itarget){
clearinterval(timer);
}else{
odiv.style.left = odiv.offsetleft+speed+'px';
}
},30)
}
</script>
</head>
<body>
<div id="div1">
<span id="share">分享</span>
</div>
</body>
</html>
以上就是前端实践--javascript--动画(三)的内容。
