자바스크립 배열 한수부탁드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

자바스크립 배열 한수부탁드립니다. 정보

자바스크립 배열 한수부탁드립니다.

본문

자바스크립 전문가님의 한수부탁드립니다.
똑같은 자바스크립을 여러군데 쓰면서 소스를 줄여보려고 시도하고 있는데
잘안되네요..
 
아래는 동작하는 문서하나에 적용된자바입니다.
-----------------------------------
       var nuaScrollPages = 4 
       var pageslidefadeLoaded = 0;

        function initPageSlideFade(){
        scroller1 = new scrollerobj('divScroller1');
        pages = new Array();
        for (var i=0; i<nuaScrollPages; i++){
        pages[i] = new scrollerobj('PRA'+i, 'divScroller1');
        pages[i].moveTo(0,0);
        }
 
 bw.opacity = ( bw.ie && !bw.ie4 && navigator.userAgent.indexOf('Windows')>-1 ) || bw.ns6
 if (bw.ie5||bw.ie6||bw.ie7 && !bw.mac) pages[0].css.filter= 'blendTrans(duration=0.6)';
 
 if (transitionOnload) activateContinue(0);
 else{
  activePage = pages[Math.floor(Math.random()*i++)];
  activePage.showIt();
 }
 if (bw.ie) for(var i=0;i<document.links.length;i++) document.links[i].onfocus=document.links[i].blur;
 pageslidefadeLoaded = 1;
        }
        if(bw.bw && !pageslidefadeLoaded) onload = initPageSlideFade;
<--------------끝----------------->
 
질문입니다]
아래에 나열된 각각의 부분을 위의 소스와 충돌없이 조화롭게 배열 시킬수
있는 방법이 있겠는지요?
 
아래는 추가될 각각의 var 부분
-----------------------------------
        var nubScrollPages = 8
        var nucScrollPages = 5
        var nudScrollPages = 4
        var nueScrollPages = 11
-----------------------------------
아래는 추가될 각각의 scroller 부분
-----------------------------------
        scroller2 = new scrollerobj('divScroller2');
        scroller4 = new scrollerobj('divScroller4');
        scroller6 = new scrollerobj('divScroller6');
        scroller7 = new scrollerobj('divScroller7');
-----------------------------------
아래는 추가될 각각의 pages 부분
-----------------------------------
pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRB'+i, 'divScroller2');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRC'+i, 'divScroller4');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRD'+i, 'divScroller6');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRE'+i, 'divScroller7');
  pages[i].moveTo(0,0);
 }
 
----------------------------------------------------------
꼭 맞는 답이 있으면 좋겠지만 아니더라도 서슴없이 조언 당부드립니다.
정답자가 없을 경우 처음리플을 정답으로 채택하겠습니다.

댓글 전체

풀 소스가 없어서 테스트는 못해봤지만 이걸로 될까요?

아니면 PHP 함수를 만들어서 해도 될 것 같은데^^;;


----------------------------------------------------
var pageslidefadeLoaded = 0;

function run_script() {
  initPageSlideFade(4, 'divScroller1')
  initPageSlideFade(8, 'divScroller1')
  initPageSlideFade(5, 'divScroller2')
  initPageSlideFade(4, 'divScroller4')
  initPageSlideFade(11, 'divScroller7')
}

function initPageSlideFade(nuaScrollPages, divScroller){
  scroller1 = new scrollerobj(divScroller);
  pages = new Array();
  for (var i=0; i<nuaScrollPages; i++){
    pages[i] = new scrollerobj('PRA'+i, divScroller);
    pages[i].moveTo(0,0);
  }

  bw.opacity = ( bw.ie && !bw.ie4 && navigator.userAgent.indexOf('Windows')>-1 ) || bw.ns6
  if (bw.ie5||bw.ie6||bw.ie7 && !bw.mac) pages[0].css.filter= 'blendTrans(duration=0.6)';

  if (transitionOnload)
    activateContinue(0);
  else{
    activePage = pages[Math.floor(Math.random()*i++)];
    activePage.showIt();
  }

  if (bw.ie) for(var i=0;i<document.links.length;i++)
    document.links[i].onfocus=document.links[i].blur;

  pageslidefadeLoaded = 1;
}

if(bw.bw && !pageslidefadeLoaded)  onload = run_script;

--------------------------------------------------------
^^--@ 리플 감사드립니다. 저기 위에 동작소스가 전부입니다.

그 소스에다가 아래부분에 해당하는
---------------------------------------------
pages = new Array();
  for (var i=0; i<nuaScrollPages; i++){
    pages[i] = new scrollerobj('PRA'+i, divScroller);
    pages[i].moveTo(0,0);
  }
---------------------------------------------
이눔들의 배열이 가장 큰 고민입니다.
pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRB'+i, 'divScroller2');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRC'+i, 'divScroller4');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRD'+i, 'divScroller6');
  pages[i].moveTo(0,0);
 }
 pages = new Array();
 for (var i=0; i<nuaScrollPages; i++){
  pages[i] = new scrollerobj('PRE'+i, 'divScroller7');
  pages[i].moveTo(0,0);
 }
 
방법이 있겠는지요??
변변치 않은 답변을 채택해주셔서 감사드립니다.^^;

제가 PRB, PRC, PRD, PRE 이부분을 못봤네요.

그 부분도 함수에 인수로 넘겨주면 되지 않을까요? ^^;

----------------------------------------------------
var pageslidefadeLoaded = 0;

function run_script() {
  initPageSlideFade(4, 'PRA', 'divScroller1')
  initPageSlideFade(8, 'PRB', 'divScroller1')
  initPageSlideFade(5, 'PRC', 'divScroller2')
  initPageSlideFade(4, 'PRD', 'divScroller4')
  initPageSlideFade(11, 'PRE', 'divScroller7')
}

function initPageSlideFade(nuaScrollPages, PR, divScroller){
  scroller1 = new scrollerobj(divScroller);
  pages = new Array();
  for (var i=0; i<nuaScrollPages; i++){
    pages[i] = new scrollerobj(PR+i, divScroller);
    pages[i].moveTo(0,0);
  }

  bw.opacity = ( bw.ie && !bw.ie4 && navigator.userAgent.indexOf('Windows')>-1 ) || bw.ns6
  if (bw.ie5||bw.ie6||bw.ie7 && !bw.mac) pages[0].css.filter= 'blendTrans(duration=0.6)';

  if (transitionOnload)
    activateContinue(0);
  else{
    activePage = pages[Math.floor(Math.random()*i++)];
    activePage.showIt();
  }

  if (bw.ie) for(var i=0;i<document.links.length;i++)
    document.links[i].onfocus=document.links[i].blur;

  pageslidefadeLoaded = 1;
}

if(bw.bw && !pageslidefadeLoaded)  onload = run_script;

--------------------------------------------------------
재차 답변 감사드립니다.꾸벅--@
배열에 관해 한수 배웠습니다.
올려주신 답변으로 적용해보겠습니다.
감사합니다.

근데 "최"가시라면 저랑같은 성인데요^^
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT