============================================================================
运动小框架:
要记得先关后开
<style>
#div1{
width: 200px; height: 200px;background-color: aqua;position: absolute; top: 50px; left: 10px;
}
</style>
<script>
window.onload=function(){
var obtn=document.getElementById('btn1')
var odiv=document.getElementById('div1')
var timer=null;
var speed=7
obtn.onclick=function()
{
clearInterval(timer)//防止同时开很多定时器!!
timer=setInterval(function(){
if(odiv.offsetLeft>=300)//在规定位置停下
{
clearInterval(timer)
}
else
{
odiv.style.left=odiv.offsetLeft+speed+'px';
}
}, 30);
}
}
</script>
</head>
<body>
<input id="btn1" type="button" value="开始运动">
<div id="div1"></div>
</body>
============================================================================
!!函数一般在保证功能相同的情况下,参数越少越好
模拟缩进屏幕运动:
效果:
代码:
<script>
window.onload=function(){
var odiv=document.getElementById('div1')
var timer=null;
odiv.onmouseover=function(){
setrun(0)
}
odiv.onmouseout=function(){
setrun(-200)
}
function setrun(end){//使用运动小框架
clearInterval(timer)
timer=setInterval(function(){
var speed=0
if(odiv.offsetLeft<end)
{
speed=5
}
else
{
speed=-5
}
if(Math.abs(end-odiv.offsetLeft)<=speed)
//最后距离绝对值少于运动一次的距离防止过头
{
clearInterval(timer)
odiv.style.left=end+‘px’//最后一次移动直接移到终点
}
else
{
odiv.style.left=odiv.offsetLeft+speed+'px'
}
},30)
}
}
</script>
</head>
<body>
<div id="div1">
<span>分享到</span>
</div>
</body>
模拟透明度变化:
效果:
代码:
<style>
#div1{//filter--->兼容IE浏览器 opacity--->兼容chrom浏览器
width: 200px;height: 200px;background-color: blueviolet; filter : alpha(opacity=30); opacity :0.3; }
</style>
<script>
window.onload=function(){
var odiv=document.getElementById('div1')
var timer=null;
var alpha=30;//与运动不同,要用一个变量模拟当前透明度
odiv.onmouseover=function(){
set_opacity(100)
}
odiv.onmouseout=function(){
set_opacity(30)
}
function set_opacity(iend){
var odiv=document.getElementById('div1')
clearInterval(timer)
timer=setInterval(function()
{
var speed=0
if(alpha<iend)
{
speed=5
}
else
{
speed=-5
}
if(alpha==iend)
{
clearInterval(timer)
}
else
{
alpha+=speed;
odiv.style.filter='alpha(opacity='+alpha+')';
odiv.style.opacity=alpha/100;//在最后填充回css中
}
},30)
}
}
</script>
</head>
<body>
<div id="div1"></div>