2017-03-30 6 views
0

私はintro.jsを使用して自分のウェブサイトのツアーを設定していますが、ツールチップのデフォルトの配置を設定したいと思います。垂直の中心の代わりにページ。デフォルトのintro.jsツールチップの配置を変更する

直接設定するオプションがないようですが、CSSを変更する方法はありますか? (またはソースを編集することによって、それは最後の手段のようですが)。

答えて

1

私は同様のことをする必要がありました。エレガントではありませんが、機能します。

APIドキュメントには、onafterchangeメソッドがあります。コールバック関数を与えると、ステップが表示されるたびに起動します。

ツールチップにターゲット要素がある場合、コールバックの引数にはその要素が含まれます。ツールヒントに要素がない場合、引数にはクラスintrojsFloatingElementの要素が含まれます。だから、あなたはその要素のそのクラスの存在をチェックする必要があります。そうであれば、ツールチップ要素のスタイルを微調整できます。

var help = introJs(); 
help.onafterchange(function(targetEl){ 
    targetEl = jQuery(targetEl); 

    // check if it's a floating tooltip (not attached to an element) 
    if(targetEl.hasClass('introjsFloatingElement')){ 

     // adjust the position of these elements 
     jQuery('.introjs-tooltipReferenceLayer').offset({top : 120}); 
     jQuery('.introjs-tooltip').css({ 
      opacity: 1, 
      display: 'block', 
      left: '50%', 
      top: '50%', 
      'margin-left': '-186px', 
      'margin-top': '-91px' 
     }); 
     jQuery('.introjs-helperNumberLayer').css({ 
      opacity: 1, 
      left: '-204px', 
      top: '-109px' 
     }); 
    } 
}); 

// add your steps 
// ... 

help.start(); 

注:

  • 私が最初にonbeforechangeを試してみましたが、それは動作しませんでした。理由は分かりません。まず
  • 、私はintrojs-tooltipReferenceLayer要素が、ネストされた要素(introjs-helperNumberLayerintrojs、ツールチップ)は、第1ディスプレイ上に正しく配置されなかった調整しようとしました。私はその後のディスプレイでこれらの要素を調べて、適切なスタイルを得る必要がありました。
  • intro.js 2.5.0でテスト済みです。要素クラスはAPI仕様の一部ではないので、私はこのソリューションが将来どのようなものかを知りません。
+0

ありがとうございます。クラスをチェックしてから、 'onafterchange'を使ってクラスを設定するのは良い考えです。ソースCSSを編集することでややうまく動作していましたが、これはより良いことです。 – ropeladder

0

私はintro.jsのドキュメントを調べました。このコード行をスクリプトに追加するだけで済みます。

introJs().setOption("tooltipPosition", "top"); 
+0

残念ながら、このオプションは、添付されている要素に対するツールチップのデフォルトの位置を設定するようにしか見えません。何にも付けられていないツールチップの配置には何の影響もないようです。 – ropeladder

+0

申し訳ありませんが動作しませんでした。おそらく同じコマンドを使用して 'tooltipClass'を設定し、CSSの位置を変更することができます。しかしこれは、個々のツールヒントごとに 'setOption'を使用できる場合にのみ有効です。 –

+0

2番目のアイデアをお寄せいただきありがとうございますが、動作していません。 'steps'配列([ここを参照](https://github.com/usablica/intro.js/blob/master/example/programmatic/index.html)を参照)を使用して、' tooltipClass'を個別に設定することはできますが、 intro.jsのjavascriptは 'style'タグを使用してカスタムクラスの配置をオーバーライドするため、位置設定には使用できません。 – ropeladder

関連する問題