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 相关文章推荐
一个js的tab切换效果代码[代码分离]
Apr 11 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
深入浅析React中diff算法
May 19 Javascript
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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
php表单提交实例讲解
2015/11/12 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
YII框架关联查询操作示例
2019/04/29 PHP
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
Python实现自动装机功能案例分析
2020/10/22 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
2014年节能工作总结
2014/12/18 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python