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 相关文章推荐
看了就知道什么是JSON
Dec 09 Javascript
基于jquery的一个拖拽到指定区域内的效果
Sep 21 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
使用Jenkins部署React项目的方法步骤
Mar 11 Javascript
layui实现数据表格table分页功能(ajax异步)
Jul 27 Javascript
node express使用HTML模板的方法示例
Aug 22 Javascript
前端开发之便利店收银系统代码
Dec 27 Javascript
JS this关键字在ajax中使用出现问题解决方案
Jul 17 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 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
杏林同学录(八)
2006/10/09 PHP
使用adodb lite解决问题
2006/12/31 PHP
PHP Mysql编程之高级技巧
2008/08/27 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
python爬取代理ip的示例
2020/12/18 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
企业金融服务方案
2014/06/03 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
numpy数据类型dtype转换实现
2021/04/24 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫