;(function($){
$.fn.extend({
iFadeSlide: function(options){
//プラグインパラメータの初期化
var iset={
field:$('div#slide img'), //要素コレクションを切り替えます
icocon:$('div.ico'), //インデックスコンテナ
hoverCls:'high', //切り替え現在のインデックス強調表示スタイル
curIndex:0, //0 から始まるデフォルトの強調表示されたインデックス値
outTime:200, //要素のフェードアウト時間 (ミリ秒)
inTime:300, //要素のフェード-in time (ms)
interval:3000 //要素切り替え間隔 (ms)
options=options ||
$.extend(iset,options) ;パラメータ オブジェクトをマージします。オプションに新しい値がある場合は、iset の対応する値を上書きします。それ以外の場合は、デフォルト値を使用します。
//スイッチング要素の量に基づいて、対応するインデックス値リストを生成し、それをスイッチングに挿入します。 area
var ulcon = "
";
iset.field.each(function(i){
ulcon = ulcon '- ' (i 1) '
';
});
ulcon = '
';
var ico = iset.icocon.find('li'); //インデックスリスト Set
var size = iset.field.size(); //スイッチ要素量
var Index = 0; //初期インデックス値
var clearFun=null;フェードアウトとフェードイン function
var fadeFun = function(obj){
index = ico.index(obj); //現在のインデックス値を取得します
//現在表示されている要素をフェードアウトして要素を検索しますインデックス値をフェードインします
iset.field.filter(':visible').fadeOut(iset.outTime, function(){
iset.field.eq(index).fadeIn(iset.inTime) ;
});
// 現在のインデックスに強調表示スタイルを追加し、兄弟要素の強調表示スタイルを削除します
$(obj).addClass(iset.hoverCls).siblings().removeClass(iset) .hoverCls);
//関数
var changeFun = function(){
index;
if (index == size){index = 0 }; //インデックス値が等しい場合、要素数を切り替える場合は0に初期化されます
ico.eq(index).trigger('mouseleave') //マウス引き出しのイベントをシミュレートします現在のインデックスの要素領域
};
//自動切り替え Function
varscrollFun = function(){
clearFun = setInterval(function(){
changeFun()
}, iset.interval);
//自動切り替え関数を停止します
var stopFun = function(){
clearInterval(clearFun); ; //初期自動切り替え
//インデックス領域でマウスをスワイプして自動切り替えを停止し、要素を現在のインデックスに切り替えます。マウス ストロークによりインデックスが現在の値に初期化されます (そうしないと、マウス ストロークが混乱を引き起こします) )
ico.hover(function(){
stopFun();
fadeFun(this);
}, function(){
fadeFun(this);
})。 eq(iset.curIndex).mouseleave(); //強調表示されたインデックスの初期値
//スイッチ領域 マウスを内側に移動すると自動切り替えが停止し、マウスを外側に移動すると自動切り替えが継続されます。 field.hover(function(){
stopFun();
}, function(){
scrollFun();
}); })(jQuery);