我正在使用扩展的 jQuery Plugin Boilerplate编写一个插件,该插件具有启动/停止在插件中运行的动画的公共方法;这个动画不是 CSS amin BTW,它只是一个计数器,所以我可以使用每个step
.
动画从init()
方法内部开始:
Plugin.prototype = {
init: function () {
// Place initialization logic here
// You already have access to the DOM element and
// the options via the instance, e.g. this.element
// and this.options
// you can add more functions like the one below and
// call them like so: this.yourOtherFunction(this.element, this.options).
console.log('init');
$({ i: 0 }).animate({ i: 1000 }, {
duration: 1000
, step: function () { console.log(this.i); }
});
},
stop: function () { //yourOtherFunction: function () {
// some logic
console.log('stop');
$(this.element).clearQueue();
$(this.element).stop();
}
};
并且确实开始很好,当被称为 like 时$('.some-elements').wheels();
。
我想要一种通过调用公共函数来暂停或停止此动画的方法,例如:
var timeout = window.setTimeout(function () {
$('#total.cont-email-wheel').wheels('stop');
}, 500);
这个例子将在中途停止动画(我理解超时等的不准确性),但它没有;这就是我在这里的原因!
注意:stop
在中途标记附近记录到控制台,因此该方法被正确调用。
我很确定,通过查看我需要调用的jQuery 文档clearQueue()
和stop()
动画对象,在这种情况下,它是一个匿名对象 ( { i }
),而不是元素,但我不知道如何做这个。
任何帮助将非常感激; 我试图尽可能简洁地解释,但如果不清楚,我会尝试在评论中澄清!
谢谢!