内容字号: 默认 大号 超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到宋体切换到微软雅黑

[已解决]手机端$(document).scrollTop()取值总为0的问题

发布:2018-02-13 浏览: 评论(
关于手机端jQuery下$.scrollTop()的取值总为0的问题,在项目中发现手机端下,如果页面滚动条已经滚动到一定距离,再后退页面,然后再回到页面,会发现$(document).scrollTop()得到的值总是0;再次刷新页面也还是同样的问题,网上找遍了所有方法,最终没能解决,至此一直认为是取值兼容性的问题,后面才发现其实又是bfcache的闹的,于是马上想到了pageshow方法;于是轻松解决问题,代码如下:
  $(window).on("pageshow",function(){

       var bdScrollTop=$(document).scrollTop();
	alert(bdScrollTop);			
  })
  注意:上面的写法是拿不到bfcache属性的;
  如果你要判断当前环境是否存在BFcache(BF缓存),则要这么写:

window.addEventListener("pageshow",function(e){
	var bdScrollTop=$(document).scrollTop();
	alert(bdScrollTop);
	
	//判断当前页面是否来自bfcache;
	var e=e||event;
	if(!e.persisted){
		//如果当前环境不是来自bfcache;
		alert(e.persisted);
	}
},false)
  


//其他情况下取值为0也可以这么做

//其实解决问题的办法也很简单,就是把要写的代码加到pageshow方法里面来即可,无论怎么进入页面都可以取到scrollTop的值;ok!
前端新手交流群
欢迎加入web前端新手交流qq群:734802480

更多文章

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。


Copyright © 2014-2019 seozhijia.net 版权所有-粤ICP备13087626号-4