码迷,mamicode.com
首页 > Web开发 > 详细

JS动画之速度动画和透明度变化

时间:2016-09-15 22:48:44      阅读:532      评论:0      收藏:0      [点我收藏+]

标签:

一、运动框架实现思路:
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动画之速度动画和透明度变化

标签:

原文地址:http://www.cnblogs.com/jiaoli/p/5875527.html

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