$(function(){ var inDuration = 3000, loopDuration = 5000; //ノード作成 var addAnimationElements = function () { var mainimg = $('#topwrap'), prefix = 'img/mainimg_', extension = '.jpg', addElm = []; var linkhref = ['/corp/logistics/','/corp/customs-clearance/','/corp/sewing-inspection/','/corp/studio/']; if (!mainimg.length) return; for(var i = 1; i <= max; i++) { var linktag = $('').attr('href',linkhref[i-1]); addElm[i-1] = $('
').css({ "height" : '447px', "background" : "url('" + prefix + i + extension + "') no-repeat scroll 50% 0 transparent" }).hide(); mainimg.append(linktag.append(addElm[i-1])); } return addElm; }; //fadeIn処理 var timerID; var mainAnimate = function(fn) { var arg = arguments; this.css({'zIndex':'1'}).fadeIn(loopDuration,function(){ var self = this; if (typeof fn === 'function') { if (timerID) { clearTimeout(timerID); timerID = null; } timeID = setTimeout(function(){ fn(self); },inDuration); } return this; }); }; //実行箇所 var max = 4, iterate = 0, oldnum, outerTimer, addElms = addAnimationElements(); if (typeof addElms !== 'undefined') { outerTimer = setTimeout(function changeMainimg(old){ if (outerTimer) { clearTimeout(outerTimer); outerTimer = null; } if (iterate === max) iterate = 0; var interateTemp = iterate; if (typeof oldnum !== 'undefined') { //2回目以降 oldnum = iterate === 0 ? max-1 : iterate-1; //console.log('非表示に:'+oldnum, '表示に:'+iterate); $(old).css({'zIndex':'0'}).fadeOut(loopDuration); //1回前のエレメントを処理 var ret = mainAnimate.call(addElms[iterate++],changeMainimg); } else { //1回目 mainAnimate.call(addElms[iterate++],changeMainimg); oldnum = iterate; } },250); } });