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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
Aug 23 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
jQuery实现的表格展开伸缩效果实例
Sep 07 Javascript
AngularJS表格样式简单设置方法示例
Mar 03 Javascript
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
详解webpack与SPA实践之开发环境搭建
Dec 18 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
用JavaScript实现贪吃蛇游戏
Oct 23 Javascript
vue实现简单加法计算器
Oct 22 Javascript
vue组件添加事件@click.native操作
Oct 30 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 substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
PHP7 弃用功能
2021/03/09 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
Javascript 加载和执行-性能提高篇
2012/12/28 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
详解Python中的条件判断语句
2015/05/14 Python
python中map()与zip()操作方法
2016/02/27 Python
Python中单、双下划线的区别总结
2017/12/01 Python
Python实现自动发送邮件功能
2021/03/02 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
Internal修饰符有什么含义
2013/07/10 面试题
自荐信格式的六要素
2013/09/21 职场文书
学生就业推荐信
2013/11/13 职场文书
酒店拾金不昧表扬信
2014/01/18 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
房屋产权证明书
2014/10/15 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
创业计划书之网吧
2019/10/10 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript