设为首页 加入收藏

TOP

ios浏览器调试踩坑(1)----mescroll.js和vue-scroller(一)
2019-09-17 18:47:10 】 浏览:91
Tags:ios 浏览器 调试 ----mescroll.js vue-scroller

主要记录在ios浏览器出现触摸无限加载的情况

使用vue-scroller和mescroll.js/mescroll.vue先踩ios浏览器默认滑动会影响mescroll的方法调用。

首先给公共js加入以下代码禁用我们的页面在ios浏览器下会滑动上下页面。

 

 

<script>
//禁止ios手机双击放大以及缩小
window.onload = function () {
// 阻止双击放大
var lastTouchEnd = 0;
document.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault();
}
});
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);

// 阻止双指放大
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
});



//在ios浏览器调试的时候禁止页面滚动
var ios = navigator.userAgent.indexOf('iPhone');//判断是否为ios
if (ios != -1) {
//ios下运行
var scroll = document.getElementById("scroll")//你需要滑动的dom元素
touchScroll(scroll);
}

var canScroll = true;
function touchScroll(el) {
canScroll = false;
//el需要滑动的元素
el.addEventListener('touchmove', function (e) {
canScroll = true;
})
document.body.addEventListener('touchmove', function (e) {
//       alert(canScroll);
if (!canScroll) {
e.preventDefault(); //阻止默认事件(上下滑动)
} else {
//需要滑动的区域
var top = el.scrollTop; //对象最顶端和窗口最顶端之间的距离
var scrollH = el.scrollHeight; //含滚动内容的元素大小
var offsetH = el.offsetHeight; //网页可见区域高
var cScroll = top + offsetH; //当前滚动的距离

//被滑动到最上方和最下方的时候
if (top == 0) {
top = 1; //0~1之间的小数会被当成0
} else if (cScroll === scrollH) {
el.scrollTop = top - 0.1;
}
}
}, { passive: false }) //passive防止阻止默认事件不生效
}
}

</script>

 

 
 
 
下面给body设置样式:
 
 
html,
body {
height: 100%;
width: 100%;
position: fixed;
top: 0;
left: 0;
}

 

 
接下来就是vue页面使用vue-scroller或者mescroll.js/mescroll.vue;
 
mescroll.js
 
 
<template>
<div class="bg-box">
<div id="mescroll" class="mescroll">
<div>
<mescroll-vue ref="mescroll" :down="mescrollDown" :up="mescrollUp" @init="mescrollInit" class="scrollView">
<div class="invoiceList">
<div v-for="(item,index) in invoiceList" class="invoiceList-box" :key="index">
<a :class="item.isShow?'items-selected':'items'" @click="onItemClick(item,index)"></a>
<div class="information">
<p class="numvber">单号:{{item.OrderNo}}</p>
<p><span class="icon1"></span>始发地 ———— 目的地</p>
<p><span class="icon2"></span>件数 : {{item.Pse}}件</p>
<p><span class="icon2"></span>重量 : {{item.Weight}}KG</p>
<p class="invoicedate">{{item.DownOrderTime}}</p>
</div>
<p class="price">¥{{item.TotalMoney}}</p>
</div>
</div>
</mescroll-vue>
</div>
</div>
</div>
</template>

<script>
import MescrollVue from "mescroll.js/mescroll.vue";
export default {
c
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇charles代理设置与数据劫持 下一篇lodop+art-template实现web端漂亮..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目