微信小程序 页面滚动头部固定顶部

http://www.rioyi.com/a/news/fangan/235.html

https://www.jb51.net/article/160371.htm

https://www.cnblogs.com/lishuang2243/p/10998432.html

我的代码:

在小程序自带的方法 onPageScroll中可以得到滑动距离顶部的距离,在data公共数据中定义scrollTop,代码如下

<view class="title {{scrollTop > 30 ? 'topnav' : ''}}">

data: {
  scrollTop:0,
}

onPageScroll: function (e) {
    var _this = this;
    // console.log(e.scrollTop)
    _this.setData({
    scrollTop:e.scrollTop
    })
  },

得到滑动距离后,当页面滑动超出需要固定元素距离顶部的距离后使用css样式控制其定位,

因此为要在scroll-view中定义class="title {{scrollTop> 30 ? 'topnav' : ''}}"

30就是我需要定义的模块距离顶部的距离,当超过这个距离就会执行css的topnav样式

/* 头部固定 */
.topnav{
  position: fixed;
  top: 0rpx;
  left: 0;
  z-index:99;
  background: #fff;
  padding: 3%;
  width: 94%;
  z-index:999;
}

否则就执行愿有的css样式。

第二种:使用scroll-view 配合bindscroll

wxml:
<scroll-view style="width:100%;height: 100%;" scroll-y="true" bindscroll="scrollTopFun">
<view class="title {{scrollTop > 30 ? 'topnav' : ''}}">
</view>
</scroll-view>

wxjs:
data: {
  scrollTop:0,
}
  //头部固定
  scrollTopFun(e){
    let _this = this;
    let scrollTop = e.detail.scrollTop;
    _this.setData({
    scrollTop:scrollTop
 })

wxss:
/* 头部固定 */
.topnav{
  position: fixed;
  top: 0rpx;
  left: 0;
  z-index:99;
  background: #fff;
  padding: 3%;
  width: 94%;
  z-index:999;
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值