Alexander__: Probleme mit Drag & Drop

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

  1. Hallo zusammen,

    [...]Doch wenn ich offsetX für MSIE oder layerX für MOZ benutze, springt der Regler auf der Ursprungsposition zurück.

    Du hast schon mal hier einen Tip-Fehler bzw. Syntax-Fehler:

      
      if (windowWidth>=600 & windowWidth<=800)  
    
    

    Gruß
    Messmar

    1. Du hast schon mal hier einen Tip-Fehler bzw. Syntax-Fehler:
        if (windowWidth>=600 & windowWidth<=800)

      Danke für deine Antwort! Dieser Codebereich fällt so oder so weck wenn ich mein Problem gelöst habe, da dies nur die Verschiebung der Coordinaten aufzufangen.

      lg

      Alex