欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue ios fixed

林玟書2年前9瀏覽0評論

vue中,iOS下fixed定位的問題一直存在。因為iOS對fixed定位的支持并不好,當我們在iOS手機上使用fixed定位時,有時會出現fixed元素跟隨滾動且無法觸發點擊事件的問題。

為解決這個問題,我們可以用Vue.js的自定義指令來實現對iOS fixed的修復。

Vue.directive('fixed-ios', {
inserted: function (el) {
let scrollTop
el.addEventListener('touchstart', function () {
scrollTop = document.documentElement.scrollTop || document.body.scrollTop
})
el.addEventListener('touchmove', function (event) {
event.preventDefault()
let top = event.targetTouches[0].pageY - scrollTop
el.style.top = top + 'px'
})
}
})

以上就是我們用Vue.js的自定義指令固定iOS設備上的fixed元素。

通過上面的代碼,我們在inserted生命周期函數內部添加了touchstart和touchmove事件監聽器,通過這兩個事件可以精確定位到fixed元素在滾動條滾動時應該停留的位置。

在touchstart時,我們獲取到了當前滾動條的scrollTop值,也就是滾動條當前滾動的位置。在touchmove時,我們通過獲取當前touch的坐標值,然后減去之前記錄的滾動條scrollTop值,就可以得到現在fixed元素應該位于的top值了。隨后我們將這個top值設置到fixed元素的style屬性上即可。

此外,我們還需要將fixed-ios自定義指令加入到需要使用fixed定位的頁面元素上:

<div v-fixed-ios class="fixed-element">
This is a fixed element.
</div>

以上就是我們在Vue.js中實現對iOS fixed的修復的具體實現方法和相關代碼。希望上面的內容對大家有所幫助。