当前位置: 首页 > 编程日记 > 正文

12,缓冲运动。匀速运动停止条件

缓冲运动:iSpeed=(iTarget-oDiv.offsetLeft)/7;速度离目标点越远,速度越大,离目标点越近速度越小;

只支持1px是最小单位,没有0.5px。所以当iSpeed为小数时如(0.7),oDiv.style.Left=oDiv.offsetLef+iSpeed+'px';会把小数部分去掉,Div的位置永远到不了目标点;所以用Math.ceil(iSpeed);向上取值;当速度为负,则用Math.floor(iSpeed);向下取值;

<body>
<input type="button" value="开始运动" onclick="startMove()" />
<div id="div1"></div>
<div id="div2"></div>
</body>

js:

<script>
function startMove()
{var oDiv=document.getElementById('div1');setInterval(function (){var speed=(300-oDiv.offsetLeft)/10;//speed=Math.floor(speed);speed=speed>0?Math.ceil(speed):Math.floor(speed);oDiv.style.left=oDiv.offsetLeft+speed+'px';document.title=oDiv.offsetLeft+','+speed;}, 30);
}
</script>

练习1:对联浮动

目标点:iTarget:var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;

oDiv.style.top=(document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop+'px';

为防止目标点是小数造成div上下不停跳动,iTarget为parseInt((document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop);

html

<body style="height:2000px;">
<input type="text" id="txt1" style="position:fixed; right:0; top:0;" />
<div id="div1"></div>
</body>

CSS:

<style>
#div1 {width:100px; height:150px; background:red; position:absolute; right:0; bottom:0;}
</style>

JS:

<script>
window.onscroll=function ()
{var oDiv=document.getElementById('div1');var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;//oDiv.style.top=(document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop+'px';startMove(parseInt((document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrollTop));
};var timer=null;function startMove(iTarget)
{var oDiv=document.getElementById('div1');clearInterval(timer);timer=setInterval(function (){var speed=(iTarget-oDiv.offsetTop)/4;speed=speed>0?Math.ceil(speed):Math.floor(speed);if(oDiv.offsetTop==iTarget){clearInterval(timer);}else{document.title=iTarget;document.getElementById('txt1').value=oDiv.offsetTop;oDiv.style.top=oDiv.offsetTop+speed+'px';}}, 30);
}
</script>

 匀速运动停止条件:

当Div的位置与目标值非常接近的时候,距离不足一步即一个速度iSpeed的时候,关闭定时器,并使div的位置等于目标值;

HTML:

<body>
<input type="button" value="到100" onclick="startMove(100)" />
<input type="button" value="到300" onclick="startMove(300)" />
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
</body>

CSS:

<style>
#div1 {width:100px; height:100px; background:red; position:absolute; left:600px; top:50px;}
#div2 {width:1px; height:300px; position:absolute; left:300px; top:0; background:black;}
#div3 {width:1px; height:300px; position:absolute; left:100px; top:0; background:black;}
</style>

JS:

<script>
var timer=null;function startMove(iTarget)
{var oDiv=document.getElementById('div1');clearInterval(timer);timer=setInterval(function (){var speed=0;if(oDiv.offsetLeft<iTarget){speed=7;}else{speed=-7;}if(Math.abs(iTarget-oDiv.offsetLeft)<=7){clearInterval(timer);oDiv.style.left=iTarget+'px';}else{oDiv.style.left=oDiv.offsetLeft+speed+'px';}}, 30);
}
</script>

运动框架:1清楚定时器;clearInterval(timer);

      2.设置定时器;timer=setInterval(fun,30);

      3.判断速度条件;if else

      4,判断运动停止条件;if else

转载于:https://www.cnblogs.com/maoduoduo/p/3146214.html

相关文章:

如何配置mac的mysql环境_mac安装mysql数据库及配置环境变量

安装mysql下载mysql。我下载的是&#xff1a;mysql-8.0.11-macos10.13-x86_64.dmg双击打开mysql-8.0.11-macos10.13-x86_64.dmg&#xff0c;然后双击mysql-8.0.11-macos10.13-x86_64.pkg一路点击继续&#xff0c;傻瓜式安装&#xff0c;没什么好说的此处选择“Use Legacy Passw…

三层交换机vlan间访问(第一种方式)

真的是原创&#xff0c;但是得感谢Ys_routesim软件的制作方。我将命令调试后并进行了解释。若是属于侵权&#xff0c;请立即告知我。不过学习了网工后&#xff0c;大段解读源代码不属于侵权吧。呵呵。 交换机的三层交换实际是具有路由功能的交换机&#xff0c;比如思科的Cisco …

(转载)深入浅出设计模式——桥接模式(Bridge Pattern)

模式动机设想如果要绘制矩形、圆形、椭圆、正方形&#xff0c;我们至少需要4个形状类&#xff0c;但是如果绘制的图形需要具有不同的颜色&#xff0c;如红色、绿色、蓝色等&#xff0c;此时至少有如下两种设计方案&#xff1a; 第一种设计方案是为每一种形状都提供一套各种颜色…

数据库2.0 -- 数据类型和数据表的基本操作

mysql支持多种数据类型&#xff0c;一般可以分为&#xff0c;数值&#xff0c;日期时间和字符&#xff08;串&#xff09; 数值类型 日期和时间类型 字符串类型 创建数据表 我们首先应该明白的就是一个结构的问题&#xff0c;一个用户可以管理多个数据库&#xff0c;每个数据…

virtual hust 2013.6.20 数论基础题目 D - Just the Facts

题目&#xff1a;Just the Facts 思路&#xff1a;枚举10000素数内&#xff0c;各因子出现的次数&#xff0c;然后取模为10。因为0是由2和5构成的&#xff0c;所以2和5的幂单独讨论&#xff0c;同时由于2的幂肯定大于5的&#xff0c;所以我们最后要算的再乘上2的减去后的幂就可…

MySQL中字段约束有哪些_mysql字段约束

为了确保数据的完整性和唯⼀性&#xff0c;关系型数 据库通过约束机制来实现目。一. unique 唯一性约束值不可重复&#xff1b;二. not null 非空约束值不可为空&#xff1b;三. default 默认值约束当增加数据时没有插⼊值时&#xff0c;会自动插⼊默认值&#xff1b;四. chec…

关于软件测试中那点小事中的大道理

如果想让测试在公司的项目中发挥出它最大的价值&#xff0c;并不是招两个测试技术高手&#xff0c;或引入几个测试技术&#xff0c;而是测试技术对项目流 程的渗透&#xff0c;以及测试流程的改进与完善。虽然&#xff0c;当然测试行业前景乐观&#xff0c;许多中小企业也都在引…

每日一题 -- 11-1

一天十题选择&#xff0c;一天一道编程&#xff0c;一天一个面试题&#xff0c;一个一个剑指offer 排序是必须要掌握的一个算法&#xff0c;非常的重要 题目描述 有 n 个学生站成一排&#xff0c;每个学生有一个能力值&#xff0c;牛牛想从这 n 个学生中按照顺序选取 k 名学…

Java中? extends T和? super T的理解

? 通配符类型 - <? extends T> 表示类型的上界&#xff0c;表示参数化类型的可能是T 或是 T的子类; <? super T> 表示类型下界&#xff08;Java Core中叫超类型限定&#xff09;&#xff0c;表示参数化类型是此类型的超类型&#xff08;父类型&#xff09;&…

学习Modern UI for WPF

这两天断断续续的学了学Modern UI for WPF 没啥学习笔记呵呵&#xff0c;来自大牛王春明的博客园 http://www.cnblogs.com/wangchunming/category/342887.html 此大牛学习范围之广 成果之丰富 着实是学习的典范转载于:https://www.cnblogs.com/DragonX/p/3146818.html

idea的tomcat配置文件在哪里修改_MyBatis配置文件详解

MyBatis 的配置文件包含了会影响 MyBatis 行为的设置和属性信息&#xff0c;决定了mybatis的运行轨迹&#xff0c;能充分了解这些配置的以及配置所带来的的影响&#xff0c;你就是大神&#xff01;配置文件的根节点是configuration&#xff0c;他的子孙节点有&#xff1a;prope…

《几何与代数导引》例1.4——定比分点

点$r$分有向线段$\vec{pq}$成定比$k$,即$\vec{pr}k\vec{rq}(k\neq-1)$.在仿射标架中&#xff0c;已知$p(a_1,a_2,a_3)$,$q(b_1,b_2,b_3)$和$k$,求$r(c_1,c_2,c_3)$解:由于$c_i-a_ik(b_i-c_i)$,因此$c_i\frac{kb_ia_i}{1k}$.转载于:https://www.cnblogs.com/yeluqing/archive/20…

C#第一个程序Helloworld

转载于:https://www.cnblogs.com/gzhbk/p/9656149.html

Leanote

https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B—-Mac-and-Linux 安装的网址 我们相当于是在本地建立了一个服务器&#xff0c;然后将我们的leanote部署上去了 我们这里的启…

微软安全新闻聚焦-双周刊第三十四期

Biweekly Spotlights 2013. 6. 5– 2013. 6. 20 第 34 期 微软发布 EMET 4.0 2013年6月17日 Enhanced Mitigation Experience Toolkit(EMET) 是微软提供的一个免费的攻击防御工具&#xff0c;它依托 Windows 系统本身的防御机制来阻止攻击者对各类…

mysql如何实现实时存储_OpenResty + Mysql 实现日志实时存储

应用场景和日志文件解析本配置主要解决 Nginx 向 MySQL 中实时插入日志的问题&#xff0c;采用 OpenResty Mysql 实现。1. 刚开始的时候看了 Nginx 和 MySQL 的连接模块。比如说 nginx-mysql-module&#xff0c;可以连接 MySQL。但是插入日志时遇到问题&#xff0c;我们知道 n…

简易RS232 建模二 (接收)

//clK系统时钟为50MHZ 先发低位后发高位 先接收地位后接收高位module uart_tx (input clk,rst_n, UART_CTS, output reg UART_RTS, input UART_RXD, output reg UART_TXD, output [7:0] led);reg [3:0]state;reg [30:0] count;reg [7:0] data;assign led rx_data; reg [7:0] …

《UNIX高级环境编程》 -- apue.h

在看《UNIX高级环境编程》这本书的时候&#xff0c;会遇到一个问题就是这个”apue.h”,这个是作者为了编写代码方便封装了一个库&#xff0c;我们可以使用下面的方式解决这个问题&#xff0c;让我们的代码可以像作者一样去使用&#xff0c;这样的话&#xff0c;我们就可以好好研…

mysql 多少个数据库_mysql数据库的几个基本概念

1、表数据库表是一系列二维数组的集合&#xff0c;用来存储数据和操作数据的逻辑结构。行是记录&#xff0c;列是字段&#xff0c;每一列表示记录的一个属性&#xff0c;都有相应的描述信息。2、数据类型&#xff1a;数据类型决定了数据在计算机中的存储格式&#xff0c;代表不…

教孩子正确对待分数

期末考试各科成绩渐渐公布了&#xff0c;小丽迫不及待地跑到办公室向老师打听分数。看到自己那一科成绩好时欣喜若狂&#xff0c;看到差的则懊悔不已。如果你的孩子也象小丽一样视考分为命根&#xff0c;该如何教孩子正确对待分数?让她从考分的困惑中解放出来?●考前给孩子制…

canvas初尝试

最近学习了canvas&#xff0c;就拿它做了这么个小东西&#xff0c;感觉已经爱上canvas了。上代码 /* * auhor : 开发部-前端组-李鑫超 * property { tableData : {Array} 表格数据 add v-1.0.0 } * property { columData : {Array} 表头数据 add v-1.0.0 } * property { me…

模板1.0 -- 模板基本原理

为什么需要模板 我们经常有这样的一种使用的情形&#xff0c;就是我们可能需要设计一个函数&#xff0c;然后函数的参数可能是整形的&#xff0c;也可能是浮点型的&#xff0c;还有可能是其他的类型的&#xff0c;这个时候如果对于每一个类型都写一个函数&#xff0c;未免有点…

[置顶] 我的GB28181标准开发里程碑——基于eXosip的IPC端与SPVMN注册成功

昨天编译搭建好eXosip的开发环境后&#xff0c;今天完成了SIP注册功能&#xff0c;里程碑一战啊&#xff01;加油加油&#xff0c;成功就在眼前&#xff01; 今天基于eXosip做了一个IPC客户端&#xff0c;成功与公安部的SPVMN视频监控联网调测软件自测工具进行注册交互&#xf…

mysql如何避免特殊字符查询_如何避免MySQL中的特殊字符?

慕的地10843我已经用Java开发了自己的MySQL转义方法(如果对任何人都有用的话)。请参阅下面的类代码。警告&#xff1a;如果启用了任何_反斜杠_转义SQL模式&#xff0c;则出错。private static final HashMap sqlTokens;private static Pattern sqlTokenPattern;static{ …

visio 2010 修改 默认字体 字号大小 方法

哈哈&#xff0c;我这是标题党&#xff0c;先给大家泼个冷水。Visio2010 并不支持对一次性地修改绘图中所有图形的字体大小&#xff01;但可以有一个比较笨的方法解决。1.新建一个模具2.将常用的图形放到这个模具中3.对每个图形进行编辑4.对这个形状的字体&#xff0c;字号进行…

[BZOJ3329] Xorequ

题解&#xff1a; 网上的方法基本是建立在发现临位不能相等的基础上的 这个很好证。。 但是不利用这个特征也是可以的 x^2x3x 我们考虑二进制的前i位&#xff0c;我们会发现3x最多涉及到了前i2位 于是我们可以记录一下前i位的3x的i1,i2位的状态&#xff0c;以及第i位填了什么 因…

Asp.net中时间格式化的几种方法

1. 数据控件绑定时格式化日期方法:<asp:BoundColumn DataField"AddTime" HeaderText"添加时间" DataFormatString"{0:yyyy-MM-dd HH:mm}></asp:BoundColumn><asp:BoundField DataField"AddTime" HeaderText"添加时间&q…

centos设置网络自动启动

问题描述 centos7虚拟机如何设置开机自启动网络设置 解决方法 切换到root用户进入到网络设置的目录下面cd /etc/sysconfig/network-scripts/当前目录下面有一个类似于ifcfg-ens33&#xff0c;使用vim打开文件进行编辑&#xff0c;将ONBOOTno修改成为yes就可以了

mysql删除原则_MySQL数据库的增删选查

数据库是专门存储数据对象的容器&#xff0c;这里的数据对象包括表、视图、触发器、存储过程等&#xff0c;其中表是最基本的数据对象。创建数据库在 MySQL 数据库中存储数据对象之前&#xff0c;先要创建好数据库。语法&#xff1a;create database [if not exists] [[default…

ubuntu网卡配置

1、dhcp自动获取 sudo vi /etc/network/interfaces auto eth0 iface eth0 inet dhcp 设置生效: sudo /etc/init.d/networking restart 或 sudo dhclient eth0 2、静态IP地址 sudo vi /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.3.90 netmask 2…