퀵 스크롤 메뉴를 좌.우측에 함께 사용하는 팁 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

퀵 스크롤 메뉴를 좌.우측에 함께 사용하는 팁 정보

퀵 스크롤 메뉴를 좌.우측에 함께 사용하는 팁

본문

퀵 스크롤 메뉴를 일반적으로 우측에 사용하지요.
그런데 퀵 메뉴를 가운데 정렬된 페이지 좌,우측에 사용할 일이 생겼습니다.
몇일을 고생하던 차에 유창화님이 도와주셔서 해결했습니다.
혹시 저와같이 필요하신 분이 있으실 것 같아서 올립니다.
도와주신 유창화님께 감사드립니다.

<SCRIPT language=javascript>
//리모콘 레이어
//이 자료는 유창화님과 네잎클로버님께서 만들어 주신 것으로
//저는 플래시 디자인 말고는 한게 아무것도 없습니다.
//사용함수
//사용함수
function ResetRemocon(i){
 
  var DivMovingLayerYFrom, DivMovingLayerYTo, OffsetY, ResetTime;

  ResetTime = 100;

  if (DivMovingLayerRule[i] == 'center'){
    //해상도 기준, 가운데 에서 x만큼 떨어진 곳에 위치

    if (navigator.userAgent.toLowerCase().indexOf("gecko") > -1) {

      if (document.body.clientWidth < ContentsWidth + 10) {

        DivMovingLayer[i].style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX[i] + 10 + "px";
      }
      else {

        DivMovingLayer[i].style.left = (DivMovingLayerX[i] + (document.body.clientWidth / 2)) + "px";
      }
    }
    else{

      if (document.body.clientWidth < ContentsWidth) {

        DivMovingLayer[i].style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX[i] + "px";
      }
      else {

        DivMovingLayer[i].style.left = (DivMovingLayerX[i] + (document.body.clientWidth / 2)) + "px";
      }
    }
  }
  else if (DivMovingLayerRule[i] == 'left'){
    //해상도와 무관, 왼쪽 에서 x만큼 떨어진 곳에 위치

    DivMovingLayer[i].style.left = (DivMovingLayerX[i]) + "px";
  }

  DivMovingLayerYFrom = parseInt (DivMovingLayer[i].style.top, 10);
  DivMovingLayerYTo = DivMovingLayerY[i] + document.body.scrollTop + 1;

  if ( DivMovingLayerYFrom != DivMovingLayerYTo ) {

    OffsetY = Math.ceil( Math.abs( DivMovingLayerYTo - DivMovingLayerYFrom ) / 20 );

    if ( DivMovingLayerYTo < DivMovingLayerYFrom )
      OffsetY = -OffsetY;

    DivMovingLayer[i].style.top = (DivMovingLayerYFrom + OffsetY) + "px";

    ResetTime = 10;
  }

  setTimeout ("ResetRemocon(" + i + ")", ResetTime);
}

function SetRemocon() {

  for(var i = 0; i < DivMovingLayerX.length; i++){

    DivMovingLayer[i] = document.getElementById("DivMovingLayer[" + i + "]");
    DivMovingLayer[i].style.display = "block";

    DivMovingLayer[i].style.top = (DivMovingLayerY[i] + document.body.scrollTop + 1) + "px";

    ResetRemocon(i);
  }
  return true;
}

//레이어 디자인부분
document.write("<div id=DivMovingLayer[0] style='position:absolute;left:0px;top:0px; z-index:8;display:none;'>");
////selectBoxVisible() --> 그누보드 자체 지원함수, 레이어와 셀렉트박스가 겹쳐서 숨겼던 셀렉트 박스를 다시보여줌
////selectBoxHidden(레이어이름) --> 그누보드 자체 지원함수, 레이어와 셀렉트박스가 겹치면 셀렉트 박스를 숨김

//document.write("<table border=0 cellpadding=3 cellspacing=0 style='background-color:#F6FAFF; border: #9DADE5 solid; border-width: 1px 1px 1px 1px; width: 60px; padding: 3px;'>");
//아래에 보여줄 메뉴를 넣으세요.
document.write("<tr><td align='center'><embed width='120' height='300' Src='http://eantent.com/img/bann.swf' WMode='Transparent'></embed></td></tr>");

//document.write("<tr><td align='center'><a href='javascript:history.go(-1);' title='뒤로가기'>[뒤로가기]</a></td></tr>");

document.write("</table>");
document.write("</div>");

//레이어 디자인부분
document.write("<div id=DivMovingLayer[1] style='position:absolute;left:0px;top:0px; z-index:8;display:none;'>");
////selectBoxVisible() --> 그누보드 자체 지원함수, 레이어와 셀렉트박스가 겹쳐서 숨겼던 셀렉트 박스를 다시보여줌
////selectBoxHidden(레이어이름) --> 그누보드 자체 지원함수, 레이어와 셀렉트박스가 겹치면 셀렉트 박스를 숨김

//document.write("<table border=0 cellpadding=3 cellspacing=0 style='background-color:#F6FAFF; border: #9DADE5 solid; border-width: 1px 1px 1px 1px; width: 60px; padding: 3px;'>");
//아래에 보여줄 메뉴를 넣으세요.
document.write("<tr><td align='center'><embed width='120' height='300' Src='http://eantent.com/img/bann.swf' WMode='Transparent'></embed></td></tr>");

//document.write("<tr><td align='center'><a href='javascript:history.go(-1);' title='뒤로가기'>[뒤로가기]</a></td></tr>");

document.write("</table>");
document.write("</div>");



if (typeof document.body == "undefined")
  document.body = document.getElementsByTagName("BODY")[0];

var DivMovingLayer = new Array();

//환경설정

일반적으로 해상도가 변경되면 스크롤메뉴의 위치가 맞지 않을 때가 있습니다
이때 아래의 1003부분을 100으로 변경해 주시면 해상도가 변경되어도 맞추어 놓은 위치에 정확하게 뜹니다.
이것 때문에 한 참 고생했네요. ^^
var ContentsWidth = 1003;//움직이는 레이어를 제외한 콘텐츠 너비, 가운데 정렬에만 해당, 전체 테이블중 제일큰 테이블 너비
var DivMovingLayerX = new Array();
var DivMovingLayerY = new Array();
var DivMovingLayerRule = new Array();

DivMovingLayerX[0] = 300; //이부분이 우측 퀵메뉴부분입니다. 위치를 맞춰주세요
DivMovingLayerY[0] = 200; //상단위치입니다. 알맞게 조절해서 사용하세요
DivMovingLayerRule[0] = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼

DivMovingLayerX[1] = -300; //이부분은 좌측 퀵 메뉴부분입니다.
DivMovingLayerY[1] = 500;
DivMovingLayerRule[1] = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼

//레이어 보이기
//SetRemocon();
window.onload=SetRemocon;

</SCRIPT> 

이 아래부분이 핵심이더군요.

이런식으로 사용하면 되겟는데요

레이어 부분은 예제와 같이 두개를 만드시고
아이디는 DivMovingLayer[0], DivMovingLayer[1] 이렇게 주시고

DivMovingLayerX[0] = 300;
DivMovingLayerY[0] = 200;
DivMovingLayerRule[0] = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼

DivMovingLayerX[1] = -300;
DivMovingLayerY[1] = 500;
DivMovingLayerRule[1] = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼

이렇게 각 레이어의 위치에 대해 정의해 주시면 되겟습니다.

나머지부분은 링크와 동일하게 하시면 됩니다.
추천
1
  • 복사

댓글 0개

© SIRSOFT
현재 페이지 제일 처음으로