2011-01-17 9 views
0

저는 Windows 7, Firefox, Chrome, IE 8 이상 (6 또는 7을 확인할 리소스가 없음) 및 Opera에서 완벽하게 작동하는 javascript 슬라이드 쇼를 보유하고 있습니다. 하지만 IE 7에서 xp를 사용하면 슬라이드 쇼가 화면 오른쪽에서 벗어날 수 있다고 들었습니다. 내 문제는 무엇이 될 수 있습니까? 여기슬라이드 쇼 위치 지정 문제

*#page { 
width:940px; 
margin: auto; 
} 

#gallery { 
position:relative; 
padding:0px; 
margin:5px 0px; 
width:940px; 
height:320px; 
    } 

#gallery li { 
display: block; 
width:940px; 
height:320 
list-style:none; 
}* 

그리고 내 자바 스크립트입니다 : 여기

내 CSS입니다

*var galleryId = 'gallery'; 
var gallery; 
var galleryImages; 
var currentImage; 
var previousImage; 
var preInitTimer; 
preInit(); 

function preInit() { 

if ((document.getElementById)&&(gallery=document.getElementById(galleryId))) { 
    gallery.style.visibility = "hidden"; 
    if (typeof preInitTimer != 'undefined') clearTimeout(preInitTimer); 
} else { 
    preInitTimer = setTimeout("preInit()",2); 
} 
} 

function fader(imageNumber,opacity) { 

var obj=galleryImages[imageNumber]; 
if (obj.style) { 
    if (obj.style.MozOpacity!=null) { 

    obj.style.MozOpacity = (opacity/100) - .001; 
    } else if (obj.style.opacity!=null) { 

    obj.style.opacity = (opacity/100) - .001; 
    } else if (obj.style.filter!=null) { 

    obj.style.filter = "alpha(opacity="+opacity+")"; 
    } 
} 
} 

function fadeInit() { 
if (document.getElementById) { 
    preInit(); 
    galleryImages = new Array; 
    var node = gallery.firstChild; 

    while (node) { 
    if (node.nodeType==1) { 
    galleryImages.push(node); 
    } 
    node = node.nextSibling; 
    } 
    for(i=0;i<galleryImages.length;i++) { 

    galleryImages[i].style.position='absolute'; 
    galleryImages[i].style.top=0; 
    galleryImages[i].style.zIndex=0; 

    fader(i,0); 
    } 

    gallery.style.visibility = 'visible'; 

    currentImage=0; 
    previousImage=galleryImages.length-1; 
    opacity=100; 
    fader(currentImage,100); 

    window.setTimeout("crossfade(100)", 1000); 
} 
} 

function crossfade(opacity) { 
    if (opacity < 100) { 

    fader(currentImage,opacity); 

    opacity += 9; 
    window.setTimeout("crossfade("+opacity+")", 50); 
    } else { 

    fader(previousImage,0); 

    previousImage=currentImage; 
    currentImage+=1; 
    if (currentImage>=galleryImages.length) { 

    currentImage=0; 
    } 

    galleryImages[previousImage].style.zIndex = 0; 
    galleryImages[currentImage].style.zIndex = 100; 

    opacity=0; 
    window.setTimeout("crossfade("+opacity+")", 5000); 
    } 
} 

addEvent(window,'load',fadeInit) 

function addEvent(elm, evType, fn, useCapture) 

{ 
if (elm.addEventListener){ 
    elm.addEventListener(evType, fn, useCapture); 
    return true; 
} else if (elm.attachEvent){ 
    var r = elm.attachEvent("on"+evType, fn); 
    return r; 
} 
} * 

그리고 아이디어?

+2

꽤 읽을 수 없으므로 코드 붙여 넣기를 수정하십시오. –

+0

IETester를 다운로드하여 IE 버전 5.5-8을 테스트하십시오. 'http : // www.my-debugbar.com/wiki/IETester/HomePage' –

답변

0

실제로이 작업이 실제로 수행되는지 또는 잘못된 작업 일지라도 #page를 margin : 0 auto; margin 대신에 : auto;