2016-06-29 16 views
5

Ich verwende IntroJs auf meiner Seite, um eine Tour anzuzeigen. Im Allgemeinen funktioniert alles gut, aber es gibt ein Problem:IntroJS Scrollen funktioniert nicht

Auf einer Seite kann IntroJS nicht scrollen, weil ich etwas wie ein div habe, das auf dem div selbst scrollt, also nicht die ganze Seite scrollt, aber Das Div ist scrollbar. Wenn ich jetzt die Elemente der Tour für Elemente definiere, die gerade sichtbar sind, funktioniert alles gut, aber wenn du im Div nach unten scrollen musst, funktioniert es nicht mehr (es versucht tatsächlich, die komplette Seite herunterzuscrollen und zeigt den Schritt in der Mitte von nirgendwo

Dies ist, wie ich die Tour definiert:.?

this.intro = introJsModule.introJs(); 
    this.intro.setOptions({ 
     steps: [ 
     { 
      intro: "Hello user!" 
     }, 
     { 
      element: '.checkbox', 
      intro: "This is a checkbox" 
     }, 
     { 
      element: '#inputHor1', 
      intro: "This input looks very nice." 
     }, 
     { 
      element: '#anotherID', 
      intro: "This is the first section" 
     } 
     ]}); 
    this.intro.setOption('showStepNumbers', false); 
    } 

    startIntro() { 
    this.intro.start(); 
    } 

gibt es eine Möglichkeit, die ich beheben kann

PS: Was ich meine (mit auf meinem Seite) ist so etwas wie here.So die Abschnitte auf der rechten Seite ist, wo ich die Schritte definieren, und wenn es ist Die Notwendigkeit, nach unten zu scrollen, funktioniert nicht. Eigentlich ist der einzige Unterschied, dass meine Scroll-Leiste auch innerhalb des "richtigen Div" liegt, also scrolle ich nicht durch die gesamte Seite.

Antwort

2

Können wir die js sehen, die Sie verwenden?

Guesses:

Die onscroll Veranstaltung funktioniert nur, wenn:

  • Die div Überlauf hat: Auto, Überlauf: blättern, Überlauf-y: blättern, usw.
  • Die div hat derzeit eine sichtbare Bildlaufleiste, die blättern kann.
  • Die Mausbewegung führt tatsächlich zum Scrollen der Bildlaufleiste.

Sie könnten auch versuchen, die onmousewheel Ereignis statt onscroll (falls es das, was Sie verwenden ..)

+0

Eigentlich das Scrollen ist in IntroJS enthalten, also scrollt es automatisch ... (also habe ich keinen speziellen Code zum Scrollen, Sie können ihn im IntroJS Code finden.). Wenn Sie in den Code schauen (https://github.com/usablica/intro.js/blob/master/intro.js), kann ich nur 'window.scrollBy() 'finden .... – user5638730

+0

' window.scrollBy() 'scheint darauf hinzuweisen, dass es sich um ein Fensterrollen handelt - nicht um ein" div ". Das ist wahrscheinlich dein Problem. – littlewolf

+0

Und gibt es eine einfache Möglichkeit, das in Sourecode von IntroJS zu ändern? – user5638730