js动画效果(移动、变化效果)实现整理
2017-04-21 18:10
597 查看
如在前两篇博客中的效果,图片实现减速滑动到指定位置,在网页效果上看起来比较美观,对用户比较友善,这种效果的实现整理下发现有一个固定的模式。
实现步骤:
定义需要修改的属性当前值:var current = 0;
定义需要修改的属性目标值:var target = 值;
定义一个定时器对象:var timeinter= null;
借助setInterval来循环按针每20毫秒修改current值一次
当current值和target值相等时,则停止setInterval方法的执行
值得注意的是,在每次调用setinterval这个方法前,要清空之前的setinterval,不然会出现多个同时跑。这里可以理解为java的线程,每次运行setinterval都跑了一个小线程,而我们想要的效果是每次只跑一个线程,如果不清空就会导致多个setinterval作用在一个对象上面,使得动画效果越来越快或出现其他不正常的效果。定时器timeinter的作用就是在下一个setingerval跑之前清空前一个。
代码结构示例:
var srcInter = null;
var current = 0;
window.onscroll = function () {
var target = 400;
clearInterval(timeinter);
timeinter= setInterval(function(){
current = current +(target-current)/20;
obj.style.top = current+"px"; //实现obj对象的移动效果
},20);
}
实现步骤:
定义需要修改的属性当前值:var current = 0;
定义需要修改的属性目标值:var target = 值;
定义一个定时器对象:var timeinter= null;
借助setInterval来循环按针每20毫秒修改current值一次
当current值和target值相等时,则停止setInterval方法的执行
值得注意的是,在每次调用setinterval这个方法前,要清空之前的setinterval,不然会出现多个同时跑。这里可以理解为java的线程,每次运行setinterval都跑了一个小线程,而我们想要的效果是每次只跑一个线程,如果不清空就会导致多个setinterval作用在一个对象上面,使得动画效果越来越快或出现其他不正常的效果。定时器timeinter的作用就是在下一个setingerval跑之前清空前一个。
代码结构示例:
var srcInter = null;
var current = 0;
window.onscroll = function () {
var target = 400;
clearInterval(timeinter);
timeinter= setInterval(function(){
current = current +(target-current)/20;
obj.style.top = current+"px"; //实现obj对象的移动效果
},20);
}
相关文章推荐
- 图片的左右移动,js动画效果实现代码
- js 实现简单的动画效果(小圆移动)
- 使用JS实现气泡跟随鼠标移动的动画效果
- js实现div整块向上移动的动画效果
- 原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
- 图片的左右移动,js动画效果实现代码
- js 实现层随滚动条移动效果
- google曾经的首页小图标,JS+CSS实现的动画效果
- Js实现图片缩放上下左右移动效果
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
- 用js实现的动画效果
- 用javascript实现以个动画效果(可以上下左右的移动)
- JS+CSS实现Google首页的动画效果
- JS打开层/关闭层/移动层动画效果的实例代码
- JS实现鼠标移动到缩略图显示大图的图片放大效果
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
- VC实现图片移动(动画效果)
- js+ asp.Net ajax开发163邮箱效果(列表底色、多选拖动等)--列表底色随鼠标移动变化
- js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
- JS 进度条效果实现代码整理