js简单实现点击左右运动的方法


Posted in Javascript onApril 10, 2015

本文实例讲述了js简单实现点击左右运动的方法。分享给大家供大家参考。具体分析如下:

这里可实现点击向右,方块向右移动,点击向左,方块向左移动的效果

可以用setInterval来实现过多长时间,div移动多长的距离来实现运动效果。

要点一:如果元素的左边距离小于目标距离,则是正向移动,否则是负向移动

if(run.offsetLeft <target){
speed = 2;
}else{
speed = -2;
}

要点二:如果元素的左边距离等于目标距离,停止定时器,否则,元素的左边距离等于现在的左边距离加上速度值。

if(run.offsetLeft ==target){
clearInterval(timer);
}
else{
run.style.left = run.offsetLeft +speed +"px";
}

上代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>无标题文档</title>
<style>
body{margin:0; padding:0;}
#run{width:100px; height:100px; background:#06c;
position:absolute; border:1px solid #000;
left:0;}
</style>
<script>
window.onload = function(){
 var run = document.getElementById("run");
 var btn = document.getElementById("btn");
 var btn1 = document.getElementById("btn1");
 var speed = 2;
 var timer = null;
 btn.onclick = function(){
  startrun(300);
 }
 btn1.onclick = function(){
  startrun(0);
 }
 function startrun(target){
   clearInterval(timer);
  timer = setInterval(function(){
   if(run.offsetLeft <target){
    speed = 2;
   }else{
    speed = -2;
   }
   if(run.offsetLeft ==target){
    clearInterval(timer);
   }
   else{
    run.style.left = run.offsetLeft +speed +"px";
   }
  },30)
 }
}
</script>
</head>
<body>
<input id="btn" type="button" value="运动向右">
<input id="btn1" type="button" value="运动向左">
<div id="run"></div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript 清除输入框中的数据
Apr 13 Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
Aug 14 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
Jan 16 Javascript
jQuery实现的简洁下拉菜单导航效果代码
Aug 26 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
Mar 10 Javascript
js学使用setTimeout实现轮循动画
Jul 17 Javascript
JavaScript变量声明var,let.const及区别浅析
Apr 23 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
js实现透明度渐变效果的方法
Apr 10 #Javascript
js实现同一页面多个运动效果的方法
Apr 10 #Javascript
js实现同一个页面多个渐变效果的方法
Apr 10 #Javascript
js实现缓冲运动效果的方法
Apr 10 #Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 #Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 #Javascript
js实现类似jquery里animate动画效果的方法
Apr 10 #Javascript
You might like
用php实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
2017/08/17 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python实现汉诺塔递归算法经典案例
2021/03/01 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
使用python求解二次规划的问题
2020/02/29 Python
Python 处理日期时间的Arrow库使用
2020/08/18 Python
python3中布局背景颜色代码分析
2020/12/01 Python
办公室助理岗位职责
2013/12/25 职场文书
信息技术教学反思
2014/02/12 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
销售提升方案
2014/06/07 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
鲁冰花观后感
2015/06/10 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL