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 相关文章推荐
Mootools 1.2教程 正则表达式
Sep 15 Javascript
javascript URL编码和解码使用说明
Apr 12 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
原生js轮播(仿慕课网)
Feb 15 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
javascript实现循环广告条效果
Dec 12 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
javascript将扁平的数据转为树形结构的高效率算法
Feb 27 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 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中的array数组类型分析说明
2010/07/27 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
js 表格隔行颜色
2009/12/02 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
vue.js todolist实现代码
2017/10/29 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
python使用thrift教程的方法示例
2019/03/21 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
如何理解python面向对象编程
2020/06/01 Python
世界上最大的二手相机店:KEN
2017/05/17 全球购物
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
法律六进活动方案
2014/03/13 职场文书
宣传工作经验材料
2014/06/02 职场文书
会议通知
2015/04/15 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
python 详解turtle画爱心代码
2022/02/15 Python