亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復我用 vanilla JavaScript 編寫的水平滾動腳本

如何修復我用 vanilla JavaScript 編寫的水平滾動腳本

慕標琳琳 2021-11-25 19:23:25
我根據 YouTube 的一些想法制作了這個水平滾動頁面,一切正常,邏輯也很好,但是 x 的翻譯有問題,有時它翻譯的 X 太多或有時低于應有的水平,有必須對 translateThisMuch const 進行更改,但我想不出任何事情,任何幫助將不勝感激。這是代碼的鏈接https://codepen.io/AbramPlus/pen/RwwoPrW 請注意,當它從滾動部分的不同部分轉到其他部分時,視口中仍然有一些其他部分。這是JS代碼。const spacer = document.querySelector(".spacer");const spacerSecond = document.querySelector(".spacerSecond");const wrapper = document.querySelector(".wrapper");const windowEffect = document.querySelector(".windowEffect");const horizontalScrollEnabler = () => { const scrollFromTop = window.scrollY;const translateThisMuch = scrollFromTop - spacer.offsetTop;const spacerHeight = window.innerWidth * 4 ;const spacerSecondHeight = spacerSecond.offsetHeight;    if (scrollFromTop > spacer.offsetTop && scrollFromTop < spacerSecond.offsetTop && scrollFromTop + window.innerHeight < spacerSecond.offsetTop + spacerSecond.offsetHeight) {        windowEffect.style.position = "fixed";        wrapper.style.transform = `translateX(-${translateThisMuch}px)`;        windowEffect.style.top = "0";    }    if (scrollFromTop < spacer.offsetTop) {        windowEffect.style.position = "absolute";        windowEffect.style.top = "0";    }    if (scrollFromTop > spacer.offsetTop + spacerHeight) {        windowEffect.style.position = "absolute";        windowEffect.style.top = `${window.innerWidth * 4}px`;    }    requestAnimationFrame(horizontalScrollEnabler);};document.addEventListener("DOMContentLoaded", horizontalScrollEnabler);
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

好的,問題是當你在水平滾動部分的起點之后向上滾動時,由于滾動很容易繞過實現X的整個代碼和平移的起點,它可能會跳20px,或10px,或5px,包裝器保留了它在向上滾動之前的 Xtrasnlation,導致整個元素被腳本排除在外,因為在每個滾動事件中向上或向下滾動不是 1 個像素。那么我們該如何解決呢?我們可以將起點或終點擴展幾百個像素,因此即使我們繞過由于從終點向下滾動或從起點向上滾動而導致的先前起點或終點,我們仍然可以訪問 scrolltop - starter 元素'


查看完整回答
反對 回復 2021-11-25
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號