私はモバイル対応ウェブサイト(ここではiPhoneを使用しています)でiScrollを使用してdiv内をスクロールしています。 div要素内のスクロール、すべてが期待どおりに動作しますが、スクロールジェスチャーがオンに開始したとき、私はスクロールすることはできませんが、iframeがモバイルSafari上でiScrollのスクロールを防止する
<body>
<div id="iscroller">
<iframe id="theIframe"></iframe>
Other stuff
</div>
</body>
:今この本のdivで
、私はこのような固定の高さではiframeを持っていますiframe。
問題はかなりよく、ここで説明されています。https://github.com/cubiq/iscroll/issues/41
だから、私は、IFRAMEにpointer-events:none
を適用することによって、そのポストからCSSの回避策を使用しました。今、私はすべてのクリックは/ IFRAMEにイベントを触れるためのiframe内で定義されている任意のリンクをクリックすることはできません完全にが、を作品をスクロール
が原因pointer-events: none
にブロックされているように見えます。
だから、私は考えた:
「OK、ユーザーがスクロールしながら、私は
pointer-events:none
を必要とし、彼は スクロール(と代わりにクリック)でない場合、私はクリックをさせるためにpointer-events:auto
を設定する必要があります。 /タッチイベントが通過します。
だから私はこのでした:
:これでも動作しませんを追加するCSS
#theIframe{pointer-events:none}
はJavaScript
$("#theIframe").bind("touchstart", function(){
// Enable click before click is triggered
$(this).css("pointer-events", "auto");
});
$("#theIframe").bind("touchmove", function(){
// Disable click/touch events while scrolling
$(this).css("pointer-events", "none");
});
を
$("#theIframe").bind("touchend", function(){
// Re-enable click/touch events after releasing
$(this).css("pointer-events", "auto");
});
私が何をしていても、スクロールが機能しないか、iframe内のリンクをクリックしても機能しません。
動作しません。何か案は?
これを行う方法は他にありませんか?これを行うにはスマートな方法ですが、私はiframeを制御することはできません。もしそれがim screwを変更するならば、感謝の仲間です:) – jycr753
@ jycr753 iframe内のリンクをクリックする必要がない場合は、 css属性 'pointer-events:none'を代わりに使用します。 – Timo
ありがとう、ありがとうございました – jycr753