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 相关文章推荐
javascript DOM编程实例(智播客学习)
Nov 23 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
jquery插件制作 表单验证实现代码
Aug 17 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
JavaScript中子对象访问父对象的方式详解
Sep 01 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
vue 页面加载进度条组件实例
Feb 05 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
JavaScript读写二进制数据的方法详解
Sep 09 Javascript
javascript动态创建对象的属性详解
Nov 07 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
vue--vuex详解
2019/04/15 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python中dict()的高级用法实现
2019/11/13 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
Pandas的Apply函数具体使用
2020/07/21 Python
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
节能标语大全
2014/06/21 职场文书
水电维修专业推荐信
2014/09/06 职场文书
实习生工作证明范本
2014/09/14 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
离婚财产处理协议书
2014/09/30 职场文书
爱国影片观后感
2015/06/18 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书