Vueプロジェクトの移動端の転がりは問題の実現を貫きます。
概要
今日はVueモバイル端末のプロジェクトをしていますが、スクロールスルーの問題がありました。インターネットで資料を調べた後、一番いい方法を選びました。記録してから開発する時に参考にしてください。他の人にも役に立つと信じています。
上の部分はスクロールする必要がありません
上層部がスクロールする必要がないなら、上層部のtouchmoveイベントを直接遮断すればいいです。例は以下の通りです
上の層がスクロールする必要があるなら、固定する時はまずbodyのスライド距離を取って、fixedで固定して、topでスクロール距離をシミュレーションします。固定しない場合はtopの値を取得し、bodyを前の場所にスクロールさせるだけでいいです。例は以下の通りです
今日はVueモバイル端末のプロジェクトをしていますが、スクロールスルーの問題がありました。インターネットで資料を調べた後、一番いい方法を選びました。記録してから開発する時に参考にしてください。他の人にも役に立つと信じています。
上の部分はスクロールする必要がありません
上層部がスクロールする必要がないなら、上層部のtouchmoveイベントを直接遮断すればいいです。例は以下の通りです
<div @touchmove.prevent>
</div>
上の方はスクロールが必要です上の層がスクロールする必要があるなら、固定する時はまずbodyのスライド距離を取って、fixedで固定して、topでスクロール距離をシミュレーションします。固定しない場合はtopの値を取得し、bodyを前の場所にスクロールさせるだけでいいです。例は以下の通りです
<template>
<div @click="handleHambergerClick"></div>
</template>
<script>
export default {
name: 'BaseHeaderMobile',
data() {
return {
isHeaderVisible: false,
};
},
methods: {
handleHambergerClick() {
// hack:
if (!this.isHeaderVisible) {
this.lockBody();
} else {
this.resetBody();
}
this.isHeaderVisible = !this.isHeaderVisible;
},
lockBody() {
const { body } = document;
const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
body.style.position = 'fixed';
body.style.width = '100%';
body.style.top = `-${scrollTop}px`;
},
resetBody() {
const { body } = document;
const { top } = body.style;
body.style.position = '';
body.style.width = '';
body.style.top = '';
document.body.scrollTop = -parseInt(top, 10);
document.documentElement.scrollTop = -parseInt(top, 10);
},
},
};
</script>
ここで、Vueプロジェクトのモバイル端末のスクロール貫通問題の実現に関する記事を紹介します。Vueモバイル端末のスクロールが内容を貫いています。以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。