스크롤메뉴 설정 질문입니다 정보
스크롤메뉴 설정 질문입니다본문
아래는 스크롤 메뉴의 좌우 상하..조절하는 곳의 일부입니다.
//환경설정
var ContentsWidth = 900;//움직이는 레이어를 제외한 콘텐츠 너비, 가운데 정렬에만 해당, 전체 테이블중 제일큰 테이블 너비
var DivMovingLayerX = 450;//레이어가 위치할 레프트 값
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼
위에서 450 이라고 있는곳에 변수를 넣을 수는 없나요...
가령 필드등의 변수를 요...
만약 필드명 gr_1 를 넣은다면 어찌넣으면 되나요...
//환경설정
var ContentsWidth = 900;//움직이는 레이어를 제외한 콘텐츠 너비, 가운데 정렬에만 해당, 전체 테이블중 제일큰 테이블 너비
var DivMovingLayerX = 450;//레이어가 위치할 레프트 값
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼
위에서 450 이라고 있는곳에 변수를 넣을 수는 없나요...
가령 필드등의 변수를 요...
만약 필드명 gr_1 를 넣은다면 어찌넣으면 되나요...
댓글 전체
메뉴파일을 별도로 두고 있고 그 파일에 그누보드 환경변수가 들어있지 않은 경우라면 이 파일을 <script type="text/javascript" src="path"></script> 식으로 호출하는 형태로는 gr_1 변수가 안먹힐겁니다.
메뉴파일 상단에 필요한 그누보드 환경변수를 선언해주거나,
아니면 해당 페이지에 스크립트를 직접 코딩하고 var DivMovingLayerX = <?=$gr_1?>; 이런식으로 해보세요.
함수화 하는 취지에 맞게 메뉴파일은 분리하고 페이지마다 다르게 적용해야 하는 유동적인 값들은 함수에서 매개변수로 처리해서 함수을 호출할때마다 따로 값을 줄 수 있도록 해주면 더욱 좋을것 같습니다.
전체 코드를 올려주시면 고수님들께서 한번 봐주시지 않을까 싶네요.
메뉴파일 상단에 필요한 그누보드 환경변수를 선언해주거나,
아니면 해당 페이지에 스크립트를 직접 코딩하고 var DivMovingLayerX = <?=$gr_1?>; 이런식으로 해보세요.
함수화 하는 취지에 맞게 메뉴파일은 분리하고 페이지마다 다르게 적용해야 하는 유동적인 값들은 함수에서 매개변수로 처리해서 함수을 호출할때마다 따로 값을 줄 수 있도록 해주면 더욱 좋을것 같습니다.
전체 코드를 올려주시면 고수님들께서 한번 봐주시지 않을까 싶네요.
답변감사합니다..제가 워낙 초보라 위 답글의 해석이 난해하여 아래 소스를 올립니다....잘좀 봐주세요..
<SCRIPT language=javascript>
//리모콘 레이어
//이 자료는 유창화님과 네잎클로버님께서 만들어 주신 것으로
//저는 플래시 디자인 말고는 한게 아무것도 없습니다.
//사용함수
//사용함수
function ResetRemocon(){
var DivMovingLayerYFrom, DivMovingLayerYTo, OffsetY, ResetTime;
ResetTime = 100;
if (DivMovingLayerRule == 'center'){
//해상도 기준, 가운데 에서 x만큼 떨어진 곳에 위치
if (navigator.userAgent.toLowerCase().indexOf("gecko") > -1) {
if (document.body.clientWidth < ContentsWidth + 10) {
DivMovingLayer.style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX + 10 + "px";
}
else {
DivMovingLayer.style.left = (DivMovingLayerX + (document.body.clientWidth / 2)) + "px";
}
}
else{
if (document.body.clientWidth < ContentsWidth) {
DivMovingLayer.style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX + "px";
}
else {
DivMovingLayer.style.left = (DivMovingLayerX + (document.body.clientWidth / 2)) + "px";
}
}
}
else if (DivMovingLayerRule == 'left'){
//해상도와 무관, 왼쪽 에서 x만큼 떨어진 곳에 위치
DivMovingLayer.style.left = (DivMovingLayerX) + "px";
}
DivMovingLayerYFrom = parseInt (DivMovingLayer.style.top, 10);
DivMovingLayerYTo = DivMovingLayerY + document.body.scrollTop + 1;
if ( DivMovingLayerYFrom != DivMovingLayerYTo ) {
OffsetY = Math.ceil( Math.abs( DivMovingLayerYTo - DivMovingLayerYFrom ) / 20 );
if ( DivMovingLayerYTo < DivMovingLayerYFrom )
OffsetY = -OffsetY;
DivMovingLayer.style.top = (DivMovingLayerYFrom + OffsetY) + "px";
ResetTime = 10;
}
setTimeout ("ResetRemocon()", ResetTime);
}
function SetRemocon() {
DivMovingLayer.style.display = "block";
DivMovingLayer.style.top = (DivMovingLayerY + document.body.scrollTop + 1) + "px";
ResetRemocon();
return true;
}
function NoneRemocon() {
DivMovingLayer.style.display = "none";
selectBoxVisible();
}
//레이어 디자인부분
document.write("<div id=DivMovingLayer 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'><img src='<?=$side_scroll_menu_skin_path?>/img/1.gif' ></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 = document.getElementById("DivMovingLayer");
//환경설정
var ContentsWidth = 900;//움직이는 레이어를 제외한 콘텐츠 너비, 가운데 정렬에만 해당, 전체 테이블중 제일큰 테이블 너비
var DivMovingLayerX =450;//레이어가 위치할 레프트 값
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼
//레이어 보이기
//SetRemocon();
window.onload=SetRemocon;
</SCRIPT>
<SCRIPT language=javascript>
//리모콘 레이어
//이 자료는 유창화님과 네잎클로버님께서 만들어 주신 것으로
//저는 플래시 디자인 말고는 한게 아무것도 없습니다.
//사용함수
//사용함수
function ResetRemocon(){
var DivMovingLayerYFrom, DivMovingLayerYTo, OffsetY, ResetTime;
ResetTime = 100;
if (DivMovingLayerRule == 'center'){
//해상도 기준, 가운데 에서 x만큼 떨어진 곳에 위치
if (navigator.userAgent.toLowerCase().indexOf("gecko") > -1) {
if (document.body.clientWidth < ContentsWidth + 10) {
DivMovingLayer.style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX + 10 + "px";
}
else {
DivMovingLayer.style.left = (DivMovingLayerX + (document.body.clientWidth / 2)) + "px";
}
}
else{
if (document.body.clientWidth < ContentsWidth) {
DivMovingLayer.style.left = parseInt (ContentsWidth / 2, 10) + DivMovingLayerX + "px";
}
else {
DivMovingLayer.style.left = (DivMovingLayerX + (document.body.clientWidth / 2)) + "px";
}
}
}
else if (DivMovingLayerRule == 'left'){
//해상도와 무관, 왼쪽 에서 x만큼 떨어진 곳에 위치
DivMovingLayer.style.left = (DivMovingLayerX) + "px";
}
DivMovingLayerYFrom = parseInt (DivMovingLayer.style.top, 10);
DivMovingLayerYTo = DivMovingLayerY + document.body.scrollTop + 1;
if ( DivMovingLayerYFrom != DivMovingLayerYTo ) {
OffsetY = Math.ceil( Math.abs( DivMovingLayerYTo - DivMovingLayerYFrom ) / 20 );
if ( DivMovingLayerYTo < DivMovingLayerYFrom )
OffsetY = -OffsetY;
DivMovingLayer.style.top = (DivMovingLayerYFrom + OffsetY) + "px";
ResetTime = 10;
}
setTimeout ("ResetRemocon()", ResetTime);
}
function SetRemocon() {
DivMovingLayer.style.display = "block";
DivMovingLayer.style.top = (DivMovingLayerY + document.body.scrollTop + 1) + "px";
ResetRemocon();
return true;
}
function NoneRemocon() {
DivMovingLayer.style.display = "none";
selectBoxVisible();
}
//레이어 디자인부분
document.write("<div id=DivMovingLayer 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'><img src='<?=$side_scroll_menu_skin_path?>/img/1.gif' ></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 = document.getElementById("DivMovingLayer");
//환경설정
var ContentsWidth = 900;//움직이는 레이어를 제외한 콘텐츠 너비, 가운데 정렬에만 해당, 전체 테이블중 제일큰 테이블 너비
var DivMovingLayerX =450;//레이어가 위치할 레프트 값
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을 기준으로 x만큼
//레이어 보이기
//SetRemocon();
window.onload=SetRemocon;
</SCRIPT>
var DivMovingLayerX =<?=$group[gr_1]?>;//레이어가 위치할 레프트 값
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을
위와 같이 점을 빼니되네요...감사합니다
var DivMovingLayerY = 180;//레어가 위치할 탑 값
var DivMovingLayerRule = 'center';//center -->가운데 정렬을 기준으로 x만큼, left --> 레프트 정렬을
위와 같이 점을 빼니되네요...감사합니다
축하합니다