- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个有点简单的 Mootools 动画,它使用两个单独的 Fx.Morph 变量使元素在圆形路径上移动。我的问题是我需要能够取消动画,但我终生不能我想出了如何在不直接调用它们或将它们保存为全局变量的情况下处理取消这两个变形。
这是我使用的代码的简化版本:http://jsfiddle.net/4vBj9/2/
我试过使用 $(img).get('morph').cancel();
但这似乎不适用于具有多个 Fx 的元素。
编辑:我突然忘记提到取消动画的事件可能不会在实例化的同一范围内发生,所以我不能真正调用处理变形的变量。
最佳答案
呃。您可以使用本地元素存储。默认情况下,.get('morph')
将为您检索第一个 fx 实例,但由于您每次都有多个/创建一个新实例并且不使用 .get/.set
,你最好做这样的事情:
;(function(){
var img = document.id('img');
$('add').addEvent('click', function() {
// try to get from storage, set empty array as default
var fxs = img.retrieve('fxs', []);
// if empty, make instances, store into array
if (!fxs.length) {
[].push.apply(fxs, [
new Fx.Morph(img, {
duration: 1500,
transition: Fx.Transitions.linear.easeOut
}),
new Fx.Morph(img, {
duration: 750,
transition: Fx.Transitions.easeOutCirc
})
]);
// save it as one off
img.store('fxs', fxs);
}
// reference as array elements
fxs[0].start({
top: 175
});
fxs[1].start({
left: 175
}).chain(function() {
// this === fx instance. DRY
this.options.transition = Fx.Transitions.easeInCirc;
this.options.duration = 764;
this.start({
left: 10
});
});
});
$('rem').addEvent('click', function() {
img.removeProperty('style');
});
}());
很久以后,完全独立的代码:
;(function(){ // new scope
$('box').addEvent('click', function(){
var fxs = $('img').retrieve('fxs');
fxs && fxs.invoke('stop');
});
}());
这实现了代码的解耦和对变量的依赖,并使其干燥和封装——它还重新使用相同的 fx 实例,因此在第一次启动后运行速度会更快。
这是你的东西。 http://jsfiddle.net/4vBj9/6/
如果您要在 javascript 中制作需要流畅的复杂嵌套动画,请考虑 https://github.com/julianshapiro/velocity - 这是迄今为止最快的动画方式,包括 CSS 转换(检查基准)。哦 - 也可以做 css3 Prop ,而 mootools 不能。
关于javascript - 如何取消设置/取消多个 Fx.Morphs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617680/
是否有一个库/软件可以接受多个关键点并在图像之间进行匹配并产生变形?或有关如何执行的任何想法/算法? 最佳答案 Xmorph and GTK morph可以做到-尽管关键点必须是等效矩形网格的一部分。
在qt gui 编辑器中,任何gui 组件都可以变形为某种类型的其他gui 组件。但实际上,这个选项的实际用途是什么?可以动态完成吗?如果是,那么这样做的好处是什么? 最佳答案 实际用途是将小部件快速
编辑:已对问题进行了缩小范围的编辑,但我认为保留原始信息会有所帮助。查看结论部分以进行编辑。 原始问题 今天是个好日子!我想学习SVG变形背后的逻辑。作为快速的先驱,我知道在Stack Overflo
Laravel 上的变形表似乎没有 sync() 函数。 我有两个表avails和questions。 questions 是一个 morphMany 表。我想使用同步命令,这就是我所做的: Avai
我想创建一个一对一的多态关系允许空关系。 例子: Schema::create('ps_assistances', function (Blueprint $table) {
我是 Laravel 的新手,有人可以向我解释 morphMany 的参数: $this->morphMany(Photo::class, 'imageable'); 最佳答案 MorphMany关系
我制作了一个有点简单的 Mootools 动画,它使用两个单独的 Fx.Morph 变量使元素在圆形路径上移动。我的问题是我需要能够取消动画,但我终生不能我想出了如何在不直接调用它们或将它们保存为全局
$table->morphs 列类型可以存储什么类型的数据? $table->morphs('taggable'); 我不完全理解here给出的解释. Adds taggable_id UNSIGNE
我正在编辑一个表,以便它使用多态关系: public function up() { Schema::table('locations', function (Blueprin
我正在尝试让 vareffect = new Fx.Morph(testMorph, {) 在开始之前等待/延迟 2 秒。 ( fiddle here ) 但是当我尝试 .wait(2000) 或 .
想知道是否有人可以阐明这一点 http://jsfiddle.net/orbitalmedia/ZrxBb/7/ 基本上,我正在尝试在图像上创建盲效果。 addClass 或 toggleClass
我是 MooTools 的新手。我注意到 Morph 效果类似于 Tween 效果。 唯一的区别是 tween 用于一个属性,而 morph 用于多个属性。 有人能告诉我这些效果最适合做什么吗,即一种
我试图获得与 fx.morph 演示类似的结果,但点击而不是“mouseenter”或“mouseleave”。如果单击列表选项,它应该变形。如果单击另一个项目,它应该变形,而原始变形为默认状态。第一
我正在使用网络 worker 加载动画 3D 模型的 .json 文件。对于每个大数组(顶点、法线等),我将一个 Float32Array 缓冲区传输回 UI 线程。由于此类缓冲区是 transfer
我已经使用 imagemagick 几天了。我的目标是我想将几个屏幕截图合并到一个视频中,并且我想在帧之间进行漂亮的过渡。所以我找到了 -morph 选项,例如 convert original/*.
它无法让 Pen 在 Morph 中正常工作。 我到达了下面的代码段,但我不明白如何在移动笔后更新 Morph 的 View 。我试图在各种 (sm, pen, (sm owner)) 对象中发送“更
// sourceFileContent import path from 'path'; // Short version of node_modules/@types/node/path.d.ts
这是我关于 SO 的第一篇文章 :-) 我在将 MooTools 转换为 CSS 类时遇到了问题。我很确定我已经按照文档和演示进行操作,但是当我调用 myElement.morph('.hover')
Scriptaculous 的 Effect.Morph 可以获取 CSS 类并在一段时间内应用它。我有一个 div,单击按钮时会展开,因此它使用 Effect.Morph 来应用 .expanded
Control.Monad.Morph包括 class MFunctor t where hoist :: Monad m => (forall a. m a -> n a) -> t m b -
我是一名优秀的程序员,十分优秀!