//sliding function fnRollingImage(rollBoxId, itemTagName, direction, moveSpeed, interval, firstIdx, oName, initCollbackFn, moveCollbackFn) { var init = { oRollingTimer:null, sRollBoxId:rollBoxId, sItemTagName:itemTagName, sDirection:direction, nMoveSpeed:moveSpeed, nInterval:interval, nStartRollingIdx:firstIdx, nCurrRollingIdx:-1, nRollingItemWidth:0, nRollingItemHeight:0, nRollingItemCount:0, nCurrItemPosition:0, nStartItemPosition:0, nCreateObjName:oName, initCollbackFn:initCollbackFn, moveCollbackFn:moveCollbackFn } this.RunRollingImage = function() { //아이템 항목 갯수 init.nRollingItemCount = $("#" + init.sRollBoxId + " > " + init.sItemTagName).length; //아이템 항목 크기 init.nRollingItemWidth = $("#" + init.sRollBoxId + " > " + init.sItemTagName).width(); init.nRollingItemHeight = $("#" + init.sRollBoxId + " > " + init.sItemTagName).height(); if(init.sDirection == "left") { init.nCurrItemPosition = init.nRollingItemWidth * (-1); init.nStartItemPosition = init.nRollingItemWidth + 1; } else if(init.sDirection == "right") { init.nCurrItemPosition = init.nRollingItemWidth + 1; init.nStartItemPosition = init.nRollingItemWidth * (-1); } else if(init.sDirection == "top") { init.nCurrItemPosition = init.nRollingItemHeight * (-1); init.nStartItemPosition = init.nRollingItemHeight + 1; } else if(init.sDirection == "bottom") { init.nCurrItemPosition = init.nRollingItemHeight + 1; init.nStartItemPosition = init.nRollingItemHeight * (-1); } //처음에 보일 레이어 없으면 범위 내에서 랜덤 추출 if(init.nStartRollingIdx == null || init.nStartRollingIdx < 0) init.nStartRollingIdx = Math.floor(Math.random() * init.nRollingItemCount); //세팅후 실행할 함수가 있을때 try { if(init.initCollbackFn && init.initCollbackFn.length > 0){ eval(init.initCollbackFn + "(" + init.nRollingItemCount + ", " + init.nStartRollingIdx.toString() + ")"); } } catch(e){} if(init.sDirection == "left" || init.sDirection == "right") $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nStartRollingIdx]).css({"left" : "0px"}).show(); else $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nStartRollingIdx]).css({"top" : "0px"}).show(); //현재 인덱스값 저장 init.nCurrRollingIdx = init.nStartRollingIdx; //마우스 오버 아웃 이벤트 정의 // $("#" + init.sRollBoxId)[0].onmouseover = this.StopRollingImage; // $("#" + init.sRollBoxId)[0].onmouseout = this.StartRollingImage; $("#" + init.sRollBoxId)[0].onmouseover = this.StopRollingImage; $("#" + init.sRollBoxId)[0].onmouseout = this.StartRollingImage; //타이머 시작 this.StartRollingImage(); } this.MoveRollingImage = function(userIdx) { if(isNaN(userIdx) == false) init.nStartRollingIdx = userIdx if(init.nCurrRollingIdx == init.nStartRollingIdx) return; //막 빨리누르면 거지같은 현상이 일어난다.. 그래서 현재 레이어가 다 이동된 상태가 아니면 막아버린다. if(init.sDirection == "left") { if($($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).css("left").replace(/px/i,'') > 0) return; } else if(init.sDirection == "right") { if($($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).css("left").replace(/px/i,'') < 0) return; } else if(init.sDirection == "top") { if($($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).css("top").replace(/px/i,'') > 0) return; } else if(init.sDirection == "bottom") { if($($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).css("top").replace(/px/i,'') < 0) return; } if(init.sDirection == "left" || init.sDirection == "right") { //현재꺼를 밖으로.. / 보일꺼를 안으로.. $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).animate({"left":init.nCurrItemPosition.toString() +"px"}, init.nMoveSpeed, function(){$(this).hide();}); $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nStartRollingIdx]).css({"left":init.nStartItemPosition +"px"}).show().animate({"left":"0px"}, init.nMoveSpeed); } else { //현재꺼를 밖으로.. / 보일꺼를 안으로.. $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nCurrRollingIdx]).animate({"top":init.nCurrItemPosition.toString() +"px"}, init.nMoveSpeed, function(){$(this).hide();}); $($("#" + init.sRollBoxId + " > " + init.sItemTagName)[init.nStartRollingIdx]).css({"top":init.nStartItemPosition +"px"}).show().animate({"top":"0px"}, init.nMoveSpeed); } //이동후 실행할 함수가 있을때 try { if(init.moveCollbackFn && init.moveCollbackFn.length > 0) eval(init.moveCollbackFn + "(" + init.nRollingItemCount + ", " + init.nCurrRollingIdx.toString() + ", " + init.nStartRollingIdx.toString() + ")"); } catch(e){} init.nCurrRollingIdx = init.nStartRollingIdx; } this.StartRollingImage = function() { init.oRollingTimer = setInterval(init.nCreateObjName + ".ResumeRollingImage()", init.nInterval); } this.StopRollingImage = function() { if(init.oRollingTimer) clearTimeout(init.oRollingTimer); } this.ResumeRollingImage = function() { if(init.sDirection == "left" || init.sDirection == "top") { if(init.nCurrRollingIdx >= init.nRollingItemCount-1) init.nStartRollingIdx = 0; else init.nStartRollingIdx = init.nCurrRollingIdx + 1; } else { if(init.nCurrRollingIdx <= 0) init.nStartRollingIdx = init.nRollingItemCount-1; else init.nStartRollingIdx = init.nCurrRollingIdx - 1; } this.MoveRollingImage(); } } //contents by rolling function fnRollingContentsBy(ContentsByID) { nItemGrpWidth = $("#" + ContentsByID + " > span").width(); oCodyBanner = $("#" + ContentsByID).html(); $(oCodyBanner).css({"left":nItemGrpWidth.toString()+"px"}).appendTo($("#" + ContentsByID)); if($("#" + ContentsByID).width() > nItemGrpWidth) $(oCodyBanner).css({"left":((nItemGrpWidth*2)+1) + "px"}).appendTo($("#" + ContentsByID)); //양쪽버튼 사용 안할때.. 풀어준다. //fnStartRollingContentsBy(); } function fnStartRollingContentsBy(direction, ContentsByID) { fnStopRollingContentsBy(); var sDirection = ""; if(direction && direction == "right") sDirection = "right"; else sDirection = "left"; nShopMallTimer = setInterval("fnResumeRollingContentsBy('"+sDirection+"', '" + ContentsByID + "')", 20); } function fnStopRollingContentsBy() { if(nShopMallTimer) clearTimeout(nShopMallTimer); } function fnResumeRollingContentsBy(direction, ContentsByID) { if(direction == "left") { for(nIdx=0; nIdx<$("#" + ContentsByID + " > span").length; nIdx++) { $($("#" + ContentsByID + " > span")[nIdx]).css({"left":(parseInt($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,'')) - 3).toString() + "px"}) if(parseInt($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,'')) < (nItemGrpWidth*(-1))) { $($("#" + ContentsByID + " > span")[nIdx]).css("left",(parseInt($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,''), 10) + parseInt(($("#" + ContentsByID + " > span").length * nItemGrpWidth), 10)).toString()+"px"); } } } else { for(nIdx=0; nIdx<$("#" + ContentsByID + " > span").length; nIdx++) { $($("#" + ContentsByID + " > span")[nIdx]).css({"left":(parseInt($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,'')) + 3).toString() + "px"}) if(parseInt($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,'')) > $("#" + ContentsByID).width()) $($("#" + ContentsByID + " > span")[nIdx]).css("left",($($("#" + ContentsByID + " > span")[nIdx]).css("left").replace(/px/i,'') - ($("#" + ContentsByID + " > span").length * nItemGrpWidth)).toString()+"px"); } } }