区块变速运动模拟案例

区块变速运动模拟案例区块变速运动模拟案例 红色区块点击按钮实现区块运动速度逐渐减小到 left 值为 300px 停止 1 div 的 style 属性 div1 width 200px height 100px background red position absolute left 0 实现该功能 2 div 的 style 属性 div1 width 200px height 100px ba

  区块变速运动模拟案例

  红色区块点击按钮实现区块运动速度逐渐减小到left值为300px停止。

  (1)div的style属性#div1{width:200px;height:100px;background:red;position:absolute;left:0;}实现该功能。

  (2)div的style属性#div1{width:200px;height:100px;background:red;position:absolute;left:700px;}实现该功能。

  div2的style属性:

  #div2{width:1px;height:300px;background:black;position:absolute;left:300px;}

<input id='btn1' type='button' value='开始运动'/> <div id='div1'></div> <div id="div2"></div>

区块变速运动模拟案例

  (1)根据题意完成的代码:

window.οnlοad=function() { var oDiv=document.getElementById('div1'); var oBtn=document.getElementById('btn1'); oBtn.onclick=function() { setInterval(function(){ /*速度为抵达目标点剩余路程的1/10,由于剩余路程是逐渐减少的,因此理论上speed的值也是在逐渐减小,从而实现变速运动*/ var speed=(300-oDiv.offsetLeft)/10;  /*JavaScript对于left值为整数,出现小数时默认小数部分舍去。而speed=(300-oDiv.offsetLeft)/10的值小于1时,会导致oDiv.offsetLeft+speed实际取值等于oDiv.offsetLeft,即没有抵达left值300px而停止下来,因此需要做向上取整。*/ speed=Math.ceil(speed); oDiv.style.left=oDiv.offsetLeft+speed+'px'; },30); } }

  (2)根据题意完成的代码:

区块变速运动模拟案例

window.οnlοad=function() { var oDiv=document.getElementById('div1'); var oBtn=document.getElementById('btn1'); oBtn.onclick=function() { setInterval(function(){ var speed=(300-oDiv.offsetLeft)/10; /*目标值小于当前值,speed为负值,需要向下取整保证保证speed的值最后出现大于-1的小数时,oDiv的left值还能运动到目标点。*/ speed=Math.floor(speed); oDiv.style.left=oDiv.offsetLeft+speed+'px'; },30); } }

  结合(1)(2)的函数可以对speed进行条件判断实现框架整合。

  speed=speed>0?Math.ceil(speed):Math.floor(speed);

window.οnlοad=function() { var oDiv=document.getElementById('div1'); var oBtn=document.getElementById('btn1'); oBtn.onclick=function() { setInterval(function(){ var speed=(300-oDiv.offsetLeft)/10; speed=speed>0?Math.ceil(speed):Math.floor(speed); oDiv.style.left=oDiv.offsetLeft+speed+'px'; },30); } }

  speed变速运动的数学模型构建:

  AB两地直线距离相距为S,机器人β从A点向B点行进。已知机器人β的每间隔固定时间行进一段路程,其下次行进的距离为当前距离B点路程的1/q(q为正整数),求机器人第n次行进距离的表达式以及前n项和公式Sn

  问题:应用数学式来精确计算区块会在什么位置停止。为什么oDiv.style.left=oDiv.offsetLeft+speed+’px’;就无法大于300px?

  因为speed=(300-oDiv.offsetLeft)/10,即每次前进的距离为剩余距离的1/10,所以在数学模型中oDiv.style.left=oDiv.offsetLeft+speed+’px’的值只会无限逼近300px,不会出现大于300px的情况。

  问题:JS的运算顺序问题,是先计算还是先合并?譬如oDiv.offsetLeft*9/10+oDiv.offsetLeft/10

  因为JS存在默认舍弃小数点取整的问题,那么这个式子是否还等同于:oDiv.offsetLeft?

     如果oDiv.offsetLeft*9/10和oDiv.offsetLeft/10计算的值存在小数,那么是进行舍弃小数取整后进行运算,还是直接小数相加后再判断取整?

为什么JavaScript设置元素的width值需要设置oDiv.style.left=oDiv.offsetLeft+speed+’px’; 的形式,而不能直接设置为oDiv.style.width=9.5px;?
该问题等实质:在JavaScript中在函数赋值与括号内输入值的时候,什么时候带引号,什么时候不带引号,有什么区别?

在JavaScript中函数赋值和括号内输入值带有引号说明赋值或输入值是字符串,不带引号说明赋值是变量或者数字。
直接设置为oDiv.style.left=oDiv.offsetLeft+speed+px;,控制台会报错“ReferenceError: px is not defined”。因为px没有带引号表示是变量,代码中并未定义一个px的变量。oDiv.offsetLeft为数字,speed的值为数字,数字与’px’这个字符串相加,会隐形类型转换为字符串相加,从而得到oDiv.style.left赋值为类似‘16px’这种形式的字符串。

转载于:https://www.cnblogs.com/f6056/p/9376163.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231779.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 云服务器搭建_免费云服务器

    云服务器搭建_免费云服务器在前一篇的基础上,现在对服务器进行环境搭建,其实就是安装你需要的软件,配置环境变量,然后安装tomcat。环境搭建1、gitbash连接服务器(或者XShell等工具)2、搭建mysql环境

    2022年8月3日
    11
  • 数据归一化小结

    数据归一化小结在各种模型训练,特征选择相关的算法中,大量涉及到数据归一化的问题。比如最常见的情况是计算距离,如果不同维度之间的取值范围不一样,比如feature1的取值范围是[100,200],feature2的取值范围是[1,2],如果数据不做归一化处理,会造成feature1在距离计算中占压倒性的优势,feature2完全体现不出来作用。而数据做归一化处理以后,会让各个不同特征对距离计算的贡献大致相同,从而避

    2022年6月23日
    26
  • 国密算法「建议收藏」

    国密算法「建议收藏」算法分类国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。SM1为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加

    2022年8月1日
    21
  • CSDN社区内容创作规范

    CSDN长久以来秉持初心,致力于为广大用户提供良好的创作环境,打造健康有序的技术生态!但良好的社区环境,需各位创作者与CSDN共同维护建立!【CSDN内容创作规范】请在发文前认真阅读:如你发布的内容存在以下问题,文章将无法通过审核,违规情节严重的,将对帐号进行封号处理。请各位创作者严格遵守社区的内容创作规范,共同守护我们的社区环境!目录一、在平台发布以下相关内容审核将不予通过1、违反法律法规和相关政策2、无资质发布专业领域内容3、流量作弊4、营销/推广引流5、不文明用语6、

    2022年4月8日
    105
  • SQL Server 动态掩码

    SQL Server 动态掩码

    2021年11月27日
    48
  • 商标注册_企业软件

    商标注册_企业软件开发软件时,当用到商业用途时,注册码与激活码就显得很重要了。现在的软件激活成功教程技术实在在强了,各种国内外大型软件都有注册机制,但同时也不断地被激活成功教程。下面发的只是一个常用版本,发出源码被破就更容易了,但我们学习的是技术。当然也为以后自己的软件不会被轻易激活成功教程。第一步。根据卷标,CPU序列号,生成机器码//取得设备硬盘的卷标号       publicstaticstringG

    2022年9月1日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号