【问题标题】:How to set IntroJS step on a fixed element?如何在固定元素上设置 IntroJS 步骤?
【发布时间】:2016-06-07 08:17:27
【问题描述】:

我得到了一个具有以下属性的固定元素(因为该元素必须固定在某个位置):

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

每当我按 introJS 步骤时,它会显示突出显示的区域有点偏离:

我如何称呼 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();

我尝试重新定位(更改 topmargin 属性)并调整该元素的大小,但是 introJS 的突出显示区域永远不会适合我想要突出显示的区域。

【问题讨论】:

    标签: javascript html css intro.js


    【解决方案1】:

    为元素和 introJs 步骤提供一个 id

    步骤:[ { 元素:“#yourID”, 简介:“你的描述” } ]

    在调用 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.
            }
        }
    });
    

    【讨论】:

    • 这正是我所做的,结果就是我在问题中显示的方式。
    • 可能是“div#fooId”元素选择出错了。看看编辑后的代码是否适合你。
    • 它有效,但您还必须添加“位置:固定”,即'overlay[i].style.position = 'fixed';' (否则,如果您按下下一个和上一个按钮,覆盖将失去焦点。)如果您将此添加到您的答案中,那么我会接受您的解决方案。
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多