| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> JavaScript实现运动函数的封装(抛物) -> 正文阅读 |
|
[JavaScript知识库]JavaScript实现运动函数的封装(抛物) |
????????当今的生活质量越来越高,人们对于自身的身体素质也更加重视。对于运动的热情,逐渐高涨起来。? ? ? ? 人类的体育锻炼运动中,看见最多的就是篮球了吧。本人不会打篮球,因为篮球看着太吓人, 我的小身板也不允许我去打篮球,打篮球的过程中总会有磕磕撞撞,导致受伤。 ? ? ? ? 篮球运动的规则不就是,把球扔进篮球篮子嘛。so eazy 。再换句话说不就是大家都知道的抛物运动嘛。 ? ? ? ? 提到抛物运动,回想起高中物理,是不是大家对于打篮球就充满了‘自信’。手抬高,一扔,进了!!! 今天介绍的也是抛物运动的实现,不过不是在生活中实现它。而是在页面中实现它,而实际上在也页面上投篮的就是JavaScript。它才是本场比赛的篮球运动员。? ?在讲抛物线运动之前,要明白抛物线运动的实质。或者将其分解为两个方向的运动。? ? ? ? 1.首先是竖直方向上的运动,就是单纯的高度逐渐减小的过程 ? ? ? ? 2.其次就是水平方向上的运动,也就是单纯的往一个方向位移过程。 ? ? ? ? ? ? ? ? 将这两个分支运动合起来就是我们的打篮球了。 ? ?让我们的JavaScript上场表演吧!!!?垂直方向: ? ? ? ? 垂直方向的运动,在页面中就是高度的减小。 ? ? ? ? 下面是一个简单的例子:篮球的重力回弹的效果。 ???????????????? ?第一阶段的过程就是球的下落过程,也就是球的高度top的不断增大。 ? ? ? ? 在top值增大的过程中也就需要,不断地给top增加一个speed步进值。 ? ? ? ? ? ? ? ? 先是基本的css和html样式和结构? ? ? ??
?接下来就是我们今天的主角:JavaScript登场啦!!! ? ? ? ? 第一步是获取html当中的节点对象,才能进行操作。
? ? ? ? 第二步进行我们所需要的变量的声明准备。 ? ? ? ? ? ? ? ? 其中重要的变量有: ? ? ? ? ? ? 1. 因为地球的原因,有重力,所以在步进值speed的基础上,应该还要增加重力带来的加速度。 ? ? ? ? ? ? ?2.target目标,就是篮球在范围内最大的可运动的高度(要减去球自身的高度)。 ? ? ? ? ? ? 3.要想让球的高度减少,就应该让球在反向的时候,让它的speed比原来小就可以了,所以给speed乘以一个小于1的数,就可以让反向高度变小。
第三步就是具体的实现方法 :
?完成上述的垂直方向的运动之后,就可以往其加上水平方向的代码了。 垂直方向和水平方向的结合:? ? ? ? 水平方向的原理其实和垂直方向差不多,你也可以想象将页面顺时针旋转90度。 ? ? ? ? 实现方法: ? ? ? ? 第一步获取节点对象,同上。 ? ? ? ? 第二步准备需要的变量。因为要在水平方向上变化,肯定也需要一个水平的步进值,leftSpeed,也同样需要往左的最大范围值leftTarget,也是?篮球在范围内最大的可运动的宽度再减去球本身的宽度。增加了一个count值用来,累积运动次数,每5次增加一个重力,让它能跳更久,到底部的时间增加。
? ? ? ? ?第三步,只需要给球在高度样式的位置添加水平位移样式即可
在这里需要注意:? ? ? ? ? 球可能会从水平方向滚出去。所以还需要给球设置边界: ? ? ? ? 思路其实很简单:只需要等球到达可运动范围的最大值的时候,让它的步进值反向。
?综上实现得到的代码 :
前两个例子大同小异,方法基本相同。所以可以想办法封装一个运动函数。? ? ? ? 运动函数的目的就是,只要输入运动的三要素{谁运动,运动方向,目标值}。我们就能实现运动效果。 ? ? ? ? 其中获取元素的实时属性的时候,需要考虑是否是行内样式。如果不是行内样式,要添加兼容性获取样式的封装函数。
?得到元素的实时位置之后就可以进行下一步封装运动函数了。
调用封装运动函数的方法:? ? ? ? ? ?首先应该得到一个目标值(可以是任何数据)。target ? ? ? ? 再比如给一个按钮绑定点击事件,开始运动。同样需要运动三要素。 ? ? ? ? ele为要运动元素名,第二个参数为对象,对象中是需要运动的属性和属性值,最后是回调函数,回调函数可以根据情况添加或者不加。
?有了运动函数就可以随意添加变化的属性值了,再也不用担心要添加的变量多了! 举一个使用封装运动函数实现的例子:
? ? ? ? ?第一个要求:让红色方块移动到黑色竖线。 ? ? ? ? 第二个要求:在移动的过程中方块的高度要变化到300px。 实现步骤: ? ? ? ? 1.首先是移动的元素是:方块。 ? ? ? ? 2.变化的属性:方块的height,方块距离屏幕的left值。 ? ? ? ? 3.目标值:height的目标值就是300px,left的目标值设为target就应该是方块的offsetLeft值减去竖线的offsetLeft值。
?再将上面封装好的运动函数,加到点击事件后面即可完成。 运动函数的封装就完成了! |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 20:34:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |