javascript动画效果之匀速运动(修订版)
在编写多块同时触发运动的时候,发现一个BUG,
timer = setInterval(show, 30);本来show是一个自定义函数,
当设为timer = setInterval(show(one,two), 30);时,发现show里面的参数one和two无法被导入,所以需要做以下代码改进和优化
原版的html和css代码在这里javascript动画效果之匀速运动
js代码如下
<script>
function $(id) {
return typeof id === "string" ? document.getElementById(id) : id;
} window.onload = function() { //定义变量
var pto = $("div");
var btn = $("show");
var timer = null;
var speed = 0; //鼠标移动绑定事件(一个无名函数)
btn.onmouseenter = function() {
//调用自定义函数,传入参数0为pto.offsetLeft需要达到的距离
showPto(0);
}
//同理
btn.onmouseleave = function() {
//同理
showPto(-200);
} //自定义函数,one为自定义参数
function showPto(one) {
//当前只需要一个定时器,所以需要在每次开始前清除定时器
clearInterval(timer);
//定义一个名为timer的定时器
timer = setInterval(function() {
if (one > pto.offsetLeft) {
//当0>pto.offsetLet时,pto需要被显示,所以speed为正值
speed = 10;
} else {
//同理,需要被隐藏时,speed为负值
speed = -10;
}
if (pto.offsetLeft == one) {
//当pto的值达到0或者-200时候就达到需求了,需要停止定时器,
clearInterval(timer);
} else {
//没有到0或者-200时候,就需要通过speed来自增或自减
pto.style.left = pto.offsetLeft + speed + 'px';
} }, 30);
}
}
</script>
javascript动画效果之匀速运动(修订版)的更多相关文章
- javascript动画效果之匀速运动
html和css写在一起方便看,div通过定位设置为-200隐藏,span也是通过定位定在div靠左的中间 <!DOCTYPE html> <html> <head> ...
- Javascript动画效果(一)
Javascript动画效果(一) 前面我们介绍了Javascript的回到顶部效果,今天呢,我们对Javascript动画做进一步的研究.在这篇博文中我们只介绍简单的匀速运动.简单的缓冲运动和简单的 ...
- Javascript动画效果(三)
Javascript动画效果(三) 前面我们已经介绍了速度动画.透明度动画.多物体运动和任意值变化,并且我们在Javascript动画效果(二)中介绍到我们封装了一个简单的插件雏形,接下来我们对前面的 ...
- Javascript动画效果(二)
Javascript动画效果(二) 在前面的博客中讲了简单的Javascript动画效果,这篇文章主要介绍我在改变之前代码时发现的一些问题及解决方法. 在前面的多物体宽度变化的例子中,我们给其增加代码 ...
- Javascript动画效果(四)
Javascript动画效果(四) 前面我们自己写了一个小小的关于js动画的插件,下面我们来使用之前的框架来完成我们想要的动画效果.我们经常在淘宝网中看到,鼠标经过某一图片时,该图片有从上滚出而又从下 ...
- javascript动画效果之缓冲动画(修改版)
在编写多块同时触发运动的时候,发现一个BUG, timer = setInterval(show, 30);本来show是一个自定义函数,当设为timer = setInterval(show(one ...
- javascript动画效果之透明度(修改版)
在编写多块同时触发运动的时候,发现一个BUG, timer = setInterval(show, 30);本来show是一个自定义函数,当设为timer = setInterval(show(one ...
- 【BOOM】一款有趣的Javascript动画效果
实践出真知,有的时候看到一些有趣的现象就想着用自己所学的知识复现一下. boomJS 缘起 前几天在 github 上看到同事的一个这样的小项目,在 IOS 上实现了这样一个小动画效果,看上去蛮 ...
- javascript动画效果
之前工作项目中,运用了缓动动画的效果,在网上看到其他大牛写的相关公式,结合工作需要,进行了整理,拿出来跟大家分享下,js代码中,只运用了一个小功能进行了测试 <!DOCTYPE html> ...
随机推荐
- StringMVC(拦截器)
单个拦截器 使用jar包 创建FirstController.java @Controller public class FirstController { @RequestMapping(" ...
- JSON.toJSONString的jar包问题
toJSONString()方法的jar包不在json-lib中,简单点阿里巴巴给我们封装好的json包,也是开源的alibaba.fastjson.JSON,网上搜fastjson应该就有了.
- Python学习笔记——基础篇【第七周】———进程、线程、协程篇(socket基础)
http://www.cnblogs.com/wupeiqi/articles/5040823.htmlhttp://i.cnblogs.com/EditPosts.aspx?postid=55437 ...
- install webapp2 on Linux outside google app engine.
Reference: https://webapp-improved.appspot.com/tutorials/quickstart.nogae.html Step 1: install pip S ...
- js string 转 int 注意的问题——parseInt
< script > var str = '1250';alert(Number(str)); //得到1250 alert(parseInt(str)); //得到1250 var st ...
- /home 和 /root
/root Linux超级权限用户root的家目录./home 如果我们建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用 ...
- HTML canvas图像裁剪
canvas drawImage方法的图像裁剪理解可能会比较耗时,记录一下,以便供人翻阅! context.drawImage(img,sx,sy,swidth,sheight,x,y,width,h ...
- Maven项目下WEB-INFO目录下没有编译的classes文件
建立mavan项目之后,在项目目录中没有发现编译的classes文件夹 解决办法: 因为maven是默认将编译后的classes文件存入项目下的target文件夹中,所以我们需要修改编译后存放的路径, ...
- webpack+React.js
Webpack是目前基于React和Redux开发的应用的主要打包工具.我想使用Angular 2或其他框架开发的应用也有很多在使用Webpack. 当我第一次看到Webpack的配置文件时,它看起来 ...
- mysql索引类型-形式-使用时机-不足之处--注意事项
一.索引的类型 1.普通索引 增加 create index index_name on table(colume(length)); 例子:cre ...