我在網頁中有一個 iframe:
<iframe id="wordBookiFrame" src="/wordBook" style="position:absolute; width:100%; height:100%;"></iframe>
在小螢屏(即智能手機)上查看網頁時,iframe 和主頁都變為可滾動的,這是可以預期的,如此處所示。
然而,當滾動到 iframe 的最后時,如果您繼續滾動,主頁面(“body”)滾動會接管,然后用戶也會滾動到 body 的底部。我認為這是標準的瀏覽器行為。
然而,這種行為的結果是,當用戶嘗試在 iframe 中向上滾動時,它會卡住,因為 body 的滾動優先于 iframe。簡而言之,主體似乎“接管”并優先于 iFrame 本身并導致 iFrame 的粘性滾動行為。因此,當 iframe 可見時,我需要以某種方式禁用 Svelte 中的正文滾動。但是,在 Svelte 中沒有簡單的方法可以做到這一點,因為 BODY 標簽位于單獨的檔案中。
我嘗試的解決方案如下(放置在 settimeout 函式中):
if(document.getElementById("wordBookiFrame").style.display == "block") //as the iframe only displays in certain circumstances
{
window.addEventListener('scroll',(event) => {
window.scrollTo(0,0)
return;
});
}
這段代碼背后的想法是,通過強制主頁滾動位置 0,0,可以避免這個問題。不幸的是,代碼是喜怒無常的。
我希望找到一些簡單的解決方案來解決這個煩人的問題!
uj5u.com熱心網友回復:
停止外部滾動
添加這個CSS:
.stop-scrolling {
height: 100%;
overflow: hidden;
}
stop-scrolling
然后使用 JavaScript
添加和洗掉類。編輯:將其添加到正文標簽。
即使 Svelte 不允許您訪問 body 標簽,添加腳本標簽也是客戶端,并且將始終有效
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/495969.html
標籤:javascript html css 框架 苗条的
上一篇:如何從陣列中獲取目標
下一篇:如何使用命令讓機器人dm我