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 相关文章推荐
12种不宜使用的Javascript语法整理
Nov 04 Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
jquery遍历标签中自定义的属性方法
Sep 17 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
ES6中新增的Object.assign()方法详解
Sep 22 Javascript
video.js 一个页面同时播放多个视频的实例代码
Nov 27 Javascript
详解js 创建对象的几种方法
Mar 08 Javascript
解决await在forEach中不起作用的问题
Feb 25 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
2013/07/31 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python-copy()与deepcopy()区别详解
2019/07/12 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
详解python中的异常捕获
2020/12/15 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
求职简历自荐信范文
2013/10/21 职场文书
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
员工晚婚的请假条
2014/02/08 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
建国大业观后感
2015/06/01 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP