解决vue里iscroll(better-scroll)点击触发两次和初始化无法滚动问题!
生活随笔
收集整理的這篇文章主要介紹了
解决vue里iscroll(better-scroll)点击触发两次和初始化无法滚动问题!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這兩個插件我用過好幾次,有時候很順利,不順利的時候真的很麻煩,一直無法滾動,明明style里已經有樣式了,就是滾動不了。
先說下在vue里的三種的引入方式:
<script type="text/javascript" src="src/assets/js/iscroll.js"></script>
這種比較方便就是只需在main.js里import一次,如果是第二種的話,需要在使用的每個組件都import一次
html:
<mast v-show="mastspecificat" :class="{'network':mastspecificat}" @touchmove.prevent><div class="mast-specificat-list-scroll mast-scrollspecificat"><div class="mast-specificat-list" :class="{'mast-specificat-list-height':mastspecificat}"><div class="mast-specificat-product" v-if="specifications.active === 't' ? true : false" v-for="(specifications,index) in product.specs"> //循環的列表</div></div></div></mast>重點css,需要滾動的容器不能設置高度,如下.mast-specificat-list這個滾動容器不要設置高度,我是設置高度后一直不能滾動,另外滾動的容器的子元素如果有浮動,父元素一定要清除浮動,另外當左右兩邊都有滾動的時候,不能用浮動,需要用絕對定位,否則滾動會導致布局亂了:
.mast-specificat-list-scroll{height: 150px;overflow: hidden;}.mast-specificat-list{/*height: 210px;*//*overflow: auto;*/-webkit-overflow-scrolling:touch;}因為html比較多,看著比較亂,html只需看css這兩個類,符合官網的html結構即可
如果是異步獲取數據后,需要在異步成功后進行初始化,例如:
show_category: function () {this.API.show_category().then((response) => {this.categorys = response;if(response.length > 0){this.get_product(response[0]['display_name'],response[0]['id']);}else{this.$store.state.mastloadding = false;mui.toast('沒有查詢到商品分類');}//拿到數據,并賦值后(需要進行監聽數據的變化),進行初始化let categorysscroll = new BScroll('.menu-content-slider',{scrollY: true,click: true}); }, (response) => {mui.toast('網絡錯誤');});}需要注意下v-if和v-show,如果局部滾動的容器是通過v-if顯示的,有可能會出現初始化的時候找不到DOM,使用v-show即可
使用iscroll后,子元素點擊事件會觸發兩次,可以如下解決:
//屏蔽掉click事件,自定義tap事件 let menuscroll = new BScroll('.mast-cart-content-parent',{scrollY: true,// click: truetap:"set_cart,changeMastDisplay" }); <span class="confirm-product-price" @tap="changeMastDisplay({'name':'mastflavour','product':product})"></span> <span class="menu-product-reduce" @tap="set_cart(product,{handle:1})"></span>總結
以上是生活随笔為你收集整理的解决vue里iscroll(better-scroll)点击触发两次和初始化无法滚动问题!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: token简述
- 下一篇: Java-异常03 自定义异常