2016-06-07 13 views
0

bekam ich ein festes Element (weil das Element an einer bestimmten Position fixiert bleiben muss) mit diesen Attributen:Wie setze ich IntroJS Schritt auf einem festen Element?

style="position: fixed; width: 270px; right: 60px; height: 500px;" 

Jedes Mal, wenn ich die introJS Schritte drücken durch, es den markierten Bereich ein wenig weg zeigen würde: enter image description here

Wie nenne ich IntroJS:

var intro = introJs(); 
    var options_before = { 

    steps: [ 
     { 
     element: ".bar", 
     intro: "this is step 1" 
     }, 
     { 
     element: "div#fooId", 
     intro: "Why does step 2 look so weird?=" 
     } 
    ] 
    } 

    intro.setOptions(options_before); 
    intro.start(); 

ich versuchte top und margin Ausprägungs neu zu positionieren (Ändern Es) und die Größe dieses Elements ändern, aber der hervorgehobene Bereich von IntroJS würde niemals zu dem Bereich passen, den ich beleuchten möchte.

Antwort

1

eine id Element Geben und in introJs Schritte

Schritte: [ { Element: "#yourID", Intro: "Ihre Beschreibung" } ]

dieses Versuchen Sie, bevor Sie anrufen intro.start().

intro.onafterchange(function(targetElement) { 
    if(this._currentStep == 1){ 
     overlay = document.getElementsByClassName("introjs-fixedTooltip"); 
     for(i=0; i<overlay.length; i++) { 
      overlay[i].style.left = '10px'; 
      overlay[i].style.right = '10px'; 
      overlay[i].style.position = 'fixed'; 
      //Set css properties like this. 
     } 
    } 
}); 
+0

Das ist genau das, was ich getan habe und es stellte sich heraus, wie ich in meiner Frage angezeigt wurde. – thadeuszlay

+0

kann "div # fooId" Elementauswahl ist falsch. Sehen Sie, ob der bearbeitete Code für Sie arbeitet. – sudhirk496

+0

Es funktioniert, aber Sie müssen auch eine "position: fixed" hinzufügen, d. H. "Overlay [i] .style.position = 'fixed'; ' (Andernfalls verliert das Overlay seinen Fokus, wenn Sie die Next- und Previous-Taste drücken.) Wenn Sie das zu Ihrer Antwort hinzufügen würden, dann würde ich akzeptieren, dass Sie die Lösung haben. – thadeuszlay

Verwandte Themen