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
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