例の CrossSlide がウザいから1回で止めてくれと、お客様じゃなくて社内から声が。あんたが入れろって言ったんじゃんか!と喉元まで出かかった言葉を呑み込んで、ハイハイと素直に答える優しい技術者。
でも、ソースを読んでも、止める方法が書いてない。
$.fn.crossSlideFreeze = function() { this.find('img').stop(); }
crossSlideFreezeという関数を呼べば止まるみたいだけど、どうやって呼べばいいんだ?
スライドに飽きたら[Stop]ボタンをユーザに押してもらうか。そんなバカな。
ということで、ある程度時間が経ったら止めることにしました。
(function($) { $.fn.later = function(arg, fn) { var self = this; var timer = setTimeout(function() { clearTimeout(timer); self.each(fn); }, arg); return self; }; })(jQuery);
こういうのを外部ファイル(例えば、jquery.later.js)に置いておいて、こんな風にします。
<script type="text/javascript" src="/js/jquery.later.js"> jQuery(function($) { $('#gallery1').later(80000, function() { $(this).find('img').stop(); }); });
80秒経ったら、gallery1のすべての imgを止めてしまえ、です。フェードの途中でも有無を言わさず止まってしまって面白いです。