2012-03-26 7 views
0

Ich habe einige Probleme mit dem Jquery-Plugin smoothdivscroll.Smooth Div Scroll - Scroll Right wird zurückgesetzt, wenn die Maus aus

Im Wesentlichen, ich versuche das Plugin zu laufen, wie diese Seite zu erhalten: http://www.smoothdivscroll.com/demo.html

Allerdings habe ich die JavaScript ändert, da der Bedarf automatisch scrollen, aber lassen Sie die Hotspots auch arbeiten, aber zurückkehren um automatisch mit der Maus zu scrollen und den Hotspot zu verlassen.

Während der untenstehende Code funktioniert, nachdem Sie den Trigger auf der rechten Seite verlassen haben, wird er auf das erste Div zurückgesetzt.

Gibt es eine Möglichkeit, den Scrollvorgang von der eingestellten Position fortzusetzen?

Code:

// Initialize the plugin with no custom options 
    $(document).ready(function() { 
     // I just set some of the options 
     $("div#makeMeScrollable").smoothDivScroll({ 
     mousewheelScrolling: true, 
     visibleHotSpotBackgrounds: "always", 
     autoScrollingMode: "endlessright" 
     }); 


    }); 
    //This is just to make the scroller pause... 
    $("#makeMeScrollable").bind("mouseover", function() { 
    $(this).smoothDivScroll("stopAutoScrolling"); 
    }).bind("mouseout", function() { 
    $(this).smoothDivScroll("startAutoScrolling"); 
}); 

Antwort

2

Ich weiß nicht, ob das, was Ihre Probleme verursacht, aber Sie müssen die Aufmerksamkeit auf die Klammer zahlen. Ändern Sie den Code dazu:

// jQuery document ready 
$(document).ready(function() { 
    // Initialize the scroller 
    $("#makeMeScrollable").smoothDivScroll({ 
    mousewheelScrolling: true, 
    visibleHotSpotBackgrounds: "always", 
    autoScrollingMode: "endlessright" 
    }); 

    //This is just to make the scroller pause... 
    $("#makeMeScrollable").bind("mouseover", function() { 
    $(this).smoothDivScroll("stopAutoScrolling"); 
    }).bind("mouseout", function() { 
    $(this).smoothDivScroll("startAutoScrolling"); 
    }); 
}); // End query document ready 

ich diesen Code nicht getestet, aber wenn ich einen Tippfehler gemacht, es ist der richtige Weg, es zu tun.

Viel Glück!

+0

Danke, es geht immer noch verrückt Rückstellung in die erste wieder Div. aber saubere Syntax ist immer gut. –

+0

Ich bin gespannt, ob dies ein Fehler ist, der behoben werden muss. Haben Sie eine URL zu einer Testseite? – tkahn

+0

http://www.vettacreative.co.uk/scroll/ Wenn Sie die Hotspots links und rechts benutzen, werden Sie sehen, was ich meine. Danke –

0

Ich sah, dass die Optionen nicht stimmen. Versuchen Sie, diese (wenn Sie die neueste Version verwenden, das ist Version 1.2):

// Initialize the scroller 
    $("#makeMeScrollable").smoothDivScroll({ 
    mousewheelScrolling: true, 
    visibleHotSpotBackgrounds: "always", 
    autoScrollingMode: "onstart", 
    autoScrollingDirection: "endlessloopright", 
    manualContinuousScrolling: true 
    }); 

In dieser Konfiguration ist der scroller wird in einer ensless Schleife rechts werden Autoscrolling, wenn es geladen wird. Sobald der Benutzer das Mausrad oder die Hotspots verwendet, wird die automatische Bildlauffunktion angehalten, und falls nicht für Ihre benutzerdefinierten Eventhandler, wird die automatische Bildlauffunktion nicht erneut gestartet. Aber da Sie sie haben, sollte es wieder beginnen, sobald der Benutzer den scollable Bereich verlässt.

Ich habe auch ManualContinuousScrolling auf True eingestellt, so dass Sie die gleiche Endlosschleife beim manuellen Scrollen erhalten.

Dies wurde nicht getestet, so dass Sie möglicherweise einige Anpassungen vornehmen müssen. Zum Beispiel bin ich nicht sicher, ob autoScrollingMode: "onstart" oder autoScrollingMode: "immer" die beste Wahl ist. Du musst es nur versuchen.

0

Ich glaube auch wichtig, dass möglicherweise verschiedene Versionen das Verhalten beeinflussen. Dies funktionierte für meine: jquery.smoothDivScroll-1.1-min.js-Version.

Beachten Sie die Differenz der Funktionsnamen: stopAutoScroll vs. stopAutoScrolling usw.

$(window).load(function() { 
    $("#makeMeScrollable").smoothDivScroll({ 
     autoScroll: "always", 
     autoScrollDirection: "backandforth", 
     autoScrollStep: 1, 
     autoScrollInterval: 25, 
     startAtElementId: "startAtMe" 
    }); 

    //This is just to make the scroller pause... 
    $("#makeMeScrollable").bind("mouseover", function() { 
     $(this).smoothDivScroll("stopAutoScroll"); 
     }).bind("mouseout", function() { 
     $(this).smoothDivScroll("startAutoScroll"); 
    }); 
});