Я использую iScroll на моем мобильном веб-сайте (используя iPhone здесь) для прокрутки внутри div.
В этом div, у меня есть iframe с фиксированной высотой, как это:
<body>
<div id="iscroller">
<iframe id="theIframe"></iframe>
Other stuff
</div>
</body>
Теперь, прокручивая в div, все работает так, как ожидалось, но я не могу прокручивать, когда прокручивающий жест начинается с iframe.
Проблема описана здесь довольно хорошо: https://github.com/cubiq/iscroll/issues/41
Итак, я использовал обходное решение css из этого сообщения, применив pointer-events:none
к iframe.
Теперь прокрутка отлично работает , но. Я не могу щелкнуть ссылки, определенные в iframe, потому что все события click/touch в iframe, кажется, заблокированы из-за pointer-events: none
.
Итак, я подумал:
"Хорошо, пока пользователь прокручивает, мне нужно
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 не работает.
Не работает. Любые идеи?