javascript动画效果之匀速运动

html和css写在一起方便看,div通过定位设置为-200隐藏,span也是通过定位定在div靠左的中间

 1 <!DOCTYPE html>
 2 <html>
 3
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>Document</title>
 7     <style type="text/css">
 8         * {
 9             margin: 0;
10             padding: 0;
11             font-size: 12px;
12         }
13
14         div {
15             width: 200px;
16             height: 200px;
17             background: green;
18             position: relative;
19             left: -200px;
20         }
21
22         span {
23             width: 30px;
24             height: 30px;
25             line-height: 30px;
26             background: red;
27             position: absolute;
28             left: 200px;
29             top: 85px;
30             text-align: center;
31             cursor: pointer;
32         }
33     </style>
34 </head>
35
36 <body>
37     <div id="div">
38         <span id="show">show</span>
39     </div>
40
41 42 </body>
43
44 </html>

js部分是通过添加定时器设置offsetLeft值的自增和自减,来达到div显示和隐藏的效果

 1 <script>
 2         function $(id) {
 3             return typeof id === "string" ? document.getElementById(id) : id;
 4         }
 5
 6         window.onload = function() {
 7             //定义了隐藏的div为pto
 8             var pto = $("div");
 9             //定义了按钮span为 btn
10             var btn = $("show");
11             //定义一个空的定时器
12             var timer = null;
13
14             //按钮绑定一个鼠标移进事件
15             btn.onmouseenter = start;
16
17             //自定义函数用于自动增加
18             function start() {
19                 //防止自加速,每次开始前都要清除定时器
20                 clearInterval(timer);
21                 //定义一个定时器
22                 timer = setInterval(show, 30);
23             }
24
25             //自定义函数,直到offsetLeft的值为0,否则offsetLeft的值从-200一直自增5
26             function show() {
27                 if (pto.offsetLeft == 0) {
28                     clearInterval(timer);
29                 } else {
30                     pto.style.left = pto.offsetLeft + 5 + ‘px‘;
31                 }
32             }
33
34             //绑定一个鼠标移出事件
35             btn.onmouseleave = back;
36
37             //自定义函数,用于自动减少
38             function back() {
39                 clearInterval(timer);
40                 timer = setInterval(clear, 30);
41             }
42
43             //自定义函数,直到offsetLeft的值为-200,否则offsetLeft的值一直自减5
44             function clear() {
45                 if (pto.offsetLeft == -200) {
46                     clearInterval(timer);
47                 } else {
48                     pto.style.left = pto.offsetLeft - 5 + ‘px‘;
49                 }
50             }
51
52         }
53     </script>
时间: 2024-11-17 15:59:15

javascript动画效果之匀速运动的相关文章

Javascript动画效果(一)

Javascript动画效果(一) 前面我们介绍了Javascript的回到顶部效果,今天呢,我们对Javascript动画做进一步的研究.在这篇博文中我们只介绍简单的匀速运动.简单的缓冲运动和简单的多物体运动后面我们还会介绍任意值变化的运动.链式运动.同时运动,同时我们还会简单的封装一个运动框架并且还会将Javascript方法和jquery方法进行比较. 1.简单的匀速运动 下面我们介绍一个demo,鼠标移入,动画向右移动(即隐藏部分显示):鼠标离开,动画向左运动(继续隐藏)整个过程都是匀速

javascript动画效果之缓冲动画(修改版)

在编写多块同时触发运动的时候,发现一个BUG, timer = setInterval(show, 30);本来show是一个自定义函数,当设为timer = setInterval(show(one,two), 30);时,发现show里面的参数one和two无法被导入,所以需要做以下代码改进和优化 原版的html和css代码在这里javascript动画效果之缓冲动画 js代码如下 1 <script> 2 function $(id) { 3 return typeof id === &

Javascript动画效果(四)

Javascript动画效果(四) 前面我们自己写了一个小小的关于js动画的插件,下面我们来使用之前的框架来完成我们想要的动画效果.我们经常在淘宝网中看到,鼠标经过某一图片时,该图片有从上滚出而又从下滚入的效果,那么那种效果是如何实现的呢? 首先我们我们完成该效果的html和css代码,代码如下: html部分代码: <div id="move"> <a href="#"><i><img src="images/1

【BOOM】一款有趣的Javascript动画效果

实践出真知,有的时候看到一些有趣的现象就想着用自己所学的知识复现一下.    缘起 前几天在 github 上看到同事的一个这样的小项目,在 IOS 上实现了这样一个小动画效果,看上去蛮炫的,效果图: 我就寻思着,在浏览器环境下,用 Javascript 怎么实现呢? 在浓烈的好奇心驱使下,最终利用 Javascript 和 CSS3 完成了模仿上面的效果,通过调用方法,可以将页面上的图片一键爆炸,我给它起了个 boomJS 的名字,贴两张效果图:           实现 我感觉效果还是可以的

javascript动画效果

之前工作项目中,运用了缓动动画的效果,在网上看到其他大牛写的相关公式,结合工作需要,进行了整理,拿出来跟大家分享下,js代码中,只运用了一个小功能进行了测试 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>测试</title> </head> <body> <div class="main"&g

jQuery 动画效果

在以前很长一段时间里,网页上的各种特效还需要采用 flash 在进行.但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用 JavaScript 动画效果来取代 flash.这里说的取代是网页特效部分,而不是动画.网页特效比如:渐变菜单.渐进显示.图片轮播等:而动画比如:故事情节广告.MV 等等. 一.显示.隐藏 jQuery 中显示方法为:.show(),隐藏方法为:.hide().在无参数的时候,只是硬性的显 示内容和隐藏内容. $('.show').click(function(){

动画效果(一)

在以前很长一段时间里,网页上的各种特效还需要采用flash在进行.但最近几年里,我们已经很少看到这种情况了,绝大部分已经使用JavaScript动画效果来取代flash.这里说的取代是网页特效部分,而不是动画.网页特效比如:渐变菜单.渐进显示.图片轮播等:而动画比如:故事情节广告.MV等等. 显示.隐藏 jQuery中显示方法为:.show(),隐藏方法为:.hide().在无参数的时候,只是硬性的显示内容和隐藏内容. html代码如下: <!DOCTYPE html> <html>

Jquery11 动画效果

学习要点: 1.显示.隐藏 2.滑动.卷动 3.淡入.淡出 4.自定义动画 5.列队动画方法 6.动画相关方法 7.动画全局属性 在以前很长一段时间里,网页上的各种特效还需要采用 flash 在进行.但最近几年里已经很少看到这种情况了,绝大部分已经使用 JavaScript 动画效果来取代 flash.这里说的取代是网页特效部分,而不是动画.网页特效比如:渐变菜单.渐进显示.图片轮播等:而动画比如:故事情节广告.MV 等等. 一.显示.隐藏 jQuery 中显示方法为:.show(),隐藏方法为

JavaScript之JS实现动画效果

在前面的随笔中介绍了如何用DOM技术修改文档的央样式信息,用JavaScript添加样式信息可以节约我们的时间和精力,但总的来说,CSS仍是完成这类任务的最佳工具.但是有一个应用领域是目前的CSS无能为力的.如果我们想随着时间的变化而不断改变某个元素的样式,则只能用JavaScript.JavaScript能够按照预定的时间间隔重复的调用一个函数,而意味着我们可以随着时间的推移而不断改变某个元素的样式. 动画是样式随着时间变化的完美例子之一.简单的说,动画就是让元素的位置随着时间而不断的发生变化