匀速运动的函数封装

匀速运动的函数封装

小鸟一只大家多指点
css样式:

  <style type="text/css">
   *{
    margin: 0;
    padding: 0;
   }
   #box{
    width: 100px;
    height: 100px;
    background: red;
    position: absolute;
    left: 0;
    top: 100px;
   }
   #pox{
    width: 100px;
    height: 100px;
    background: blue;
    position: absolute;
    left: 0;
    top: 251px;
   }
   #position{
    width: 1px;
    background: black;
    height: 500px;
    position: absolute;
    left: 500px;
   }
  </style>

结构:在这里插入图片描述

//JS代码
 <script type="text/javascript">
  //匀速运动 (位置发生改变:需要定位)
  
  var flyToRight = document.getElementById("flyToRight");
  var flyToLeft = document.getElementById("flyToLeft");
  var box = document.getElementById("box");
  var pox = document.getElementById("pox");
  
  flyToRight.onclick = function(){
   animate(box,501);
  }
  //向左运动
  flyToLeft.onclick = function(){
   animate(box,0);
  }
  
  pox.onclick = function(){
   animate(pox,600,10);
  }
  
  var timer = null;
  //匀速运动封装
  function animate(obj,target,speedTime = 20){//给speedTime设置默认值为20
   //speedTime = !!speedTime ? speedTime : 20;
   //speedTime = speedTime || 20;
   clearInterval(obj.timer);
   obj.timer = setInterval(function(){
    //如何实现当点击向右时就向右走,点击向左走时向左走
    //向右走是+5
    //向左走是-5
    //定义一个speed,这个speed是+5和-5的关系
    //向右target = 500 当前值 < 500  target- 当前值>0向右走
    //向左target = 0  当前值 > 0  target- 当前值<0向左走
    
    //bug:当目标值不是一个5的倍数的时候,永远到达 不了目标 值
    //运动到最后的两个值
    //终值505 目标值:503
    //target - obj.offsetLeft最后一次执行的时候两个值的差值的绝对值一定是一个小于5的值
    var speed = target - obj.offsetLeft > 0 ? 5 : -5;
    //if(obj.offsetLeft == target){
    if(Math.abs(target - obj.offsetLeft) < 5){
     //最后会有5以内的像素差
     //在最后 的一次可以 让其强制性到达 目标 值
     obj.style.left = target + "px";
     clearInterval(timer);
    }else{//先判断后赋值
     obj.style.left = obj.offsetLeft + speed + "px";
    }
   },speedTime);
  }
 </script>
  • 24
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值