从零开始学习前端JAVASCRIPT — 11、JavaScript…
2018-06-24 01:33:39来源:未知 阅读 ()
未完待续。。。。。。
一、运动原理
通过连续不断的改变物体的位置,而发生移动变化。
使用setInterval实现。
匀速运动:速度值一直保持不变。
多物体同时运动:将定时器绑设置为对象的一个属性。
注:物体每次运动都应该把之前的定时器清除掉。
二、边界处理
遇到边界是应该停止掉还是反弹,方向相反。
改变物体运动方向:将物体的速度值取反。
三、加速减速
加速:速度越来越快。
减速:速度越来越慢。
四、抛物线
水平方向有一速度,垂直方向有一速度,并做自由落体。
五、透明度的变换
难点:处理低版本IE和其它浏览器的透明度兼容性问题。
注:IE7/8下:给对象添加opacity属性。
六、缓冲运动
七、多属性缓冲运动函数封装
在定时器内部添加一个标识来判断属性是否都完成。
八、圆周运动
九、链式运动(通过回调函数来完成)
/*
缓冲运动
obj:运动的对象
target:运动属性和终点值的对象
fn:回调函数
ratio:运动系数,默认值为8
*/
function bufferMove(obj, target, fn, ratio = 8) {
// 清除旧的定时器
clearInterval(obj.timer);
// 开启新的定时器
obj.timer = setInterval(function () {
var allOK = true;
for(var attr in target) {
// 获取当前值
var cur = 0;
if(attr === 'opacity') {
cur = parseInt(getStyle(obj, 'opacity') * 100);
} else {
cur = parseInt(getStyle(obj, attr));
}
// 计算速度
var speed = (target[attr] - cur) / ratio;
// 判断方向
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
// 计算下次的值
var next = cur + speed;
// 赋值
if(attr === 'opacity') {
obj.style.opacity = next / 100;
obj.style.filter = 'alpha(opacity=' + next + ')';
} else {
obj.style[attr] = next + 'px';
}
// 判断当前属性是否运动完毕
if(next !== target[attr]) {
allOK = false;
}
}
// 如果allOk为true,则说明所有的运动均已运动完毕
if(allOK) {
// 清除定时器
clearInterval(obj.timer);
// 执行回调函数
if(fn) {
fn();
}
}
}, 50);
}
/*
获取当前样式值
*/
function getStyle(obj, attr) {
if(obj.currentStyle) {
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj, false)[attr];
}
}
附 录
1.无缝循环滚动轮播图
2.淘宝放大镜效果
http://vip2.svnspot.com/rocky.javascript/
3.自适应瀑布流效果
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:justreq测试接口配置服务
- 如何用javascript连接access数据库 2020-03-20
- 在JavaScript中尽可能使用局部变量的原因 2020-03-08
- js调用刷新界面的几种方式 2020-03-05
- 高性能JavaScript循环语句和条件语句 2020-02-21
- Javascript实现前端简单的路由实例 2019-12-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash