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 相关文章推荐
从父页面读取和操作iframe中内容方法
Jul 25 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
react build 后打包发布总结
Aug 24 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
npm qs模块使用详解
Feb 07 Javascript
vue路由权限校验功能的实现代码
Jun 07 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
Sep 21 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中通过curl检测页面是否被百度收录
2013/09/27 PHP
php实现字符串翻转的方法
2015/03/27 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
javascript IE中的DOM ready应用技巧
2008/07/23 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
python中pygame模块用法实例
2014/10/09 Python
python批量生成本地ip地址的方法
2015/03/23 Python
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
让Python代码更快运行的5种方法
2015/06/21 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python实现泊松图像融合
2018/07/26 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
python 装饰器的使用示例
2020/10/10 Python
python开发一款翻译工具
2020/10/10 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
项目申报专员岗位职责
2014/07/09 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
《花钟》教学反思
2016/02/17 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
Pygame Time时间控制的具体使用详解
2021/11/17 Python