JS实现的抛物线运动效果示例


Posted in Javascript onJanuary 30, 2018

本文实例讲述了JS实现的抛物线运动效果。分享给大家供大家参考,具体如下:

先来看看运行效果:

JS实现的抛物线运动效果示例

具体代码如下:

<!doctype html >
<html>
<head>
  <meta charset="utf-8"/>
  <title>抛物线运动</title>
  <style>
    .pwx_rect{position:absolute;left:10px;top:300px;background-color:#888;height:50px;width:50px;}
    .pwx_hr{border-top:2px solid #ddd;position:absolute;width:98%;left:0px;top:350px;}
  </style>
  <script>
    test = function(){
      var rect = document.getElementById("rect");
      pwx(rect,60,5); //参数2:抛物线角度,参数3:横向速度每次增加5
    }
    function pwx(rect,radian,step){
      var animate = function(opt){
        var cos = Math.cos(opt.radian*Math.PI/180);//邻边比斜边,60度的话等于1/2
        var sin = Math.sin(opt.radian*Math.PI/180);//对边比斜边,30度的话等于1/2
        var left = opt.rect.offsetLeft;
        var top = opt.rect.offsetTop;
        if(opt.radian>0){
          left+=opt.step;
          opt.radian-=1; //角度递减1
          var a = left - opt.initLeft;
          var c = (a/cos);
          var b = (sin*c);
          opt.rect.style.left = opt.initLeft+a+"px";
          opt.rect.style.top = opt.initTop-b+"px";
          setTimeout(function(){
            animate(opt);
          },10);
        }else{
          opt.rect.style.left = left+opt.step+"px";
          opt.rect.style.top = opt.initTop+"px";
        }
      }
      animate({
        step : step,
        rect : rect,
        radian : radian,
        initTop : rect.offsetTop,
        initLeft : rect.offsetLeft
      });
    }
  </script>
</head>
<body>
3water.com
<input type="button" value="抛物线" onclick="test()"/>
  <div class="pwx_rect" id="rect"></div>
  <div class="pwx_hr"></div>
</body>
</html>

实现思路:

JS实现的抛物线运动效果示例

X方向的边长每次递增5,角度每次递减1,根据这两个已知条件,通过三角函数就可以计算出Y方向的长度是多少

从而得出每次运动的X和Y方向的坐标值,达到抛物线的效果

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

Javascript 相关文章推荐
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
Mar 04 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
javascript模拟实现ajax加载框实例
Oct 15 Javascript
JQuery中DOM加载与事件执行实例分析
Jun 13 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
JavaScript定义全局对象的方法示例
Jan 12 Javascript
使用原生js+canvas实现模拟心电图的实例
Sep 20 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
layui-select动态选中值的例子
Sep 23 Javascript
Vue实现仿iPhone悬浮球的示例代码
Mar 13 Javascript
jquery实现手风琴案例
May 04 jQuery
原生js实现自定义滚动条组件
Jan 20 Javascript
express如何使用session与cookie的方法
Jan 30 #Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 #Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 #Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
Jan 30 #Javascript
微信小程序数据存储与取值详解
Jan 30 #Javascript
Vue精简版风格概述
Jan 30 #Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 #Javascript
You might like
PHP中的超全局变量
2006/10/09 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
简单的Python调度器Schedule详解
2019/08/30 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
简单的命令查看安装的python版本号
2020/08/28 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
英国羊绒服装购物网站:Pure Collection
2018/10/22 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
室内设计自我鉴定
2013/10/15 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
临时用工协议书范本
2014/10/29 职场文书
酒店前台岗位职责
2015/04/16 职场文书
初中地理教学反思
2016/02/19 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js