微信小程序scroll-view滑动的时候滑动到指定位置
效果实现
1.滑动的时候调动滑动事件bindscroll="scroll"
-
<view style="position: fixed;z-index: 100;" wx:if="{{content.isShow}}">
-
我要在头部定义的标题栏
-
</view>
-
-
<scroll-view scroll-y="true" bindscroll="scroll" scroll-with-animation scroll-top="{{scrolltop}}">
-
<view>这里面是你的一大堆内容</view>
-
</scroll-view>
scroll-with-animation 过渡动画
scroll-top="{{scrolltop}}" 距离顶部多少高度
2.在调用scroll里面的事件函数
-
data: {
-
content: {
-
isShow: false
-
},
-
scrolltop:0,
-
}
这里使用的是获取手机屏幕大小的宽度res.screenWidth来自适应头部悬浮的位置的显示与隐藏
opacity:( 1 - e.detail.scrollTop / 100 / 3).toFixed(2) 目的是为了页面上划或者下划的时候实现渐显渐隐效果,但是页面调用的时候卡动,所以就直接去除掉了这个效果.
-
scroll: function(e:any) {
-
const res = wx.getSystemInfoSync()
-
if(res.screenWidth <= 330){
-
if (e.detail.scrollTop >= 300) {
-
if (!this.data.content.isShow) {
-
this.setData({
-
'content.isShow': true
-
})
-
}
-
} else {
-
if(e.detail.deltaY < 0){
-
// console.log("向下滑动")
-
// opacity:( 1 - e.detail.scrollTop / 100 / 3).toFixed(2)
-
this.setData({scrolltop:300})
-
}else{
-
// console.log("向上滑动")
-
this.setData({scrolltop:0})
-
}
-
if (this.data.content.isShow) {
-
this.setData({
-
'content.isShow': false
-
})
-
}
-
}
-
}else if(res.screenWidth > 330 && res.screenWidth <= 365){
-
if (e.detail.scrollTop >= 330) {
-
if (!this.data.content.isShow) {
-
this.setData({
-
'content.isShow': true
-
})
-
}
-
} else {
-
if(e.detail.deltaY < 0){
-
this.setData({scrolltop:330})
-
}else{
-
this.setData({scrolltop:0})
-
}
-
if (this.data.content.isShow) {
-
this.setData({
-
'content.isShow': false
-
})
-
}
-
}
-
}else if(res.screenWidth > 365 && res.screenWidth <= 420){
-
if (e.detail.scrollTop >= 377) {
-
if (!this.data.content.isShow) {
-
this.setData({
-
'content.isShow': true
-
})
-
}
-
} else {
-
if(e.detail.deltaY < 0){
-
this.setData({scrolltop:377})
-
}else{
-
this.setData({scrolltop:0})
-
}
-
if (this.data.content.isShow) {
-
this.setData({
-
'content.isShow': false
-
})
-
}
-
}
-
}else{
-
if (e.detail.scrollTop >= 395) {
-
if (!this.data.content.isShow) {
-
this.setData({
-
'content.isShow': true
-
})
-
}
-
} else {
-
if(e.detail.deltaY < 0){
-
this.setData({scrolltop:395})
-
}else{
-
this.setData({scrolltop:0})
-
}
-
if (this.data.content.isShow) {
-
this.setData({
-
'content.isShow': false
-
})
-
}
-
}
-
}
-
},
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfjbif
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01