Hallo zusammen,
ich habe ein script geschrieben das mit einem Grafischen-Schieberegler ein Iframe scrollt.
Ich habe es erst über einen Event Handler und der X Position der Maus versucht, doch gab es da natürlich Probleme durch verschiedene Bildschirm-Auflösungen. Doch wenn ich offsetX für MSIE oder layerX für MOZ benutze, springt der Regler auf der Ursprungsposition zurück.
Hier ein auszug aus dem Quelltext:
msie = (document.all) ? true:false;
moz = ((document.getElementById) && (!document.all)) ? true:false;
gecko = (document.layers) ? true:false;
if(gecko) {
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP);
document.onmousedown = start_scrolling;
document.onmouseup = end_scrolling;
}
document.onmousedown = start_scrolling;
document.onmouseup = stop_scrolling;
function start_scrolling(event){
var windowWidth=screen.width;
if (windowWidth>=600 & windowWidth<=800)
dynamicWidth = 233;
if (windowWidth>=1024 && windowWidth>=800)
dynamicWidth = 400;
if (windowWidth>1024)
dynamicWidth = 533;
if(msie){
var triggerMSIE = document.all['photo_nav_trigger'].style;
triggerMSIE.pixelLeft = window.event.offsetX;
var scrollingMSIE = document.all['photo_nav_trigger'].style;
scrollingMSIE.pixelLeft = window.event.offsetX;
if(triggerMSIE.pixelLeft<15)
triggerMSIE.pixelLeft = 15;
if(triggerMSIE.pixelLeft>206)
triggerMSIE.pixelLeft = 206;
if(triggerMSIE.pixelLeft>15 && triggerMSIE.pixelLeft<206)
window.photo_iframe.scrollTo(scrollingMSIE.pixelLeft*scrollingEndPosition,0);
document.onmousemove = start_scrolling;
return false;
}
if(moz){
var triggerMOZ = document.getElementById('photo_nav_bar').style;
triggerMOZ.left = event.layerX;
var scrollingMOZ = document.getElementById('photo_nav_bar');
scrollingMOZ.pos = event.layerX;
if(event.layerX<15)
triggerMOZ.left = 15;
if(event.layerX>206)
triggerMOZ.left = 206;
if(event.layerX>15 && event.layerX<206)
document.getElementById('photo_iframe').contentWindow.scrollTo(scrollingMOZ.pos*scrollingEndPosition,0);
document.onmousemove = start_scrolling;
return false;
}
if(gecko){
var triggerGECKO = document.layers['photo_nav_trigger'];
triggerGECKO.left = event.pageX-dynamicWidth;
var scrollingGECKO = document.layers['photo_nav_trigger'];
scrollingGECKO.pos = event.pageX-dynamicWidth;
if(event.pageX-dynamicWidth<206)
triggerGECKO.left = 15;
if(event.pageX-dynamicWidth>206)
triggerGECKO.left = 206;
if(event.pageX-dynamicWidth>15 && event.pageX-dynamicWidth<206)
window.photo_iframe.scrollTo(scrollingGECKO.pos*scrollingEndPosition,0);
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = start_scrolling;
return false;
}
}
function stop_scrolling(){
document.onmousemove = null;
return false;
}
Über eine Lösung und Erklärung für mein Problem wäre ich sehr dankbar. Sitze nun schon einige Zeit dran und komme defenetif nicht alleine weiter.
lg
Alex