最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在vue中實(shí)現(xiàn)禁止屏幕滾動(dòng),禁止屏幕滑動(dòng)

 更新時(shí)間:2020年07月22日 10:24:52   作者:六月迎風(fēng)  
這篇文章主要介紹了在vue中實(shí)現(xiàn)禁止屏幕滾動(dòng),禁止屏幕滑動(dòng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

今天寫(xiě)了一個(gè)Vue彈層組件,用來(lái)全屏查看圖片的,大概是下面這么一個(gè)效果:

其中背景是透明色的,但是彈出這個(gè)組件時(shí)手指滑動(dòng)、鼠標(biāo)滾輪滑動(dòng),底部頁(yè)面是會(huì)動(dòng)。

作為自己開(kāi)發(fā)的一個(gè)常用的組件,這種bug當(dāng)然是要解決的。

于是學(xué)藝不精的我在網(wǎng)上找了蠻久的,看了不少博客,看了不少觀點(diǎn)和方法。終于找到了一個(gè)最簡(jiǎn)單、最實(shí)在的方法,

代碼如下:

<div class="magnify" v-show="isShow" @click.self="hide" @touchmove.prevent @mousewheel.prevent>
...
</div>

首先,這個(gè)div就是整個(gè)遮罩組件的根組件,核心就是div上的事件綁定。

@touchmove 是觸摸移動(dòng)事件

@mousewheel 是鼠標(biāo)滾輪事件

而加了prevent事件后綴,相信大家都知道是阻止默認(rèn)事件。

當(dāng)組件在屏幕最上方顯示時(shí),觸摸移動(dòng)事件和鼠標(biāo)滾輪都被阻止了,所以頁(yè)面不會(huì)再滾動(dòng)。

在網(wǎng)上也看到了很多給body添加事件的解決方法:

function bodyScroll(event){ 
 event.preventDefault(); 
} 

document.body.addEventListener('touchmove',bodyScroll,false); 

這里就不說(shuō)了,網(wǎng)上有很多,我也沒(méi)用上,所以沒(méi)有驗(yàn)證,如果是傳統(tǒng)頁(yè)面的,可以使用一下這種方法。

好了,菜鳥(niǎo)要繼續(xù)去學(xué)習(xí)了。。。

補(bǔ)充知識(shí):VUE2.0 實(shí)現(xiàn)移動(dòng)端在固定區(qū)域內(nèi)的滾動(dòng)效果

1.開(kāi)發(fā)工具:微信web開(kāi)發(fā)者工具;

2.項(xiàng)目:嵌在APP中的一個(gè)活動(dòng),活動(dòng)是H5頁(yè)面,使用VUE2.0框架。

3.需求,直接上截圖:

item 上拉滾動(dòng)到底部,遮罩層部分消失;item下拉,遮罩層部分顯示。

4.代碼:

HTML:

遮罩層部分與滾動(dòng)區(qū)域部分是平級(jí)

<template>
 <div id="selectGoods">
 <!--item列表區(qū)域-->
 <div class="goods-area" ref="box">
  <div class="goods-list" ref="item" v-for="(item,index) in items" >
  <img class="left-img" :src="item.goodsUrl" alt="">
  <div class="right-text">
   <span class="inviter-goods">{{item.resourceName}}</span> <br>
   <span class="invitee-rules"><span class="person-num">{{item.inviteResourceId}}</span>我是右側(cè)文本第二行</span>
  </div>
  </div>
 </div>
 <!--列表底部遮罩層-->
 <div class="bottom-mask" v-show="bottomMaskShow">
  <img class="mask-img" src="../../../static/inviteFriends/goodsListMask.png" alt="">
  <img class="bottom-triangle" src="../../../static/inviteFriends/xiasanjiao.png" alt="">
 </div>
 </div>
</template>

CSS(重點(diǎn)):

.goods-area{
 height:8.58rem;
 overflow-x: hidden;  /* 解決左右可以滑動(dòng)的問(wèn)題 */
 overflow-y: auto;  /* 解決左右可以滑動(dòng)的問(wèn)題 */
 overflow-scrolling: touch; /*兼容性 ios5+、android4+ */
}

JS:

this.$refs.是VUE2.0新增的一個(gè)對(duì)象,不需要使用JS原生的獲取DOM節(jié)點(diǎn)的方法,直接在元素上綁定ref,如上,<div ref = "box">,然后再JS中直接調(diào)用 this.$refs.box 就可以直接獲取。另外,感興趣的小伙伴可以看一下,console.log(this.$refs.item)的結(jié)果。

回歸本文主題,vue2.0 中的 mounted 方法,是頁(yè)面加載后調(diào)用方法的地方。這還牽扯到另外一個(gè)問(wèn)題就是VUE的鉤子函數(shù)(后續(xù)工作中有了更深入的體會(huì)結(jié)合自己的實(shí)際項(xiàng)目再寫(xiě)一篇)。

頁(yè)面加載后,監(jiān)聽(tīng)滾動(dòng)區(qū)域的 scroll 事件,調(diào)用 onScroll 方法,根據(jù)滾動(dòng)的尺寸判斷是否已經(jīng)滾動(dòng)到底部,控制遮罩層的顯示和隱藏。

mounted () {
 this.$refs.box.addEventListener('scroll', this.onScroll);
},
onScroll () { //onScroll方法放在methods:{}中
 let nScrollHeight = this.$refs.box.scrollHeight; // 滾動(dòng)距離總長(zhǎng) 內(nèi)部div的高度
 let nScrollTop = this.$refs.box.scrollTop; // 滾動(dòng)條(點(diǎn))當(dāng)前的位置在內(nèi)部div的高度 里占多少
 let itemHeight = nScrollHeight / (this.items.length); // 可以理解為每一個(gè)item的高度
 let scrollLength = itemHeight * (this.items.length - 4); // 默認(rèn)顯示4個(gè)item
 this.bottomMaskShow = true;
 if (nScrollTop > (scrollLength -49)) { // 49 這個(gè)差值比較靈活,是根據(jù)項(xiàng)目中打印出來(lái)的item高度和scrollTop實(shí)際滾動(dòng)(出去)的值對(duì)比得出的
 this.bottomMaskShow = false;
 } else
 if(nScrollTop <= (scrollLength -49)){ 
 this.bottomMaskShow = true;
 }
}

其實(shí)這個(gè)功能沒(méi)有什么難點(diǎn),但是自己在這個(gè)問(wèn)題上糾纏了好長(zhǎng)時(shí)間,在移動(dòng)端的效果總是不理想,原因在于,在一開(kāi)始自己就進(jìn)入了一個(gè)誤區(qū),認(rèn)為在微信的開(kāi)發(fā)工具上打印出來(lái)的 scrollTop 跟手機(jī)上打印出來(lái)的是一樣的,結(jié)果是,完全不一樣,手機(jī)根據(jù)尺寸的大小scrollTop的值也是不一樣的。

寫(xiě)在最后:

1.對(duì)于移動(dòng)端的適配問(wèn)題,靈活,以不變應(yīng)萬(wàn)變;

2.遇到問(wèn)題,想想那些點(diǎn)都是“你以為的”,可能就是這些“你以為的”出了問(wèn)題;

以上這篇在vue中實(shí)現(xiàn)禁止屏幕滾動(dòng),禁止屏幕滑動(dòng)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue使用luckyexcel實(shí)現(xiàn)在線表格及導(dǎo)出導(dǎo)入方式

    vue使用luckyexcel實(shí)現(xiàn)在線表格及導(dǎo)出導(dǎo)入方式

    這篇文章主要介紹了vue使用luckyexcel實(shí)現(xiàn)在線表格及導(dǎo)出導(dǎo)入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 解決v-for中使用v-if或者v-bind:class失效的問(wèn)題

    解決v-for中使用v-if或者v-bind:class失效的問(wèn)題

    今天小編就為大家分享一篇解決v-for中使用v-if或者v-bind:class失效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue加載json文件的方法簡(jiǎn)單示例

    Vue加載json文件的方法簡(jiǎn)單示例

    這篇文章主要介紹了Vue加載json文件的方法,結(jié)合實(shí)例形式分析了vue.js針對(duì)json文件的加載及數(shù)據(jù)讀取等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Vue項(xiàng)目保存代碼之后頁(yè)面自動(dòng)更新問(wèn)題

    Vue項(xiàng)目保存代碼之后頁(yè)面自動(dòng)更新問(wèn)題

    這篇文章主要介紹了Vue項(xiàng)目保存代碼之后頁(yè)面自動(dòng)更新問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 在Vue 中實(shí)現(xiàn)循環(huán)渲染多個(gè)相同echarts圖表

    在Vue 中實(shí)現(xiàn)循環(huán)渲染多個(gè)相同echarts圖表

    這篇文章主要介紹了在Vue 中實(shí)現(xiàn)循環(huán)渲染多個(gè)相同echarts圖表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue.js異步上傳文件前后端實(shí)現(xiàn)代碼

    vue.js異步上傳文件前后端實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了vue.js異步上傳文件前后端的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • vue 路由視圖 router-view嵌套跳轉(zhuǎn)的實(shí)現(xiàn)

    vue 路由視圖 router-view嵌套跳轉(zhuǎn)的實(shí)現(xiàn)

    這篇文章主要介紹了vue 路由視圖 router-view嵌套跳轉(zhuǎn),主要實(shí)現(xiàn)的內(nèi)容有制作一個(gè)登錄頁(yè)面,跳轉(zhuǎn)到首頁(yè),首頁(yè)包含菜單欄、頂部導(dǎo)航欄、主體,標(biāo)準(zhǔn)的后臺(tái)網(wǎng)頁(yè)格式,菜單點(diǎn)擊顯示不同的頁(yè)面,感興趣的小伙伴請(qǐng)參考下面文章內(nèi)容
    2021-09-09
  • vue中引入圖片的方法示例

    vue中引入圖片的方法示例

    在我們寫(xiě)vue項(xiàng)目中肯定會(huì)用到各種圖片,那么如何更好的使用圖片資源呢?下面這篇文章主要給大家介紹了關(guān)于vue中引入圖片的方法,需要的朋友可以參考下
    2023-06-06
  • Vue2.0 v-for filter列表過(guò)濾功能的實(shí)現(xiàn)

    Vue2.0 v-for filter列表過(guò)濾功能的實(shí)現(xiàn)

    今天小編就為大家分享一篇Vue2.0 v-for filter列表過(guò)濾功能的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue3.0使用ref和reactive來(lái)創(chuàng)建響應(yīng)式數(shù)據(jù)

    Vue3.0使用ref和reactive來(lái)創(chuàng)建響應(yīng)式數(shù)據(jù)

    ref?和?reactive?是?Composition?API?中用來(lái)創(chuàng)建響應(yīng)式數(shù)據(jù)的兩個(gè)核心函數(shù),在本篇文章中,我們將詳細(xì)講解如何使用?ref?和?reactive?來(lái)創(chuàng)建響應(yīng)式數(shù)據(jù),并展示它們之間的區(qū)別和使用場(chǎng)景,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

丰城市| 阿拉善盟| 平安县| 红河县| 绥阳县| 台南市| 惠东县| 思南县| 永和县| 渝北区| 阳泉市| 合江县| 蒲江县| 绥化市| 东港市| 汾阳市| 泊头市| 绥江县| 呼伦贝尔市| 临猗县| 南昌县| 横峰县| 八宿县| 新晃| 盖州市| 镇沅| 清流县| 阳高县| 淳安县| 田东县| 高碑店市| 洛扎县| 瑞金市| 达州市| 阳西县| 兴仁县| 安庆市| 丰宁| 武山县| 泽州县| 灵璧县|