小程序上滑下滑效果

微信   2024-12-28 09:54   79   0  

6928_hdpo_1602.gif

就像图里展示的那样,我要的是这种效果,滑动一下就进入下个页面,而不是划一下就动一点点。

H5营销页面倒是很经常能看到这种效果。

本人前端菜鸡,百度了好久,都是什么touchstart和touchend,还有轮播图的实现效果。

但是我之前用过touchstart和touchend,感觉其实体验很不好。

在我的手机上能体现出明细的卡顿效果,有的时候还不生效,可能是在提醒我可以换手机了。

轮播图的话,这次我要实现的效果还要左右滑动,左右滑动用轮播图实现,这个上下滑动就不能用轮播图实现了。

要注意的是,这个效果我这边只在手机端能实现,电脑端是出现不了这个效果的。

index.wxml

<view class="page-section-spacing">
  <scroll-view scroll-y="true" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->{toView}}" scroll-top="{<!--{C}%3C!%2D%2D%20%2D%2D%3E-->{scrollTop}}" paging-enabled="true" enhanced="true" class="scroll-view" show-scrollbar="false">
    <view id="demo1" class="scroll-view-item demo-text-1">亚洲</view>
    <view id="demo2" class="scroll-view-item demo-text-2">欧洲</view>
    <view id="demo3" class="scroll-view-item demo-text-3">美洲</view>
  </scroll-view>
</view>
<view class="page-section-spacing">
  <scroll-view scroll-y="true" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}" paging-enabled="true" enhanced="true" class="scroll-view" show-scrollbar="false">
    <view id="demo1" class="scroll-view-item demo-text-1">美国</view>
    <view id="demo2" class="scroll-view-item demo-text-2">日本</view>
    <view id="demo3" class="scroll-view-item demo-text-3">韩国</view>
  </scroll-view>
</view>


index.js

const order = ['demo1', 'demo2', 'demo3']

Page({
  onShareAppMessage() {
    return {
      title: 'scroll-view',
      path: 'page/component/pages/scroll-view/scroll-view'
    }
  },

  data: {
    toView: 'green'
  },

  upper(e) {
    console.log(e)
  },

  lower(e) {
    console.log(e)
  },

  scroll(e) {
    console.log(e)
  },

  scrollToTop() {
    this.setAction({
      scrollTop: 0
    })
  },

  tap() {
    for (let i = 0; i < order.length; ++i) {
      if (order[i] === this.data.toView) {
        this.setData({
          toView: order[i + 1],
          scrollTop: (i + 1) * 200
        })
        break
      }
    }
  },

  tapMove() {
    this.setData({
      scrollTop: this.data.scrollTop + 10
    })
  }
})


index.wxss

page{
  height: 100%;
}
.page-section-spacing{
  /* margin-top: 60rpx; */
  height: 100%;
}
.scroll-view{
  height: 100%;
}
.scroll-view_H{
  white-space: nowrap;
}
.scroll-view-item{
  height: 100%;
}
.scroll-view-item_H{
  display: inline-block;
  width: 100%;
  height: 100%;
}
.demo-text-1{
  background-color: green;
}
.demo-text-2{
  background-color: rgb(136, 133, 133);
}
.demo-text-3{
  background-color: blue;
}


来源:https://www.jb51.net/article/236340.htm

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。