小程序设置overflow:hidden之后,页面会滚动到顶部
发布于 7 年前 作者 likong 8721 次浏览 来自 问答

点击按钮,显示弹出层,将view设置为overflow:hidden,  view会滚动到顶部,而不是在之前滚动条的位置,需要怎么解决?

我按下面方法设置不起作用

页面代码:

view style "width:100%;">

     view style "height:3000rpx;" class "{{ohidden?'o-hidden p-fixed':'o-empty p-static'}}">

         view header </ view >

         view style "margin-top:2900rpx;"> footer </ view >

         button bindtap "button_click"> 显示弹窗 </ button >

     </ view >

</ view >


view class "mask" wx:if "{{showAlert}}">

     view class "showModal">

    弹窗

     </ view >

</ view >


css:

.mask {

     width: 100% ;

     height: 100% ;

     position: fixed ;

     top: ;

     left: ;

     background: rgba( .7 ;

}

.showModal {

     position: fixed ;

     top: 50% ;

     left: 50% ;

     transform: translate( -50% -50% ;

     width: 70% ;

     height: 600 rpx ;

     background: white ;

}

.o-hidden {

    overflow: hidden ;

}

.o-empty {

    overflow:'';

}

.p-fixed {

    position: fixed ;

}

.p-static {

    position: static ;

}


js: 

Page({

    data: {

        showAlert: false ,

        ohidden: false,

        scroll_top:0

    },

    button_click: function (){

         this .setData({

            showAlert: true ,

            ohidden: true

        })

       if(wx.pageScrollTo){//滚动到滚动条位置

           wx.pageScrollTo({

               scrollTop: this.data.scroll_top

           })

       }

    },

    //获取滚动条当前位置

    onPageScroll: function(e){

       console.log(e.scrollTop);

       console.log(e);

       this.setData({

           scroll_top: e.scrollTop

       })

    }

})


2 回复

这个页面有1500px,点击底部的button ,显示弹窗

弹窗显示,页面自动滚动到顶部

想让弹窗显示的时候,页面仍然在底部

没懂你啥意思, wx.pageScrollTo 那一段 放到 setData的回调试试

回到顶部