网站上会经常用到Javascript 中的运动,这次与大家分享一下一些运动的基本应用 。 方便大家在开发中能够直接使用。

代码简单易懂,适用于初学者。最后会一步一步整理出一套自己的运动框架。

应用案例效果图:

鼠标移动到分享上 ,左边的div就会显示出来。移开会自己恢复。相信这个大家都会用到 很实用,下面看看代码是如何实现的。

<style type="text/css">
#div1 {
width: 150px;
height: 200px;
background: green;
position: absolute;
left: -150px;
}
#div1 span {
position: absolute;
width: 20px;
height: 60px;
line-height: 20px;
background: blue;
right: -20px;
top: 70px;
}
</style>
<body>
<div id="div1">
<span>
分享到
</span>
</div>
</body>

以下是Javascript 代码

<script type="text/javascript">
window.onload=function(){
var oDiv=document.getElementById("div1"); oDiv.onmouseover=function(){
startMove(0);
}; oDiv.onmouseout=function(){
startMove(-150);
};
} var time=null; function startMove(iTraget){
var oDiv=document.getElementById("div1"); clearInterval(time); time=setInterval(function(){
var speed=0; if(oDiv.offsetLeft>iTraget){
speed=-10;
}else{
speed=10;
} if(oDiv.offsetLeft==iTraget){
clearInterval(time);
}else{
oDiv.style.left=oDiv.offsetLeft+speed+'px';
}
},30);
}
</script>

思路:

样式中初始的left是-150 这样div就是缩在里面,给0 就会显示出来。 那么我们只要变动这个值就可以了

startMove 中的参数 iTarget 是目标点 ,表示到哪个目标点会停下来。

控制speed 的大小 就能控制运动的快慢。如果达到目标点 就停止定时器 。

规律:

*  假设

*         left:30           iTarget:300     得出    往右  为正
*         left:600         iTarget:50       得出    往左  为负

* 
* 通过当前位置left 与目标点的 关系 iTarget 推断出 速度的正负

注意: 一上来就要关了定时器,因为是每次移动到分享到,都会开个定时器,开的越多相对来说速度就越快,因为同时会有多个定时器执行。

所以每次要保证一个定时器工作。

遵循:函数功能一样,参数越少越好的原则 ,所以根据上面的规律把speed 并不是作为参数传入。

举个生活中的例子:你打车,告诉出租车司机已100码的速度到哪哪哪,一般是不可能的吧。打车你不可能告诉师傅你要跑多快

所以程序也是一样的,这里就把速度这个传参去掉了。

当然现在的这个运动框架还会有许多问题,在之后会陆续解决。

Javascript 匀速运动——应用案例:网站常用功能分享到的更多相关文章

  1. web网站常用功能测试点总结

    目录 一.输入框 二.搜索功能 三.添加.修改功能 四.删除功能 五.注册.登录模块 六.上传图片测试 七.查询结果列表 八.返回键检查 九.回车键检查 十.刷新键检查 十一.直接URL链接检查 十二 ...

  2. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  3. WebStorm 常用功能的使用技巧分享

    WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...

  4. 通过servlet实现几个网站常用的功能

    帮朋友写的小程序,由于功能比较简单所以就偷懒只使用了Servlet 一.JSP页面部分(这个部分的设置比较粗糙,主要是为了查看功能能否实现,如果需要向用户展示还得修饰一下) 1)功能页(所有需要后台实 ...

  5. JavaScript 常用功能总结

    小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...

  6. 分享几个社交类网站常用并且也是最好用的jquery类库

    官网都有详细的文档说明,大家自行百度谷歌哈! artZoom:常用于微博,支持图片放大缩小旋转 AutoComplete:自动完成 BackTop:当内容多时出现“返回顶部” CFUpload:批量上 ...

  7. Wireshark学习笔记(一)常用功能案例和技巧

    @ 目录 常用功能 1.统计->捕获属性 2.统计->协议分级 3.过滤包Apply as filter E1:过滤出特定序号的包 E2:过滤出某IP地址或端口 E3:导出php文件 E4 ...

  8. Nginx实战部署常用功能演示(超详细版),绝对给力~~~

    前言 上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域.缓存.配置SSL证书.高可用等,老规矩,还是挑几个平时比较常用的进行演示分享.上篇详见Nginx超详 ...

  9. js实现第一次打开网页弹出指定窗口(常用功能封装很好用)

    js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...

随机推荐

  1. SharePoint 2013 代码实现自定义的站点模版创建Site Collection

    先需要将自定义的站点模版从网站集转移到Farm中. 找一个自己已经完成配置及设计的网站,在网站设置里面选择另存为模版.要注意的是不是所有的站点类型都有另存为模版的功能. 存完之后可在解决方案库的界面里 ...

  2. 06JS高级创建对象使用原型共享对象方法

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. HDU 1020 Encoding POJ 3438 Look and Say

    Encoding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  4. 菜鸟的jQuery源码学习笔记(前言)

    前言 相信任何一名前端开发人员或者是前端爱好者都对jQuery不陌生.jQuery简单易用,功能强大,特别是拥有良好的浏览器兼容性,大大降低了前端开发的难度,使得前端开发变得“平易近人起来”.自从本人 ...

  5. Android L 之 RecyclerView 、CardView 、Palette

    转: http://blog.csdn.net/xyz_lmn/article/details/38735117 <Material Design>提到,Android L版本中新增了Re ...

  6. not valid for Running the scheme

    The run destination iPhone6 Plus is not valid for Running the scheme 'MyApp’. Phone6 Plus's iOS 8.0 ...

  7. Python学习笔记(二)Python的数据类型和变量

    Python的字符串 Python使用''和""将字符串括起来,与ruby类似,特殊之处是Python可以使用r''表示''内部的字符串默认不转义,如: print(r'\\\t\ ...

  8. linux判断日期是否合法

    #include <time.h> #include <stdio.h> typedef enum { , } bool; bool check_date(int year, ...

  9. LINQ 联合查询

    List<Attachment> imgList = (from a in ZQSDWEBEntities.Attachment                               ...

  10. keil MDK编译器(V4.01)与H-JTAG的问题

    前一阵子转投到MDK下面做开发,因为公司以前都用h-jtag做下载仿真工具,用的h-jtag版本为V0.9,我拿以前在ads1.2中编译成功的程序,稍作修改,在mdk下编译成功,仿真也没有问题,但下载 ...