js同样的代码,window的scroll事件无法在安卓微信中触发,pc和ios正常,如何解决?

young8704
  • 263

想要判断指定的元素 是否进入可视区域,代码如下:

window.addEventListener('scroll',function(){
// $(window).scroll(function(){
    var element=document.getElementById('div_content_2');
    var elementHeight=element.clientHeight; //不随页面滚动变化
    var elementOffsetTop=element.offsetTop; //距离顶部的距离,不随页面滚动变化
    var windowHeight=document.documentElement.clientHeight; //浏览器窗口的高度,不随页面滚动变化
    var windowScrollTop=document.documentElement.scrollTop; //页面垂直的滚动距离,随页面滚动变化

    if(windowScrollTop-windowScrollTop_last>0){
        //from top to bottom
        // console.log('top->bottom');
        $('#div_console').text('top->bottom');
        // windowScrollTop由小变大
        // windowScrollTop = elementOffsetTop - windowHeight (目标元素刚进入可视区域)
        // windowScrollTop = elementOffsetTop + elementHeight(目标元素刚离开可视区域)
        // if((windowScrollTop>=elementOffsetTop-windowHeight)&&(windowScrollTop<=elementOffsetTop+elementHeight)){
        if((windowScrollTop>=elementOffsetTop-windowHeight+ratio_height*elementHeight)&&(windowScrollTop<=elementOffsetTop+elementHeight)){
            // console.log('进入可视区域');
            $('#div_console').text('进入可视区域');
            anime_in();
        }else{
            // console.log('不在可视区域');
            anime_out();
        }
    }else{
        //from bottom to top
        // console.log('bottom->top');
        // windowScrollTop由大变小
        // windowScrollTop = elementOffsetTop + elementHeight(目标元素刚进入可视区域)
        // windowScrollTop = elementOffsetTop - windowHeight (目标元素刚离开可视区域)
        if((windowScrollTop<=elementOffsetTop+(1-ratio_height)*elementHeight)&&(windowScrollTop>=elementOffsetTop-windowHeight)){
            // console.log('进入可视区域');
            anime_in();
        }else{
            // console.log('不在可视区域');
            anime_out();
        }
    }
    windowScrollTop_last=windowScrollTop;
});

完整的页面:http://makusi.cn/Home/Test/sc...

实测PC和ios都是正常的,但是在安卓微信中无法触发,
请问各位有知道如何解决的吗?

回复
阅读 764
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏