javascript动画效果之缓冲动画
这里的html和css的代码是复制之前的随便匀速运动的,所以不需要改变
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <style type="text/css">
- * {
- margin: 0;
- padding: 0;
- font-size: 12px;
- }
- div {
- width: 200px;
- height: 200px;
- background: green;
- position: relative;
- left: -200px;
- }
- span {
- width: 30px;
- height: 30px;
- line-height: 30px;
- background: red;
- position: absolute;
- left: 200px;
- top: 85px;
- text-align: center;
- cursor: pointer;
- }
- </style>
- </head>
- <body>
- <div id="div">
- <span id="show">show</span>
- </div>
- </body>
- </html>
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 = start;
- //函数用于调用定时器timer
- function start() {
- clearInterval(timer);
- timer = setInterval(show, 30);
- }
- //函数用于自动增加
- function show() {
- //speed是速度变量,用于控制窗口移动的速度
- //这里的/20可以变为除任何数,主要为控制速度变化
- speed = (0 - pto.offsetLeft) / 20;
- //调用了Math方法,ceil是四舍五入取整
- speed = Math.ceil(speed);
- if (pto.offsetLeft == 0) {
- clearInterval(timer);
- } else {
- pto.style.left = pto.offsetLeft + speed + 'px';
- }
- }
- //鼠标移出绑定事件
- btn.onmouseleave = back;
- //函数用于调用定时器timer
- function back() {
- clearInterval(timer);
- timer = setInterval(clear, 30);
- }
- //函数用于自动减少
- function clear() {
- speed = (-200 - pto.offsetLeft) / 20;
- //调用了Math方法,floor是舍小数取整
- speed = Math.floor(speed);
- if (pto.offsetLeft == -200) {
- clearInterval(timer)
- } else {
- pto.style.left = pto.offsetLeft + speed + 'px';
- }
- }
- }
- </script>
javascript动画效果之缓冲动画的更多相关文章
- javascript动画效果之缓冲动画(修改版)
在编写多块同时触发运动的时候,发现一个BUG, timer = setInterval(show, 30);本来show是一个自定义函数,当设为timer = setInterval(show(one ...
- Android 动画效果 及 自定义动画
1. View动画-透明动画效果2. View动画-旋转动画效果3. View动画-移动动画效果4. View动画-缩放动画效果5. View动画-动画效果混合6. View动画-动画效果侦听7. 自 ...
- Java 给PPT添加动画效果(预设动画/自定义动画)
PPT幻灯片中对形状可设置动画效果,常见的动画效果为内置的固定类型,即动画效果和路径是预先设定好的固定模板,但在设计动画效果时,用户也可以按照自己的喜好自定义动画动作路径.下面,通过Java后端程序代 ...
- jQuery演示10种不同的切换图片列表动画效果以及tab动画演示 2
很常用的一款特效纯CSS完成tab实现5种不同切换对应内容效果 实例预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
- CSS3展现精彩的动画效果 css3的动画属性
热火朝天的css3无疑吸引了很多前端开发者的眼球,然而在css3中的动画属性则是新功能中的主打招牌,说到css3的动画属性不得不让人想起这三个属性:Transform﹑Transition﹑Anima ...
- 012 Android 动画效果(补间动画) +去掉App默认自带的标题+更改应用的图标
1.介绍 补间动画开发者只需指定动画开始,以及动画结束"关键帧", 而动画变化的"中间帧"则由系统计算并补齐! 2.去掉App的标题 (1)将AndroidMa ...
- 通过CSS3属性值的变化实现动画效果+触发这些动画产生交互
css3过渡 transition 兼容性:IE10+ transition: none | all | property 默认为none all 表示所有属性过渡 property 指定属性值,如c ...
- css之实现下拉框自上而下展开动画效果&&自下而上收起动画效果
HTML代码: <div className={CX('font-size-selector-sub-list', { show: shouldSubListShow === true, hid ...
- 原生js动画效果(源码解析)
在做页面中,多数情况下都会遇到页面上做动画效果,大部分都是用jquery来实现动画,今天正好看到一篇原生js实现动画效果的代码,特分享在此. 原文地址:http://www.it165.net/pro ...
随机推荐
- 【angular】angular如何让传递变量参数+ng-change的使用
HTML: <div class="form-group"> <label class="col-sm-2 control-label"> ...
- (ASP.NET )去除字符串中的HTML标签
string strDoContent = "执行增加<a href="/AdminCX/Admin_CompanyDetail.aspx?CompanyGuid=cd8e1 ...
- Path.OS 模块的使用方法(转自DK的博客)
Python os.path模块 使用方法 os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonpref ...
- selenium1,selenium2,watir的比较
接触web方面的自动化测试,会接触几个常用的工具,selenium1,selenium2,watir 有的时候总是混淆,那么他们的优缺点啥的呢,在让你给项目选自动化框架,会选择哪个??? 1,语言的支 ...
- Python---day5-各类模块的使用
#_*_coding:utf-8_*_ 时间模块import time # print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了time.process_time() ...
- 无法启动MYSQL服务”1067 进程意外终止”解决办法
原文:http://www.111cn.net/database/mysql/48888.htm 本文章主要是总结了各种导致mysql提示无法启动MYSQL服务"1067 进程意外终止& ...
- qt5.6 for android
尝试在qt下写android的程序.测试,没有编译成功. 在选项-android配置页面,提示有"Qt version for 3 architectures are missing&quo ...
- 关于Application的onCreate以及Activity生命周期在源码里都是什么时候调用的
在ActivityThread.handleLaunchActivity中 Activity a = performLaunchActivity(r, customIntent);这一方法最终回调目标 ...
- Gym 101102B The Little Match Girl(贪心+规律)
这个题目的做法不止一种,solve1:每个数字使用的火柴棒都在2~7之间,而且是连续的,就是2-7之前没有空着的数.这样就有一个结论,在下界为l,上界为r的情况下,假设有n个数,那么火柴棒总数一定在n ...
- django+celery+rabitmq
django 项目中的设置(proj代表项目目录) proj settings.py CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672/' ...