就像图里展示的那样,我要的是这种效果,滑动一下就进入下个页面,而不是划一下就动一点点。
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