私はこのプラグインを作成しますが、2 つの異なるセレクターで使用すると$('.1').Breath()
うまく$('.2').Breath()
動作せず、いずれかのセレクターで停止すると$('.1').BreathStop()
、すべてのセレクターのアニメーションが停止します。何が問題なのかわからない
(function($) {
var breathing;
$.fn.Breath = function() {
var options = $.extend({
minOpacity: 0,
maxOpacity: 1,
BreathIn : 1000,
BreathOut : 3000
}, arguments[0]);
return this.each(function() {
breathing = true;
var obj = $(this);
function breath() {
if(stop()) return;
obj.stop().animate({
opacity: options.minOpacity
}, options.BreathOut, function() {
if(stop()) return;
obj.stop().animate({
opacity: options.maxOpacity
}, options.BreathIn, function() {
if(stop()) return;
obj.stop();
breath();
});
});
}
breath();
function stop() {
if(!breathing)
obj.stop().css({opacity: 1});
return !breathing;
}
});
}
$.fn.BreathStop = function() {
breathing = false;
}
})(jQuery);
解決策はありますか?