微信小程序 scroll-view的使用案例代码详解
scroll-view
:滚动视图
使用view
其实也能实现滚动,跟div
用法差不多
而scroll-view
跟view
最大的区别就在于:scroll-view
视图组件封装了滚动事件,监听滚动事件什么的直接写方法就行。
scroll-view
纵向滚动添加属性scroll-y
,然后写一个固定高度就行了,我主要说一下scroll-view
的横向滚动scroll-x
:
我使用了display: flex;
布局,特么的直接写在scroll-view上面,显示出来的结果总是不对头,试了好多次,得到了下面两种写法;
第二种在scroll-view上添加了enable-flex
启用flex布局属性,启用后内部就能使用flex布局了,不然你会发现内部布局始终是纵向的。
得到的效果是一样的,能使用scroll-view事件。
wxml:
<view class="order_item_body"> <scroll-view scroll-x="true" scroll-into-view="{{toView}}" scroll-left="{{scrollLeft}}"> <view class="order_item_list"> <view class="order_item_goods" wx:for="{{order.detail}}" wx:key="index" id="detail{{index}}"> <image src="{{item.image}}" mode="widthFix"></image> <text>{{item.count+index}}</text> </view> </view> </scroll-view> </view>
或
<scroll-view scroll-x bindscroll="scroll" scroll-into-view="{{toView}}" scroll-left="{{scrollLeft}}" enable-flex="{{true}}"> <view class="order_item_list"> <view class="order_item_goods" wx:for="{{order.detail}}" wx:key="index" id="detail{{index}}"> <image src="{{item.image}}" mode="widthFix"></image> <text>{{item.count+index}}</text> </view> </view> </scroll-view>
wxss:
.order_item_body{ width: 100%; height: 196rpx; } .order_item_list{ /* width: 100%; */ height: 100%; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; /* border: 1px solid blue; */ } .order_item_goods { width: 200rpx; height: 192rpx; position: relative; } .order_item_goods>image { width: 160rpx; height: 160rpx; margin: 16rpx 20rpx; border: 1px solid rgba(0, 0, 0, 0.5); } .order_item_goods>text { height: 30rpx; line-height: 30rpx; padding: 0rpx 5rpx; font-size: 24rpx; color: rgba(255, 255, 255); border-top-left-radius: 10rpx; background-color: rgba(0, 0, 0, 0.5); position: absolute; bottom: 16rpx; right: 20rpx; }
效果图:
求推荐一款免费且没有水印的gif制作软件,有水印看到就烦。
ps:下面看下微信小程序scroll-view的scroll-into-view无效如何解决
最近在写小程序项目遇到这么一个问题:在使用scroll-into-view的时候无效。
在网上查了一遍,给出的答案有:
1.给scroll-view要设置高度,必须设置上scroll-y或者scroll-x为true(必须要的)
2.scroll-into-view初始化设置的时候,可能因为页面或者数据未加载不能跳转。需要在js里手动setData一下。
一顿操作猛如虎,一看还是没有效果。还是接着找原因吧。。
最后发现,原来是在给scroll-view设置高度的时候,不能用%来设置高度,改成固定高度类似500rpx就可以了
最后贴上代码:
<view class="left" wx:for="{{cateItems}}" wx:key="{{cateItems}}"> <view class='title' bindtap="navItem">{{item.name}}</view> </block> <scroll-view class="right" scroll-y="true" scroll-into-view="{{ intoindex }}" style="height: 1100rpx;" scroll-with-animation> <view class="clearfix" wx:for="{{cateItems}}" id="intoindex{{item.id}}"></view> </scroll-view> Page({ data: { intoindex:'' }, navItem(e){ const that = this var id = e.target.id that.setData({ intoindex:'intoindex'+id }) } })
总结
到此这篇关于微信小程序 scroll-view的使用案例代码详解的文章就介绍到这了,更多相关微信小程序 scroll-view的使用 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!