window.onscroll=()=>{
let htmlscroheight= document.documentElement.scrollHeight;
let htmlscrolltop= document.documentElement.scrollTop;
let htmlclientheight= document.documentElement.clientHeight;
let sum=Math.floor(htmlscrolltop+htmlclientheight);
console.log(htmlscroheight,htmlscrolltop,htmlclientheight,sum);
if(htmlscroheight==sum){
this.geturl();
}
}
-
{{life.description}}
yujingxiacai
这里首先我们是在vue声明周期的挂载处mounted(){ }绑定没错,但是就是不起作 用,但是呢,如果你再控制台手动敲window.onscroll监控事件却是好使的。因
问题很混乱,其实很自然。
js的写法没错,测试,发现当前监控的文档元素是整个html,怎么动都没用,scrolltop永远是0。这时就因该考虑考虑样式的问题了。
我们知道我们的被滚动对象应该是我们的ul,但是此时此刻我们发现我们的ul是固定定位的,所以当然滚动事件是无法启动的,后来发现去掉了,但是还是不行,这就很懵逼了,
这里由于我们的结构是ul渲染在app里面,而此时app是fixed定位的,这下去掉app的fixed定位,刚刚好使!!!
对于window.onscorll监听事件
当页面的滚动条滚动时,就会执行监听事件里面的事件
所以前提是保证页面能滚动,我们fixe定位会使我们的滚动失效,当我们fixed定位后的元素里面嵌套的子元素也会被fixed定位了,当有fixed定位时不要用嵌套的思想做,而是用脱离文档流的原理,让应该fixed定位的元素不内含其他不需要fixed定位的元素,而是并列关系 或 其他组合关系。
还有一个问题就是上线后的手机端无法向下滚动,在pc Browser端是可以的,而且pc端的浏览器用移动端调试模式也是可以滚动的。
问题真的是解决不完,估计是手机端禁用了滚动事件,但是之前好使啊。。。~. ~
这里估计怕不是是要为手机端加一个overflow-Y:scroll;