本文作者html5tricks,转载请注明出处
利用jQuery和HTML5可以模拟很多数学中的函数图象,比如HTML5 Canvas正弦波动画。今天我们要介绍一个用jQuery实现简单的模拟抛物线轨迹的插件,可以开始和暂停抛物线的运动,以及重新设置抛物线的参数。
下面简单了解一下实现这个jQuery抛物线运动的过程。
HTML代码:
<div class="btns" style="margin-top:20px"> <a href="javascript:;" id="run">run</a> <a href="javascript:;" id="reset">reset</a> <a href="javascript:;" id="stop">stop</a> <a href="javascript:;" id="setOptions">setOptions</a> </div> <div id="boll" class="boll"></div> <div id="target" class="target"></div>
CSS代码:
.btns{text-align:center;} .btns a{ color:#fff;padding:5px 10px;font-family:Arial; background-color:#f90;text-decoration:none; } .boll { width: 50px; height: 50px; background-color: #ff3333; position: absolute; top: 380px; left: 100px; -moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; } .target { width: 50px; height: 50px; background-color: #CDCDCD; position: absolute; top: 180px; left: 600px; -moz-border-radius: 50px; -webkit-border-radius: 50px; border-radius: 50px; }
引入我们的jQuery库和抛物线插件库:
<script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript" src="js/parabola.js"></script>
最后是JavaScript调用:
<script type="text/javascript"> var bool = new Parabola({ el: "#boll", offset: [500, 100], curvature: 0.005, duration: 2000, callback:function(){ alert("完成后回调") }, stepCallback:function(x,y){ console.log(x,y); $("<div>").appendTo("body").css({ "position": "absolute", "top": this.elOriginalTop + y, "left":this.elOriginalLeft + x, "background-color":"#CDCDCD", "width":"5px", "height":"5px", "border-radius": "5px" }); } }); $("#reset").click(function () { bool.reset() }); $("#run").click(function () { bool.start(); }); $("#stop").click(function () { bool.stop(); }); $("#setOptions").click(function () { bool.setOptions({ targetEl: $("#target"), curvature: 0.001, duration: 1000 }); }); </script>
其实实现起来也并不难,主要运用了数学转换的概念,你学要对抛物线的物理学原理非常清楚。