首页 > 代码库 > JS动画之速度动画和透明度变化
JS动画之速度动画和透明度变化
一、运动框架实现思路:
1.速度(改变值left、right、width、height、opacity)
2.缓冲运动
3.多物体运动
4.任意值变动
5.链式运动
6.同时运动
二、匀速运动:
1、设置定时器,每隔一段时间更改位置,达到匀速运动
2、设置定时器前需清除定时器,以防多次触发重复生成多个定时器
3、当运动位置达到目标值时,可通过清除定时器停止运动
4、当定义函数多处相同时,可封装为一个函数,用不同参数调用,尽量少传递相同的参数
window.onload = function(){
var oDiv = document.getElementById("div1");
oDiv.onmouseover = function(){
startMove(0);
}
oDiv.onmouseout = function(){
startMove(-200);
}
}
var timer=null;
function startMove(iTarget){
clearInterval(timer);
var oDiv = document.getElementById("div1");
timer=setInterval(function(){
var speed=0;
if(oDiv.offsetLeft>iTarget){
speed=-10;
}
else{speed=10;}
if(oDiv.offsetLeft==iTarget){
clearInterval(timer);
}
else{
oDiv.style.left=oDiv.offsetLeft+speed+"px";
}
},30)
}
三、透明动画
// #div1{
// width:200px;
// height:200px;
// background:red;
// 所有主流浏览器(IE,Firefox,Opera,Chrome,Safari)都支持opacity属性
// 注意:IE8和早期版本支持另一种过滤器属性。像:filter:Alpha(opacity=50)
// filter:alpha(opacity:30);
// opacity:0.3;
// }
window.onload=function(){
var oDiv=document.getElementById("div1");
oDiv.onmouseover=function(){
startMove(100);
}
oDiv.onmouseout=function(){
startMove(30);
}
}
var timer=null;
var alpha=30;
function startMove(iTarget){
var oDiv=document.getElementById("div1");
clearInterval(timer);
timer=setInterval(function(){
var speed=0;
if(alpha>iTarget){
speed=-10;
}
else{
speed=10;
}
if(alpha==iTarget){
clearInterval(timer);
}
else{
alpha+=speed;
oDiv.style.filter="alpha(opacity:"+alpha+")";
oDiv.style.opacity=alpha/100;
}
},30)
}
JS动画之速度动画和透明度变化