私のチームではAngularStrapを使用して、Angular 1.5アプリにBootstrapモーダル(ポップオーバー、ツールチップなど)を統合しています。残念ながら、私はAngularStrapがそれらを示すファンキーな方法のために、これらのモーダルの内部の要素に確実に焦点を当てることは非常に困難であることを発見しました。このロジックはここに住ん:AngularStrapのツールチップ内の要素にフォーカスを確実に設定するにはどうすればよいですか?
// Set the initial positioning. Make the tooltip invisible
// so IE doesn't try to focus on it off screen.
tipElement.css({top: '-9999px', left: '-9999px', right: 'auto', display: 'block', visibility: 'hidden'});
彼らはその後、いくつかの内部角度requestAnimationFrameのサービスコールバックに応答して見えるようにされています:
は基本的に、すべてのAngularStrapのモーダルが隠された状態で始める
$$rAF(function() {
// Once the tooltip is placed and the animation starts, make the tooltip visible
if (tipElement) tipElement.css({visibility: 'visible'});
...
});
残念ながら、これはツールチップのすべてのDOM要素がツールipは通常は表示されず、これらの要素でfocus()を呼び出そうとすると失敗します。私の経験では、これは断続的に起こることに注意してください(私の時間の約20%)。
私はツールチップ上でアニメーションを無効にしようとしましたが、その場合は隠れた/目に見えるダンス全体をスキップするほどスマートではないようです。私は明らかにスーパーハッキー(例えば、フォーカスを設定しようとする前に任意のタイムアウトを使用)を試すことができますが、より信頼性の高いオプションを探しています。
は素晴らしい仕事、ありがとうございました! –