范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Velocity。js动画库的使用

  1、概述版本已经达到1.0.0。发生了三个重要变化:
  jquery.velocity.js已经重命名为velocity.js,因为Velocity不再需要jQuery函数。如果你仍然使用jQuery与Velocity,你不需要改变任何代码; 速度将一如既往地发挥作用。
  已经进行了两个向后不兼容的更改:1)当访问传递到begin/complete/progress/promise回调中的元素时,必须遍历它们(例如通过$.each()或.forEach()),因为它们现在包裹在数组中,然后通过。2)背部,反弹和弹性缓冲已被移除。请改用弹簧物理学。
  如果您使用模块加载器,例如RequireJS和Browserify,请阅读本部分的末尾,以了解如何重新加载Velocity。
  2、示例Velocity获取CSS属性和值的映射作为其第一个参数。 可以可选地作为第二个参数传递options对象: $element.velocity({     width: "500px",     property2: value2 }, {     /* Velocity"s default options */     duration: 400,            // 持续时间     easing: "swing",          // 过度效果     queue: "",                // 队列     begin: undefined,         // 开始时     progress: undefined,      // 进度     complete: undefined,      // 完成后     display: undefined,       // 显示     visibility: undefined,    // 可见性      loop: false,              // 是否循环     delay: false,             // 延迟     mobileHA: true            // 开启移动硬件加速  // 使用Velocity没有jQuery时,可以写成如下形式: Velocity(document.getElementById("dummy"),          { opacity: 0.5 },          { duration: 1000 });
  3、单个对象Velocity还支持单参数语法(这允许更具表达性的CoffeeScript代码)。 简单地传递一个具有属性(或p)和选项(或o)成员的对象: $element.velocity({     properties: { opacity: 1 },     options: { duration: 500 } }); 要么: $element.velocity({     p: { opacity: 1 },     o: { duration: 500 } });  逗号分隔 Velocity还接受jQuery的逗号分隔语法,而不是传入一个options 对象, 但是只能用于duration,easing和complete属性: $ element.velocity(propertyMap [,duration] [,easing] [,complete])。 这些选项可以按任意顺序放置: $element.velocity({ top: 50 }, 1000); $element.velocity({ top: 50 }, 1000, "swing"); $element.velocity({ top: 50 }, "swing"); $element.velocity({ top: 50 }, 1000, function() { alert("Hi"); });
  4、属性映射速度自动前缀属性(例如,变换成WebKit浏览器上的webkit变换); 不要自己前缀属性。 速度为每个属性生成一个数值。因此,您可以传入: { padding: 1 } 要么 { paddingLeft: 1, paddingRight: 1 } 但是你不能传递,因为你提供了多个数值。 { padding: "1 1 1 1" }  速度支持px,em,rem,%,deg和vw / vh单位。如果不提供一个单元, 一个适当的自动分配-通常是像素,但DEG在rotateZ的例子的情况。 Velocity支持四个值运算符:+, - ,*和/。您可以在其中任何一个上添加一个等号, 以执行相对数学运算。 $element.velocity({     top: 50, // Defaults to the px unit type     left: "50%",     width: "+=5rem", // Add 5rem to the current rem value     height: "*=2" // Double the current height }); 浏览器支持:在IE 9下不支持rem单位。在IE 9或以下Android 4.4以下不支持vh / vw单位。
  5、链接当多个Velocity调用堆叠到一个元素(或一系列元素)上时,它们会自动排列在一起 -  每个元素在其先前的动画完成后触发: $element     /* Animate the width property. */     .velocity({ width: 75 })     /* Then, when finished, animate the height property. */     .velocity({ height: 0 });123456
  6、持续时间Velocity支持以毫秒为单位指定的持续时间以及jQuery的命名持续时间: "slow","normal"和"fast"。 $element.velocity({ opacity: 1 }, { duration: 1000 }); 或 $element.velocity({ opacity: 1 }, { duration: "slow" });1234
  7、过度效果(1)预打包成Velocity是jQuery UI的简化,除了后退,弹跳和弹性缓动类型。还包括奖金"弹簧"缓动。 (2)CSS3的命名easings:"ease","ease-in","ease-out"和"ease-in-out"。 (3)CSS3的贝塞尔曲线:传递贝塞尔点的四项数组。 (4)弹簧物理:以[张力,摩擦]的形式传递两项数组。较高的张力(默认值:500)增加总速度和弹性 。较低的摩擦(默认:20)增加结束振动速度。 (5)步骤过度:以[steps]的形式传递一个单项数组。动画将使用指定的步数跳到其结束值 所有上述缓动类型都与IE8 +完全兼容。(很酷!) 你可以传递一个包装的缓存的名字(例如"ease-out"或"easeInSine"),或者你可以传入一个数组 类型: /* Use one of the jQuery UI easings. */ $element.velocity({ width: 50 }, "easeInSine"); /* Use a custom bezier curve. */ $element.velocity({ width: 50 }, [ 0.17, 0.67, 0.83, 0.67 ]); /* Use spring physics. */ $element.velocity({ width: 50 }, [ 250, 15 ]); /* Use step easing. */ $element.velocity({ width: 50 }, [ 8 ]);  也可以选择通过传递两项数组作为属性的值,在每个属性的基础上声明。第一项是标准结束值,第二项 是过度类型: $element.velocity({     borderBottomWidth: [ "2px", "spring" ], // Uses "spring"     width: [ "100px", [ 250, 15 ] ], // Uses custom spring physics     height: "100px" // Defaults to easeInSine, the call"s default easing }, {     easing: "easeInSine" // Default easing });  自定义快速(高级) 要注册您自己的可在Velocity调用中使用的过度函数,请使用具有以下属性的函数扩展 $.Velocity.Easings对象: p:调用完成百分比(十进制值)。 opts(可选):将options对象传递到触发Velocity调用。 tweenDelta(可选):动画属性的结束值与其起始值之间的差异。 $.Velocity.Easings.myCustomEasing = function (p, opts, tweenDelta) {     return 0.5 - Math.cos( p * Math.PI ) / 2; };
  8、队列您可以将queue设置为false,以强制新的动画调用立即与任何当前活动动画并行运行。 $("p").velocity({      width: 50   }, {     duration: 3000   });  setTimeout(function() {     $("p").velocity({       height: 50     }, {       queue: false,       duration: 1500     }); }, 1500); 或者,可以通过传递队列自定义队列的名称来创建自定义队列 - 不立即启动的队列。 您可以并行构建多个自定义队列,然后通过$ element.dequeue("queueName") (或Velocity.Utilities.dequeue(element,s),"queueName")单独启动它们, 如果你使用Velocity没有jQuery) 。 请注意,循环选项和反向命令不适用于自定义和并行队列。 Velocity使用与jQuery相同的排队逻辑,因此与$.animate(),$.fade() 和$.delay()无缝地互操作。
  9、开始 和 完成// 开始============================================ 与完成一样,每次调用都会执行一次 begin回调,即使多个元素正在进行动画处理。此外, 如果一个调用循环,begin回调只在第一个循环交替开始时触发一次。 回调传递整个原始DOM(不是jQuery)元素数组作为其上下文和它的第一个参数。 要单独访问这些元素,您必须使用jQuery的$.each()或JavaScript的原生.forEach() 迭代数组。 $element.velocity({     opacity: 0 }, {     /* Log all the animated ps. */     begin: function(elements) { console.log(elements); } }); // 完成====================================================== 完成是begin选项的相反。传递完整的选项一个动画完成后触发的函数。每次调用都会执行一次函数, 即使同时对多个元素进行动画处理。此外,如果调用循环,则完整的回调仅在最后一个循环交替结束 时触发一次。  回调传递整个原始DOM(不是jQuery)元素数组作为其上下文和它的第一个参数。要单独访问这些 元素,您必须使用jQuery的$.each()或JavaScript的原生.forEach()迭代数组。  $element.velocity({     opacity: 0 }, {     /* Log all the animated ps. */     complete: function(elements) { console.log(elements); } });
  10、进度传递progress选项一个回调函数,以反复触发动画的持续时间。回调函数传递有关调用状态的数据。 此数据可用于自定义补间等。 回调传递整个原始DOM(不是jQuery)元素数组作为其上下文和它的第一个参数。要单独访问这些 元素,您必须使用jQuery的$.each()或JavaScript的原生.forEach()迭代数组。此外, 它通过:complete,remaining,start和tweenValue: complete:调用的完成百分比(十进制值)。 剩余:直到呼叫完成为止剩余的时间(以毫秒为单位)。 start:呼叫开始的绝对时间(在Unix时间)。 tweenValue:虚拟tween动画属性的当前值,可以选择性地传递到Velocity调用。 传递补间动画属性的实用程序是,它允许您然后通过进度回调捕获其补间进度的确切值。 这个虚拟属性,像所有其他Velocity动画属性一样,受到调用的缓动行为。利用这个补间属性, 你可以将Velocity转换成一个自定义补间引擎,这样你就可以改变任意的DOM属性。  $element.velocity({     opacity: 0,     tween: 1000 // Optional }, {     progress: function(elements, complete, remaining, start, tweenValue) {         console.log((complete * 100) + "%");         console.log(remaining + "ms remaining!");         console.log("The current tween value is " + tweenValue)     } });  请注意,您可以传递虚拟补间值以及其他属性; 补间不必独立。此外,注意, 您可以forcefeed的补间属性从任意偏移开始。如果不强制输入起始值,则补间将从值0开始。  $element.velocity({     tween: [ 0, 1000 ] }, {     easing: "spring",     progress: function(elements, c, r, s, t) {         console.log("The current tween value is " + t)     } });
  11、mobileHAmobileHA代表移动硬件加速。当设置为true - 其默认值 - 速度动画在移动设备上自动硬件加速。 mobileHA对桌面浏览器没有影响。
  12、循环将loop选项设置为整数以指定动画在调用属性映射中的值与调用之前元素的值之间交替的次数: $element.velocity({ height: "10em" }, { loop: 2 });  如果begin或complete回调与循环调用一起使用,则它们分别在循环动画的开始和循环动画的结尾 被触发一次。对于每个循环交替,它们不被重新触发。 而不是传入一个整数,你可以传入true来触发无限循环:  $element.velocity({ height: "10em" }, { loop: true });  无限循环从不返回promises,忽略完整的回调,并且不能与queue:false一起使用。此外 ,确保停止一个无限循环,然后在同一元素上触发另一个无限循环。
  13、延迟指定在动画开始之前插入暂停的延迟选项(以毫秒为单位)。延迟选项存在,以便动画逻辑可以完全 保持在Velocity - 而不是在整个代码中喷洒jQuery的$ .delay()。 您可以在循环选项旁边设置延迟选项,以在循环替换之间创建暂停: $element.velocity({     height: "+=10em" }, {     loop: 4,     /* Wait 100ms before alternating back. */     delay: 100 });123456789
  14、显示和可见性Velocity的显示和可见性选项直接对应它们的CSS对应,因此接受相同的值: display接受"inline","inline-block","block","flex",""(空引号删除属性) , 以及浏览器原生支持的其他任何内容。可见性接受"隐藏","可见","折叠"和""(空引号删除属性)。 要显示,可见性和不透明度的行为之间的比较,请参阅此帖子。  独占Velocity,显示选项也采用非标准值"auto",它指示Velocity将元素设置为其本机显示值。 例如,锚元素默认为"inline",而p元素默认为"block"。  Velocity集成的CSS显示/可见性更改允许所有的动画逻辑包含在Velocity内, 这意味着您不再需要在整个代码中使用jQuery的$ .hide()和$ .show()函数。  用法 当显示选项设置为"无"(或当可见性设置为"隐藏"时),在动画完成后相应地设置CSS属性。 这在动画完成时隐藏元素,在将元素的不透明度动画化为0时非常有用。 (当这些选项与loop选项一起使用时,它们在最终循环迭代结束时设置)。 这里,一个元素在淡出后从页面的流中删除。这将替换jQuery的$ .fadeOut()函数: /* Animate down to zero then set display to "none". */ $element.velocity({ opacity: 0 }, { display: "none" });  这里,元素一旦淡出就变得不可见: /* Animate down to zero then set visibility to "hidden". */ $element.velocity({ opacity: 0 }, { visibility: "hidden" });  相反,当显示/可见性被设置为除"无"/"隐藏"之外的值(例如"块"/"可见")时,在动画开始之前 设置相应的值,使得该元素在整个持续时间动画。 (此外,如果不透明度同时动画,它将被强制为0的起始值。这对于将元素淡化回视图很有用。)  这里,在元素开始衰落之前将显示设置为"块" : /* Set display to "block" then animate from opacity: 0. */ $element.velocity({ opacity: 1 }, { display: "block" });
  15、淡出和滑动(命令)淡入淡出和滑动命令会自动设置目标元素的显示属性以显示或隐藏元素(视情况而定)。默认情况下, 当显示一个元素时,显示设置为元素的本地类型(ps设置为"block",跨度设置为"inline"等)。 这可以通过将自定义显示值传递到options对象来覆盖:  /* Set the element to a custom display value of "table". */  $element.velocity("fadeIn", { display: "table" }); fadeIn和fadeOut  要淡出一个元素,传入"fadeIn"或"fadeOut"作为Velocity的第一个参数。 淡入淡出命令的行为与标准Velocity调用相同; 他们可以选择,他们可以排队。  $element     .velocity("fadeIn", { duration: 1500 })     .velocity("fadeOut", { delay: 500, duration: 1500 }); 上面,我们淡入一个元素为1500毫秒,暂停500毫秒(延迟:500),然后淡出另一个1500毫秒。  slideUp和slideDown 要将元素的高度设置为零或从零开始,请将"slideDown"或"slideUp"作为Velocity的第一个参数。 滑动命令的行为与标准Velocity调用相同; 他们采取的选择和可以链接。  $element     .velocity("slideDown", { duration: 1500 })     .velocity("slideUp", { delay: 500, duration: 1500 });  上面,我们将一个元素向下滑动到视图超过1500毫秒,暂停500毫秒(延迟:500),然后向上滑出 视图另一个1500毫秒。
  16、滚动(命令)要滚动浏览器到元素的顶部边缘,传递"scroll"作为Velocity的第一个参数(而不是属性映射)。 滚动命令的行为与标准Velocity调用相同; 它可以采取选项,它可以排队。  $element     .velocity("scroll", { duration: 1500, easing: "spring" })     .velocity({ opacity: 1 });  上面,我们使用1500ms的持续时间和"弹簧"缓动将浏览器滚动到p的边缘的顶部。然后,一旦元素 滚动到视图,我们淡入它。  要使用滚动条滚动到包含元素内的元素,滚动命令唯一地采用可选的容器选项,它接受jQuery对象或 原始DOM元素。容器元素必须将其CSS 位置属性设置为相对,绝对或固定 - 静态将不工作: /* Scroll $element into view of $("#container"). */ $element.velocity("scroll", { container: $("#container") });  注意,在这两种情况下 - 滚动是相对于浏览器窗口还是包含元素 - 滚动命令总是在正在滚动到视图 中的元素上调用。  默认情况下,滚动发生在Y轴上。传递轴:"x"选项水平滚动改为:  /* Scroll the browser to the LEFT edge of the targeted p. */ $element.velocity("scroll", { axis: "x" }); 滚动还唯一采用偏移选项,以像素为单位,偏移目标滚动位置: $element     /* Then scroll to a position 250 pixels BELOW the p. */     .velocity("scroll", { duration: 750, offset: 250 })     /* Scroll to a position 50 pixels ABOVE the p. */     .velocity("scroll", { duration: 750, offset: -50 });  或者,要滚动整个浏览器窗口任意量(而不是元素的边缘),只需定位html元素并使用自定义偏移值。 (可选)另外传入mobileHA:false,以避免iOS上出现潜在的闪烁问题:  /* Scroll the whole page to an arbitrary value. */ $("html").velocity("scroll", { offset: "750px", mobileHA: false });
  17、停止(命令)要立即停止元素上所有当前Velocity调用(包括通过queue:false调用的并行动画), 请将"stop"作为Velocity的第一个参数传递。元素的动画队列中的下一个Velocity调用立即开始。  如果要停止自定义队列,请将队列名称作为第二个参数。或者,要仅停止平行动画( 使用queue:false调用),而不是当前默认队列动画,请将false传递为自定义队列名称。  $element.velocity("stop"); // Normal stop $element.velocity("stop", "myQueue"); // Custom queue stop  当呼叫停止时,其完整的回调和显示:无跳转被跳过。  重要提示:注意,循环的 Velocity调用实际上是一系列链接在一起的Velocity调用。因此, 要完全停止循环动画,您必须传入第二个参数以清除元素的剩余调用。类似地,为了完全停止UI包效果 (可以包含多个 Velocity调用),您需要清除元素的整个待处理动画队列。有关如何执行此操作的 详细信息,请参阅下面的清除动画队列。  作为参考,一个常见的模式是停止调用,然后使用Velocity的反向命令将其动画回到其起始值:  /* Prior Velocity call. */ $element.velocity({ opacity: 0 }); /* Later, midway through the call... */ $element     /* Stop animating opacity. */     .velocity("stop")     /* Animate opacity back to 1. */     .velocity("reverse");  //清除动画队列============================ 当调用停止时,元素的队列链中的下一个Velocity调用立即触发。或者,您可以传递true(或自定义 队列的名称)以清除所有元素的剩余排队调用。与标准停止行为一样,在元素上运行的所有并行动画 也将停止: /* Prior Velocity calls. */ $element     .velocity({ width: 100 }, 1000)     .velocity({ height: 200 }, 1000); /* Called immediately after. */ $element.velocity("stop", true); 上面,初始{width:100}调用将立即停止,随后的{height:200}将被删除并完全跳过(它永远不会 运行)。 重要提示:如果在针对多个元素的调用中清除剩余的队列条目,请确保将停止命令应用于调用初始定位 的所有元素集。否则,一些元素将具有阻塞队列,并将进一步忽略Velocity调用,直到它们被手动出 列。 // 停止多元素调用 ========================================= 因为Velocity使用基于调用的补间,当在一个元素上调用停止时,它特别是负责停止该元素的当前 动画的调用。因此,如果其他元素也被同一个调用定向,它们也将被停止: /* Prior Velocity call. */ $allElements.velocity({ opacity: 0 }); /* Stop the above call. */ $allElements.velocity("stop"); or /* Behaves like above since it"s ending a multi-element call. */ $firstElement.velocity("stop"); 如果你想要在多元素动画中的元素停止控制,通过调用Velocity每个元素一次执行动画。
  18、完成(命令)要过早跳到动画结束,使用finish命令作为Velocity的第一个参数传递"完成"。  $element.velocity("finish");  而Velocity的停止命令突然中止动画,并将其动画属性保留在停止的确切时刻的任何值,完成应用 动画的所需最终属性值。此外,与停止不同,完成不会阻止呼叫的完整回调或显示:无切换发生。 简而言之,想想finish命令作为一种手段立即跳转到动画调用中的最后一帧。  与停止一样,调用完成也将影响所有当前活动的并行动画(使用queue:false调用的动画)。此外, 将false的第二个参数传递给finish命令与将此参数传递给stop命令具有相同的效果:仅将并行动画 作为完成的目标。最后,将true的第二个参数传递给finish命令也具有将此参数传递给stop命令的 相同效果:除了命令的默认行为(停止当前排队的调用加上所有并行动画)之外,剩余的调用默认队列 也将从队列中删除。但是,请注意,这些调用不会在删除之前立即运行; 剩余的排队呼叫的动画效果 将不会发生。
  19、反转(命令)要使元素在最后一个Velocity调用之前恢复为值,请将"reverse"作为Velocity的第一个参数。  Reverse默认为在元素以前的Velocity调用中使用的选项(持续时间,缓动等)。但是,这可以通过 传入一个新的选项对象来覆盖:  $element.velocity("reverse"); 或 $element.velocity("reverse", { duration: 2000 });  前一个调用的回调选项(开始和完成)被反向忽略; 反向不重新启动回调。 注意:反向命令仅适用于默认效果队列; reverse不能与自定义队列或并行队列(queue:false) 一起使用。
  20、变换(Transforms) CSS变换属性允许您在2D或3D空间中执行平移,缩放和旋转。在MDN了解详情。 为了实现与CSS校验,速度使用translateX和translateY的转换翻译,而不是属性名点 x和ÿ。  /* Translate to the right and rotate clockwise. */ $element.velocity({     translateX: "200px",     rotateZ: "45deg" });  由于Velocity只为每个CSS属性动画一个数值,因此必须使用transform属性声明轴。 例如,scale不能动画为"1.5,2",但scaleX()和scaleY()可以同时动画到这些值, 以实现相同的效果。(请参阅对Velocity的完全变换属性支持的CSS支持下拉列表。)  注意,Velocity的性能优化具有忽略外部变化以转换值(包括在样式表中定义的初始值, 但这通过Forcefeeding补救)的副产品。(您可以使用Hook功能在Velocity中手动设置变换值。)  细节 当3D变换属性(translateZ和rotateX / Y)正在动画时, 所有浏览器自动触发硬件加速(HA)。 HA的优点包括增加平滑性,而缺点包括模糊文本和内存消耗。如果您还希望强制HA用于2D变换, 以便从其可以提供的增加的性能(以牺牲可能的文本模糊性)中受益,那么通过将3D变换属性动画 化为伪值(例如0)来触发HA您的动画:  /* Translate to the right and rotate clockwise. */ $element.velocity({     translateZ: 0, // Force HA by animating a 3D property     translateX: "200px",     rotateZ: "45deg" });  (本节仅适用于桌面浏览器-默认情况下,速度自动打开HA对所有移动动画见。mobileHA了解更多信息。)  浏览器支持:请记住,IE 10以下和Android 3.0以下不支持3D变换,甚至在IE 9下面也不支持 2D变换。此外,请记住,必须在父元素上设置透视图才能使3D变换生效。有关详细信息, 请参阅MDN的转换指南。
  21、颜色Velocity支持以下属性的颜色动画:color,backgroundColor,borderColor和outlineColor。  你可以通过一个颜色属性十六进制字符串(RGB,HSLA字符串和颜色关键字不支持),或者你可以动画 颜色属性的各个RGB分量值:颜色成分是红,绿,蓝,和阿尔法,它们的范围是从0到255.( 他们也可以传递一个百分比值。)第四个组件,Alpha(与opacity相同),范围从0到1。  $element.velocity({     /* Animate a color property to a hex value of red... */     backgroundColor: "#ff0000",     /* ... with a 50% opacity. */     backgroundColorAlpha: 0.5,     /* Animate the red RGB component to 50% (0.5 * 255). */     colorRed: "50%",     /* Concurrently animate to a stronger blue. */     colorBlue: "+=50",     /* Fade the text down to 85% opacity. */     colorAlpha: 0.85 });  在IE 9及以下版本中,不支持RGBA,Velocity通过忽略Alpha组件来恢复为纯RGB。
  22、SVGVelocity包含对SVG元素动画的完全支持,包括SVG特定属性的动画,例如x,rx, stroke-width等。(一般来说,Velocity可以对任何具有单个数值的属性进行动画处理。)此外, Velocity支持SVG的fill,stroke和stopColor属性的颜色动画。  SVG元素动画有两个注意事项:首先,不是所有的CSS属性都可以应用于SVG元素。 (有关支持的属性的列表,请参阅下面的下拉列表。)第二,虽然SVG属性可以取px和%单位,  但它们不能使用em和rem单位。要了解有关使用SVG的更多信息,请参阅本文。  请注意,如上面的下拉列表中所列 - 只有2D SVG 变换属性适用于未运行Chrome的IE和Android 设备。(所有其他浏览器都有完整的3D支持。)此外,请注意下拉列表中每个属性支持的单位类型的 白名单。 下面是一些SVG示例属性:  $svgRectangle.velocity({     /* Coordinate animation works. */     x: 200,     r: 25,     /* 2D transforms work. */     translateX: "200px",     /* 3D transforms work in non-IE browsers. */     translateZ: "200px",     /* "Fill" color animation works. */     fill: "#ff0000",     strokeRed: 255,     strokeGreen: 0,     strokeBlue: 0,     /* Some standard CSS properties work. */     opacity: 1,     width: "50%" });  注意:如果设置viewbox属性,同时在SVG容器元素上设置width / height属性,则宽度和高度值 必须与视框的宽度/高度匹配,否则使用%单位进行动画处理可能会导致不正确的动画。  浏览器支持:在IE9以下或Android 3.0以下不支持SVG元素。
  23、钩子钩子是多值CSS属性的子值。例如,textShadow CSS属性采用"0px 0px 0px black"的多值形式。 Velocity允许您单独为这些子值设置动画,例如textShadowX,textShadowY和textShadowBlur: $element.velocity({ textShadowBlur: "10px" }); 同样,Velocity允许您为boxShadow,clip和其他多值属性的子值设置动画。参考CSS属性支持 窗格的Velocity的钩子的完整列表。  由于不可能通过jQuery的$ .css()单独设置这些钩子值,Velocity提供了一个hook()辅助函数。 它具有与$ .css()相同的API ,修改后将元素作为其第一个参数(原始DOM节点或jQuery对象): $ .Velocity.hook(element,property [,value]) l:  设置挂钩值: $.Velocity.hook($element, "translateX", "500px"); // Must provide unit type $.Velocity.hook(elementNode, "textShadowBlur", "10px"); // Must provide unit type  获取挂钩值: $.Velocity.hook($element, "translateX"); $.Velocity.hook(elementNode, "textShadowBlur"); 注意:当使用钩子函数时,如果CSS属性可以接受一个单元类型(例如px,deg等),你必须提供它。
  24、Promises当A)使用效用函数并且B)在浏览器中检测到promise支持时,Velocity调用自动返回promise对象 (有关更多详细信息,请参阅下面的浏览器支持)。相反,当使用jQuery的对象语法 (例如$ element.velocity(...))时,绝不会返回promise。  /* Using Velocity"s utility function... */ $.Velocity.animate(element, { opacity: 0.5 })     /* Callback to fire once the animation is complete. */     .then(function(elements) { console.log("Resolved."); })     /* Callback to fire if an error occurs. */     .catch(function(error) { console.log("Rejected."); });   相反,当无效的第一个参数传递到Velocity调用(例如,一个空的属性对象或不存在的Velocity命令) 时,promise被拒绝。拒绝回调被传递触发的错误对象。 Promises 还使用UI包的效果(包括自定义效果)。然而,像往常一样,确保您使用Velocity的效用 函数调用UI包效果。此外,确保您使用的最新版本的UI包,因为promise支持最近才添加。  浏览器支持:只有Chrome桌面和Firefox桌面支持promise。对于所有其他浏览器,您必须安装第三 方promises 库,例如Bluebird或When "s ES6 Promises shim。(不要使用Q,因为它不会像 ES6 promises那样自动安装自己。)当使用Bluebird或When时,确保promise库在 Velocity  之前加载。蓝鸟和当工作回到Android 2.3和IE8。
  25、Mock(模拟)执行UI测试时,可以设置$ .Velocity.mock = true; 强制所有速度动画以0ms持续时间和0ms 延迟运行。(本质上,值完全应用于下一个动画节拍。)当执行重复的UI测试(对于测试结束值比测试 动画补间更重要)时,这是非常有用的。  或者,您也可以将$ .Velocity.mock设置为任意乘数,以加速或减慢页面上的所有动画:  /* Slow down all animations by a factor of 10. */ $.Velocity.mock = 10; 当您尝试微调多元素动画序列的时间时,以这种方式减少动画是有用的。1234567
  26、效用函数而不是使用jQuery的插件语法来定位jQuery对象,你可以使用Velocity的效用函数来定位原始 DOM元素:  /* Standard multi-argument syntax. */ var ps = document.getElementsByTagName("p"); $.Velocity(ps, { opacity: 0 }, { duration: 1500 });  /* Alternative single-argument syntax (ideal for CoffeeScript). e  stands for elements, p for properties, and o for options: */ var ps = document.getElementsByTagName("p"); $.Velocity({ e: ps, p: { opacity: 0 }, o: { duration: 1500 });  语法与Velocity的标准语法相同,除了所有的参数都向右移动一个位置,以便可以传递位置零的元素。  使用效用函数在实时生成元素并且不能承担jQuery对象创建(触发DOM查询)的开销时非常有用。
  27、值函数属性值可以是传递函数。这些函数在元素开始动画之前被调用一次。因此,当循环/反转时, 功能不会重复地重新调用。  函数返回的值用作属性值:  $element.velocity({     opacity: function() { return Math.random() } });  值函数作为它们的上下文传递迭代元素,加上第一个参数包含集合中元素的索引,第二个参数包含集合 的总长度。通过使用这些值,可以实现视觉偏移:  $element.velocity({     translateX: function(i, total) {         /* Generate translateX"s end value. */         return i * 10;     } });  除了帮助在Velocity中包含动画逻辑之外,值函数是在一组元素之间区分属性的最有效的方式 -   与通过它们进行预迭代和为每个调用Velocity一次,这放弃了Velocity的元素集优化。
  28、Forcefeeding(强制)传统上,动画引擎查询DOM以确定动画的每个属性的初始值。Velocity是一个称为forcefeeding的 替代技术的发起者,其中用户显式地定义开始值本身,以便可以避免DOM查询 - 完全消除布局颠簸。 Forcefed开始值作为数组中的第二个或第三个项目,取代属性的值。(如" 缓动"窗格中所述, 第二个项目可以选择性地作为每个属性的缓动)。 $element.velocity({     /* Two-item array format. */     translateX: [ 500, 0 ],     /* Three-item array format with a per-property easing. */     opacity: [ 0, "easeInSine", 1 ] }); 上面,我们传递translateX的开始值为0,因为我们知道元素还没有被翻译(也许页面刚刚加载)。 接下来,我们还知道元素的不透明度目前是1,因为它是不透明度的默认值,我们还没有修改元素。 有了这两个属性,我们在我们知道(或想要)的原始动画值强制。 与标准属性值类似,强制启动值也接受值函数。(你可以利用这个特性为元素设置不同的起始值, 见Velocity的3D demo codec)。 确保只在动画开始时强制进给,而不是在链接动画之间(Velocity 已在内部执行值缓存): $element     /* Optionally forcefeed here. */     .velocity({ translateX: [ 500, 0 ] })     /* Do not forcefeed here; 500 is internally cached. */     .velocity({ translateX: 1000 }); 强迫输入在高压情况下是无价的,其中重型DOM查询可以极大地影响帧率。然而,在大多数低压UI UI动画中,强制进给是一个不必要的优化。 注意:强制进入钩子的子属性将把钩子的非动画子属性默认为它们的零值。
  了解具体内容可访问官网:http://velocityjs.org/

乌伦古湖,拿什么拯救你?乌伦古湖,又名布伦托海,是新疆准噶尔北部的一个拗陷湖,是干旱缺水的大西北仅剩不多的大湖之一(丢的丢了干的干了),对新疆的渔业与气候有重要意义!乌伦古湖南北宽约30公里,东西长约35王贻芳院士打破PI制,探索矩阵式管理模式文王贻芳(中国科学院院士中国科学院高能物理研究所所长)长期以来,中国科学院的研究所大多实行课题负责人制(PI制),PI制有其优点,但是,对于中国科学院高能物理研究所(以下简称高能所不简单!我国成功发射太阳卫星,意味着什么?10月9日,我国首颗综合性太阳探测卫星夸父一号发射成功,此卫星的命名征集中,约三分之一都建议使用夸父,标志我国科学进步的同时,与弘扬我国传统文化的效果相得益彰。而在一年前,我国才发聪明人,不说这5种话古人云修己,以清心为要。涉世,以慎言为先。人际交往中,其实很多烦恼与是非,都是因为讲话不当而招惹导致的。做人,一定要管住自己的嘴巴,不要随便说以下这5种话。1不说贬低别人,抬高自己岁月里的奶奶在我的记忆里,奶奶一生富有热情。这不单单在于她的经历,而在于她对生命历程的那份热爱与倔强。奶奶出生在山西长治市武乡县的一个小山村,6岁时,父亲离世,由于家境贫寒,没上过学堂,14岁为什么现在钱不经花了?头条创作挑战赛我时常思考我要的是什么,想要成为什么样的人呢?自知自己并不是一个功利的人,但是想要更好的生活质量,就离不开一个钱字。在不断学习和成长的过程中,我发现,钱开始变得不值钱窗景四季流年每每从深圳回到老家,只要打开二楼卧室的房门呵,好大一扇窗户,后山的风景立马从窗户里涌进心田,顿生欢欣和喜悦。故乡,光这扇窗户,就给我的眼睛和心灵带来多少美好的回忆呢!钱钟书的窗如是因果循环,三思而行庄子道物无非彼,物无非是,自彼则不见,自知则知之。因此才说,自古因果不饶人,请谨慎,三思而行。这世界上最接近于大道运行的规矩就是因果,什么样的种子开出什么样的花,善因结出善果,恶因(经济)贵州花溪农旅融合促振兴近年来,贵州省贵阳市花溪区大力推动农旅融合发展,不断完善旅游基础设施建设,在发展特色产业的同时带动乡村旅游,助力乡村振兴。10月6日,游客在贵州省贵阳市花溪区黔陶乡谷洒农业综合种植非必要不旅行的长假,但愿是最后一个旅行是每一个健全的人生所必不可少的,我希望现在这种不能游日子尽快结束。冰川思想库研究员丨陈季冰在文言文中,游这个字既有游览游戏游乐的含义,也是学习的意思。经常可以看到类似这样的句子领航中国湖南篇华容县东山镇如诗如画,周杰伦歌词里的小镇稻田黄蝉鸣叫小孩玩耍声,这是周杰伦歌曲稻香里的场景,也是居住在湖南岳阳市华容县东山镇人们的日常生活。初秋时节,记者走进这个歌词里的小镇。绿色是这的初印象华容北倚长江,南滨洞庭,32
长寿是福还是祸?过来人告诉你,家有长寿老人算不上什么好事长寿是福还是祸?这是一个复杂的问题,很难一概而论。有些人认为长寿是一件好事,因为长寿可以享受更多的时间和经验,还可以看到自己的孙子和曾孙子。但也有些人认为长寿可能会给自己和家庭带来低温与长寿除了遗传因素之外,人的行为方式决定着寿命的长短。科学家发现降低人的温度有延年延寿的作用。居住在寒带的人比居住在热带的寿命要长。挪威瑞典芬兰等国,靠近北极,都以长寿著称,而热带的人长三月心脏保护怎么做,5个好习惯让心脏强壮有力心脏是人最重要的器官之一,保护好心脏是重中之重。为了防止一系列心脏疾病,甚至是猝死也有很多人都会担心自己成为下一个心脏病的患者,所以,在这个三月,做好5个习惯,让你的心脏强壮有力。中医最推荐,从头到脚7大长寿穴!随手这样按祛病又延年!听说有些穴位,天天按摩就能长寿?这竟然是真的!经络穴位按摩除了能够救急缓解,还有些穴位能用于平时调理体质养生保健,平时经常按摩可以益寿延年,因此被称为长寿穴。徐孟医生表示,他比较推实用干货分享!币圈稳定的赚钱方式有哪些!在币圈,真正能赚到的钱的,除了那些摸爬滚打很多年的大佬之外,还有一种人,这种人的技术水平或许不是最强的,但心态一定是最稳定的,能在币圈做到宠辱不惊,今天我们就来说一下在币圈的必备素财富守攻传从养老到享老,谈老年生活方式的转变视频加载中本期看点从养老到享老,五种养老方式给您参考!养和老似乎有着某种天然的联系,我们提到老总会联想到养。不过,近年来越来越多的人从养这个传统的思维方式跳脱出来,开始注重享。这种别听中介瞎忽悠,旅转学,就是这么简单,自己也能搞定!旅转学旅转学是指在旅游中获得新知识和技能的学习方式。它结合了旅游和学习的元素,让人们在旅游中不仅能够放松身心,还能够学到新的知识和技能。旅转学的好处有很多。首先,它能够让人们以一种试管婴儿和普通婴儿有什么不同?智商上会有差别吗?告诉你真相小王和小林夫妇已经结婚8年有余了,可是却一直没有孩子,夫妻二人之前也去医院检查过,男方的身体倒是没有什么大毛病,而女方却有些问题。医生告知说女方患者多囊卵巢综合征,而他们这么多年没当前最有性价比的投资品种硅谷银行的突然倒闭给美联储的加息进程带来了很大的不确定性,全球股票市场也受到了很大的冲击。国内金融市场与海外基本隔离,迄今为止倒是没有受到大的波及。但经济复苏的速度远不像大家想象的威尔仕健身就转卡理财致歉消费者质疑那到底能不能退卡?近日,威尔仕健身多家门店被曝出销售人员以承诺转卡投资收益等名义,诱导消费者购买超长年限会籍卡。不少威尔仕健身会员向新民帮侬忙反映,他们也遇到类似遭遇。3月16日,威尔仕健身发表声明日均新增12家门店,年销售额两位数增长美宜佳如何成为便利店之王?美宜佳总部楼下的美宜佳,店内售卖鲜食咖啡和药品等。(南方周末记者封聪颖图)在广东省东莞市东城区的梨川鸿盛工业园,多个出入口旁都能看到便利店。路上数吨重的货车轰隆隆驶过,不断扬起灰尘