微信小程序wxs实现吸顶效果
网络编程 2021-07-04 15:02www.168986.cn编程入门
这篇文章主要为大家详细介绍了微信小程序wxs实现吸顶效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在.js文件中使用page的onPageScroll事件和scroll-view的scroll事件中产生卡顿 (setData 渲染会阻塞其它脚本执行,导致了整个用户交互的动画过程会有延迟), 所以使用wxs响应事件来实现吸顶效果。wxs响应事件基础库 2.4.4 开始支持,低版本需做兼容处理。
附上文档链接
吸顶效果
使用scroll-view组件实现滚动效果,页面和scroll-view组件的高度设成100%,当竖向滚动条大于等于导航到顶部距离时,导航变成固定定位,固定显示在顶部,反之,导航取消定位。
<!-- wxml文件 --> <wxs module="scroll1" src="./scroll1.wxs"></wxs> <!-- 引入wxs文件 --> <scroll-view bindscroll="{{scroll1.scrollEvent}}" data-="{{navTop}}" style='height:100%;' scroll-y> <image src='/images/_image.png' mode='aspectFill' class='nav-image'></image> <view class='navigation'> <view wx:for="{{navBarList}}" wx:key="">{{item}}</view> </view> <view class='div' wx:for="{{8}}" wx:key="">第{{index}}部分</view> </scroll-view>
/ wxss文件 / page{ font-size: 30rpx; background: #fea; height: 100%; } .div{ width: 100%;height: 500rpx; } .nav-image{ width: 100%;height: 400rpx; vertical-align: middle; } .navigation{ width: 100%; height: 100rpx; display: flex; justify-content: center; align-items: center; background: #fff; :0;left:0; /只有使用定位才起效果/ } .navigation view{ padding: 15rpx 20rpx; margin: 0 20rpx; }
//wxs文件 var scrollEvent = function (e, ins) { var scrollTop = e.detail.scrollTop; var navTop = e.currentTarget.dataset.; if (scrollTop >= navTop) { ins.selectComponent('.navigation').setStyle({ "position": 'fixed' }) } else { ins.selectComponent('.navigation').setStyle({ "position": 'static' }) } } module.exports = { scrollEvent: scrollEvent }
//js文件 Page({ / 页面的初始数据 / data: { navBarList: ['喜欢', '点赞', '收藏'], navTop:0, //导航距顶部距离 }, / 生命周期函数--监听页面加载 / onLoad: function (options) { this.getNavTop(); }, / 获取导航距顶部距离 / getNavTop() { var that = this; var query = wx.createSelectorQuery(); query.select('.navigation').boundingClientRect(function (data) { that.setData({ navTop: data., }) }).exec(); }, })
渐变导航效果
当竖向滚动条滚动到指定位置时,出现导航条,导航条透明度也随滚动条位置发生变化。
<!-- wxml文件 --> <wxs module="scroll2" src="./scroll2.wxs"></wxs> <scroll-view bindscroll="{{scroll2.scrollEvent}}" style='height:100%;' scroll-y> <!-- 头部 --> <image src='/images/_image.png' mode='aspectFill' class='nav-image'></image> <view class='nav-icon'> <navigator open-type='navigateBack' class='back-icon'></navigator> </view> <view class='nav-bar' style='opacity:0;'> <navigator open-type='navigateBack' class='back-icon'></navigator> <view>我是导航条</view> </view> <!-- 头部 END --> <view class='div' wx:for="{{8}}" wx:key="">第{{index}}部分</view> </scroll-view>
/ wxss文件 / page{font-size: 30rpx;background: rgba(200, 58, 57, 0.3);height: 100%;} .div{width: 100%;height: 500rpx;} .nav-image{width: 100%;height: 400rpx;vertical-align: middle;} .nav-icon,.nav-bar{ position: fixed; : 0;left: 0; height: 120rpx; } .nav-bar{ width: 100%; display: flex; align-items: center; background: #fff; } .back-icon{ width: 100rpx; height: 100%; display: flex; justify-content: center; align-items: center; } .back-icon::after{ /利用伪类元素模拟出返回icon/ content: ""; display: block; width: 25rpx;height: 25rpx; border-: 5rpx solid #fff; border-left: 5rpx solid #fff; transform: rotate(-45deg); } .nav-bar .back-icon::after{border-color: #000;}
//wxs文件 var scrollEvent=function(e,ins){ var scrollTop=e.detail.scrollTop; if(scrollTop>100){ ins.selectComponent(".nav-icon").setStyle({ "opacity":"0" }) var dot = (scrollTop-100)/50; ins.selectComponent(".nav-bar").setStyle({ "opacity": dot }) }else{ ins.selectComponent(".nav-bar").setStyle({ "opacity": "0" }) var dot = (100-scrollTop) / 50; ins.selectComponent(".nav-icon").setStyle({ "opacity": dot }) } }; module.exports={ scrollEvent: scrollEvent };
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:微信小程序静默登录的实现代码
下一篇:微信小程序实现吸顶特效
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程