微信小程序开发——scrollview组件

本文介绍了微信小程序中scrollview组件的使用,包括上下滚动和左右滚动的效果展示,并提供了具体的xxx.wxml结构代码和xxx.wxss样式代码示例。

效果图(上下滚动、左右滚动)

代码示例

xxx.wxml结构代码

<view class="sectionVertical">
  <view class="sectionTitle">vertical scroll</view>
  <scroll-view scroll-y="true" class='scrollVertical'>
    <view class="row bc_green"></view>
    <view class="row bc_red"></view>
    <view class="row bc_yellow"></view>
    <view class="row bc_blue"></view>
    <view class="row bc_red"></view>
    <view class="row bc_green"></view>
    <view class="row bc_blue"></view>
  </scroll-view>
</view>

 <view class="sectionHorizontal">
  <view class="sectionTitle">horizontal scroll</view>
  <scroll-view scroll-x='true'>
    <view class='scrollHorizontal'>
      <view class="row bc_green"></view>
      <view class="row bc_red"></view>
      <view class="row bc_yellow"></view>
      <view class="row bc_blue"></view>
      <view class="row bc_green"></view>
      <view class="row bc_red"></view>
      <view class="row bc_yellow"></view>
      <view class="row bc_blue"></view>
    </view>
  </scroll-view>
</view> 

xxx.wxss样式代码

/* pages/modules/containerPages/scrollviewPage/scrollview.wxss */
.sectionVertical{
  background-color: purple;

  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;

  /* 按比例布局 */
  /* position: absolute;
  width: 100%;
  height: 50%; */

  /* 按大小布局 */
   height: 230px; 
}
.sectionTitle{
  background-color: orange;

  text-align: center;
  color: red;
  line-height: 30px;
  font-size: 20px;

  /* 按比例布局 */
  /* width: 100%;
  height: 20%; */

  /* 按大小布局 */
  width: 100%;
  height: 30px;  
}

.scrollVertical{
  flex: 1;

  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;

  /* 按比例布局 */
  /* height: 80%; */

  /* 按大小布局 */
    height: 200px; 
}
.scrollVertical .row{
  flex: 1;

  /* 按大小布局 */
  height: 50px;
}

.sectionHorizontal{
  background-color: Moccasin;

  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;

  /* margin-top: 200px; */
  /* margin-bottom: 0px; */
  width: 100%;
  height: 130px;
}
.scrollHorizontal{
  display: flex;
  justify-content: flex-start;
  flex-direction: row; 
  flex-wrap: nowrap;     

  width: 100%; 
  height: 100px;
}
.scrollHorizontal .row{ 
  flex-shrink: 0;

  width: 100px;
  height: 100px;
}

.bc_green{
  background-color: MediumAquamarine;
}
.bc_red{
  background-color: LightPink;
}
.bc_yellow{
  background-color: LightGoldenrodYellow;
}
.bc_blue{
  background-color: MediumPurple;
}

### 微信小程序 `scroll-view` 组件使用教程 #### 一、基本概念与属性设置 `scroll-view` 是微信小程序中的一个重要组件,用于创建可滚动区域。此组件支持水平和垂直方向上的滚动,并提供多种配置选项来优化用户体验。 对于希望禁用默认节流机制的情况,在遇到快速滑动导致定位不准确的问题时,可以通过设置 `throttle="{{false}}"` 来关闭这一特性[^2]: ```html <scroll-view scroll-x="true" bindscroll="bindscroll" throttle="{{false}}"> </scroll-view> ``` 当涉及到安卓设备上可能出现的不必要的横向滚动条显示问题时,可以参照特定解决方案调整样式或结构以消除该现象[^1]。 #### 二、实现竖直/水平滚动效果 为了使 `scroll-view` 实现有效的滚动功能,特别是当采用 flex 布局而未生效的情况下,需要注意一些关键点。如果要启用纵向滚动,则需确保为 `scroll-view` 设定一个固定的高宽尺寸;而对于横向滚动而言,同样适用这样的原则——即给予明确的高度设定[^3]。 下面是一个简单的例子展示如何构建带有导航栏项的横向滚动视图[^4]: ```html <view class="container"> <scroll-view class="nav-container" scroll-x="true"> <block wx:for="{{navList}}" wx:key="index"> <view bindtap='activeNav' data-index="{{index}}" class='nav_item {{index === currentIndexNav ? "active" : ""}}'> {{item.text}} </view> </block> </scroll-view> </view> <style> /* 定义容器宽度 */ .container { width: 100%; } .nav-container { white-space: nowrap; overflow-x: hidden; } .nav_item { display: inline-block; padding: 8px 16px; margin-right: 8px; border-radius: 4px; cursor: pointer; } .active { background-color: #ebebeb; } </style> ``` 上述代码片段展示了通过循环渲染多个子元素形成连续排列的效果,并允许用户点击切换选中状态的同时保持整体内容可以在一定范围内自由移动。 #### 三、处理滚动事件及动画过渡 除了静态布局外,还可以利用绑定函数监听用户的交互行为(如拖拽),并据此执行自定义逻辑或是平滑地滚至下一个目标位置。这通常涉及到了解当前滚动偏移量以及计算下一步的目标坐标等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值