移动端微信浏览器和ios页面回弹问题

以下方法只适合页面为一屏幕的时候

 

var hei = $(window).height();
//可局部滚动处理
var overscroll = function(el) {
el.addEventListener('touchstart', function() {
var top = el.scrollTop
, totalScroll = el.scrollHeight
, currentScroll = top + el.offsetHeight
//If we're at the top or the bottom of the containers
//scroll, push up or down one pixel.
//
//this prevents the scroll from "passing through" to
//the body.
if(top === 0) {
el.scrollTop = 1
}else if(currentScroll === totalScroll) {
el.scrollTop = top - 1
}
})
el.addEventListener('touchmove', function(evt) {
//if the content is actually scrollable, i.e. the content is long enough
//that scrolling can occur
if(el.offsetHeight < el.scrollHeight)
evt._isScroller = true
})
}

//需要继续保留可以滚动的结构class名
overscroll(document.querySelector('.可滚动的class名'));
overscroll(document.querySelector('.可滚动的class名'));
document.body.addEventListener('touchmove', function(evt) {
//In this case, the default behavior is scrolling the body, which
//would result in an overflow. Since we don't want that, we preventDefault.
if(!evt._isScroller) {
evt.preventDefault()
}
})

posted @ 2017-12-12 13:23  small_lady  阅读(1911)  评论(0编辑  收藏  举报