묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
두개의 스크립트가 충돌이 납니다
2005.08.03 01:01
홈페이지 첫페이지에 게시물이 스크롤되고
이미지가 스크롤되는 코너가 두개가 있습니다.
스크립트 두개가 서로 충돌이나서 이미지 스크롤은 잘되나
게시물 스크롤이 잘 안됩니다.
원인을 꼭 알고싶습니다^^
*************** 이미지가 스크롤 됨 ***************
<script language="javascript">
//Math.random()
var scrollerheight=95*5+5; // 스크롤러의 세로 크기는 사용법 참고
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 95; // 위의 세로크기와 같이
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++); // area 삽입
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){ // area 삽입
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+ '+ '+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
var newsVar = 0;
scroll_content[0] = ""
scroll_content[0]= scroll_content[0] + " [img]";
</script>
*************** 게시물이 스크롤 됨 ***************
<script language="javascript">
<!--
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0;
lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1 : 0;
iW = "document.body.clientWidth";
function heartBeat() {
if(IE) {
diffY = document.body.scrollTop+100;
diffX = 0;
}
if(NS) {
diffY = self.pageYOffset;
diffX = self.pageXOffset;
}
if(diffY != lastScrollY) {
percent = .1 * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.divMenu.style.pixelTop += percent;
if(NS) document.divMenu.top += percent;
lastScrollY = lastScrollY + percent;
}
if(diffX != lastScrollX) {
percent = .1 * (diffX - lastScrollX);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.divMenu.style.pixelLeft += percent;
if(NS) document.divMenu.top += percent;
lastScrollY = lastScrollY + percent;
}
document.all.divMenu.style.left=(eval(iW)/2+400);
}
if(NS || IE) action = window.setInterval("heartBeat()",1);
//-->
</script>
이미지가 스크롤되는 코너가 두개가 있습니다.
스크립트 두개가 서로 충돌이나서 이미지 스크롤은 잘되나
게시물 스크롤이 잘 안됩니다.
원인을 꼭 알고싶습니다^^
*************** 이미지가 스크롤 됨 ***************
<script language="javascript">
//Math.random()
var scrollerheight=95*5+5; // 스크롤러의 세로 크기는 사용법 참고
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 95; // 위의 세로크기와 같이
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++); // area 삽입
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area); // area 삽입
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){ // area 삽입
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+ '+ '+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
var newsVar = 0;
scroll_content[0] = ""
scroll_content[0]= scroll_content[0] + " [img]";
</script>
*************** 게시물이 스크롤 됨 ***************
<script language="javascript">
<!--
self.onError=null;
currentX = currentY = 0;
whichIt = null;
lastScrollX = 0;
lastScrollY = 0;
NS = (document.layers) ? 1 : 0;
IE = (document.all) ? 1 : 0;
iW = "document.body.clientWidth";
function heartBeat() {
if(IE) {
diffY = document.body.scrollTop+100;
diffX = 0;
}
if(NS) {
diffY = self.pageYOffset;
diffX = self.pageXOffset;
}
if(diffY != lastScrollY) {
percent = .1 * (diffY - lastScrollY);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.divMenu.style.pixelTop += percent;
if(NS) document.divMenu.top += percent;
lastScrollY = lastScrollY + percent;
}
if(diffX != lastScrollX) {
percent = .1 * (diffX - lastScrollX);
if(percent > 0) percent = Math.ceil(percent);
else percent = Math.floor(percent);
if(IE) document.all.divMenu.style.pixelLeft += percent;
if(NS) document.divMenu.top += percent;
lastScrollY = lastScrollY + percent;
}
document.all.divMenu.style.left=(eval(iW)/2+400);
}
if(NS || IE) action = window.setInterval("heartBeat()",1);
//-->
</script>