微信小程序组件之srcoll-view的详解


Posted in Javascript onOctober 19, 2017

微信小程序组件之srcoll-view的详解

今天记录一下scroll-view学习中遇到的问题及解决办法,希望能对其他同学有所帮助。

首先展示一下想达到的效果。↓ vertical scroll实现上下滚动,horizontal实现左右滚动。

微信小程序组件之srcoll-view的详解

先附上wxml的代码。

<view class="container"> 
 <view> 
  <text>vertical scroll</text> 
  <scroll-view scroll-y class="scroll-view-y" scroll-top="{{scrollTop}}"> 
   <view id="green" class="scroll-y-item bg_green"></view> 
   <view id="red" class="scroll-y-item bg_red"></view> 
   <view id="blue" class="scroll-y-item bg_blue"></view> 
   <view id="yellow" class="scroll-y-item bg_yellow"></view> 
  </scroll-view> 
 </view> 
 
 <view> 
  <text>horizontal scroll</text> 
  <scroll-view scroll-x class="scroll-view-x" style="width:100%"> 
   <view class="scroll-view-x"> 
    <view class="scroll-x-item bg_green"></view> 
    <view class="scroll-x-item bg_red"></view> 
    <view class="scroll-x-item bg_blue"></view> 
    <view class="scroll-x-item bg_yellow"></view> 
   </view> 
  </scroll-view> 
 </view> 
</view>

1.整个界面由一个view包装起来,该view的class为创建quickStart时自带,可根据需要自己调整。之后,两个view各包装一个scrollview及其上面的text文本。

2.第一个scroll-view需竖直滚动,为其设置scroll-y="{{true}}"(或者直接写scroll-y)。该scrollview的class为“scroll-view-y”,之后会附上代码。scroll-top属性设置滚动条的初始位置,scrollTop在js文件的data中声明赋值(不需要可去掉)。

3.scrollview中四个不用颜色的view,除颜色外其他属性相同。

为竖直scrollview的wxss代码

.scroll-view-y { 
 height: 200px; 
 width: 100%; 
} 
 
.scroll-y-item { 
 height: 70px; 
 width: 100%; 
}

4.水平方向的scrollview与竖直方向基本类似,着重说一下区别。

(1) 竖直方向的scrollview直接包住4个不同颜色的view,水平方向需要先用view包住各颜色块,这是为了保证各颜色块水平排布。

(2) wxss文件    

为水平scrollview的wxss代码,scroll-view-x为水平滑块的属性,scroll-x-item为水平滑块中各颜色块的属性。

.scroll-view-x { 
 width: 300px; 
 height: 100px; 
 display: flex; 
 overflow: scroll; 
} 
 
.scroll-x-item { 
 width: 95px; 
 height: 100%; 
 display: inline-table; 
}

可以看到:

①水平滑块多了两个属性,display和overflow。display设置为flex弹性伸缩显示,overflow设置当子布局超出父容器时scroll展示。

②颜色块display属性设置为 inline-table,这个很重要!!!最开始没有写这个属性,很久都无法实现scrollview的水平滑动。在我不断的尝试下,终于试出来了,很开心!吐舌头

附上微信官方属性说明↓

属性名 类型 默认值 说明
scroll-x Boolean false 允许横向滚动
scroll-y Boolean false 允许纵向滚动
upper-threshold Number 50 距顶部/左边多远时(单位px),触发 scrolltoupper 事件
lower-threshold Number 50 距底部/右边多远时(单位px),触发 scrolltolower 事件
scroll-top Number   设置竖向滚动条位置
scroll-left Number   设置横向滚动条位置
scroll-into-view String   值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
scroll-with-animation Boolean false 在设置滚动条位置时使用动画过渡
enable-back-to-top Boolean false iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向
bindscrolltoupper EventHandle   滚动到顶部/左边,会触发 scrolltoupper 事件
bindscrolltolower EventHandle   滚动到底部/右边,会触发 scrolltolower 事件
bindscroll EventHandle   滚动时触发,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 

Javascript 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
jquery简单实现鼠标经过导航条改变背景图
Dec 17 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
Javascript中的几种继承方式对比分析
Mar 22 Javascript
基于JQuery实现分隔条的功能
Jun 17 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
jQuery插件fullPage.js实现全屏滚动效果
Dec 02 Javascript
jQuery.parseHTML() 函数详解
Jan 09 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
在axios中使用params传参的时候传入数组的方法
Sep 25 Javascript
JS实现点击循环切换显示内容的方法
Oct 19 #Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 #Javascript
vue-cli如何引入bootstrap工具的方法
Oct 19 #Javascript
JS开发中基本数据类型具体有哪几种
Oct 19 #Javascript
微信小程序支付之c#后台实现方法
Oct 19 #Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 #Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 #Javascript
You might like
php验证session无效的解决方法
2014/11/04 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
Java基础知识面试要点
2016/07/29 面试题
为什么要做架构设计
2015/07/08 面试题
父亲追悼会答谢词
2014/01/17 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
环境卫生倡议书
2014/08/29 职场文书
学校师德师风整改方案
2014/10/28 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
施工安全责任协议书
2016/03/23 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL