PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem mit js-scroller im ie7



limubai
05.09.2007, 10:35
hiho, ich habe folgendes problem ich habe für die navigation ein js-script genommen welches automatisch an eine festgelegte stelle scrollt. funzt auch im ff und ie6 einwandfrei nur im ie7 geht nix. anstatt nur ein stück weit nach links zu scrollen, fährt es bis ans ende der seite im ie7.

hier mal die seite http://www.finanzierungskontor-dresden.de

und das script

// This is configurable
var SCREEN_WIDTH = 825;

var STEPS = new Array(0, 40, 40, 50, 50, 60, 60, 100, 150, 200, 300);
var POSITIONS = new Array(0,825,1650,2475,3300,4250,6000);


var slideSteps = 100;

// This is fixed
var slideTimer = 0;
var slideStep = 60;
var isIE = -1 != navigator.appName.indexOf("Microsoft");
var isNN = -1 != navigator.appName.indexOf("Netscape");

function getXOffset() {
if(window.window.pageXOffset)
return window.pageXOffset;
else if(document.body.scrollLeft)
return document.body.scrollLeft;
else return false;
}

function slideScreen(index) {
// Clear slide timer
if (0 != slideTimer) {
clearTimeout(slideTimer);
slideTimer = 0;
}
// Check if scroll is to an end
// var finalLeft = (index - 1) * SCREEN_WIDTH;
var finalLeft = POSITIONS[index-1]
var currentLeft = getXOffset();
if (currentLeft == finalLeft) {
return;
}
// Scroll
var isForward = currentLeft < finalLeft;
// This adjustment is required for NN, whose scrollTo() is not reliable.
if (slideStep > Math.abs(finalLeft - currentLeft)) {
slideStep = Math.abs(finalLeft - currentLeft);
}
var scrollStep = isForward ? slideStep : -slideStep;
scrollBy(scrollStep, 0);
// Set next slide timer
slideTimer = setTimeout("slideScreen(" + index + ")", 1000 / slideSteps);
} // slideScreen

function goToScreen(index) {
if (!isIE && !isNN) {
return;
}

//var finalLeft = (index - 1) * SCREEN_WIDTH;
var finalLeft = POSITIONS[index-1]


var currentLeft = getXOffset();
if (finalLeft == currentLeft) {
return;
}
var stepIndex = Math.round(Math.abs(finalLeft - currentLeft) / SCREEN_WIDTH);
slideStep = STEPS[stepIndex];
slideScreen(index);
} // goToScreen

function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_reloadPage(init) { //Updated by PVII. Reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_reloadPage(init) { //Updated by PVII. Reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

//-->wäre super wenn mir dabei jemand weiterhelfen könnte

lg Li

Mikes-PCHilfe
05.09.2007, 11:29
Sehe auf Anhieb erstmal keine Fehler.

Wo hast du das Script denn her? Mal bei dem Entwickler direkt gefragt?
Versuch mal mit alert boxen zu debuggen ab welcher zeile Unterschiede zwischen IE6 & IE7 sind

grüße Mike