Dynamics.js是一款可以创建物理运动动画效果的js库插件。你可以使用它来制作任何DOM元素的CSS属性动画,也可以制作SVG属性动画和任何JAVASCRIPT对象动画。
安装
可以使用bower或nmp来安装Dynamics.js插件。
bower install dynamics.js
npm install dynamics.js               
              
              在页面中引入dynamics.js文件。
<script src="dynamics.js"></script>                
              
              使用方法
你可以制作任何HTML DOM元素的CSS属性动画:
var el = document.getElementById("logo")
dynamics.animate(el, {
  translateX: 350,
  scale: 2,
  opacity: 0.5
}, {
  type: dynamics.spring,
  frequency: 200,
  friction: 200,
  duration: 1500
})                
              
              你也可以制作SVG属性动画:
var path = document.querySelector("path")
dynamics.animate(path, {
  d: "M0,0 L0,100 L100,50 L0,0 Z",
  fill: "#FF0000",
  rotateZ: 45,
  // rotateCX 和 rotateCY 是旋转的中心点
  rotateCX: 100,
  rotateCY: 100
}, {
  friction: 800
})                
              
              你还可以制作任何javascript对象的动画:
var o = {
  number: 10,
  color: "#FFFFFF",
  string: "10deg",
  array: [ 1, 10 ]
}
dynamics.animate(o, {
  number: 20,
  color: "#000000",
  string: "90deg",
  array: [-9, 99 ]
})                
              
              API
dynamics.animate(el, properties, options)
通过动画参数来动画一个元素到指定的状态。
- 
el:一个DOM元素,一个JavaScript对象或一个元素数组。 - 
properties:你想动画的对象的属性/值。 - 
options:代表动画的对象。- 
type:动画的类型。如dynamics.spring,dynamics.easeInOut等,默认值为dynamics.easeInOut。 - 
frequency,friction,bounciness:指定你想使用的动画类型。 - 
duration:动画持续时间,单位毫秒,默认值1000。 - 
delay:动画的延迟时间,单位毫秒,默认值0。 - 
complete:可选值,动画结束后的回调函数。 - 
change:可选择,每一次改变时的回调函数。 
 - 
 
dynamics.stop(el)
停止在元素上应用的动画。
dynamics.css(el, properties)
为动画元素指定当前浏览器前缀的CSS属性。
- 
el:DOM元素。 - 
properties:一个CSS属性的对象。 
dynamics.setTimeout(fn, delay)
Dynamics.js有自己的setTimeout。因为requestAnimationFrame和setTimeout在不同的浏览器中表现不一致。
- 
fn:回调函数。 - 
delay:单位毫秒。 
返回唯一的ID号。
dynamics.clearTimeout(id)
清除前定义的timeout。
Dynamics and properties
dynamics.spring
- 
frequency:默认值300。 - 
friction:默认值200。 - 
anticipationSize:可选项。 - 
anticipationStrength:可选项。 
dynamics.bounce
- 
frequency:默认值300。 - 
friction:默认值200。 
dynamics.forceWithGravity 和 dynamics.gravity
- 
bounciness:默认值400。 - 
elasticity:默认值200。 
dynamics.easeInOut, dynamics.easeIn 和 dynamics.easeOut
- 
friction:默认值500。 
dynamics.linear
没有属性。
dynamics.bezier
- 
points:点和控制点的数组。 
浏览器兼容
- Safari 7+
 - Firefox 35+
 - Chrome 34+
 - IE10+
 
版权声明
文章来源: https://www.uihtm.com/jquery/8844.html
版权说明:仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。我们非常重视版权问题,如有侵权请邮件(44784009#qq.com)与我们联系处理。敬请谅解!


                    



















