微信小程序组件之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 相关文章推荐
一些不错的js函数ajax
Aug 20 Javascript
JQuery+DIV自定义滚动条样式的具体实现
Jun 25 Javascript
js实现点击链接后窗口缩小并居中的方法
Mar 02 Javascript
jQuery选择器基础入门教程
May 10 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
全面解析Bootstrap中nav、collapse的使用方法
May 22 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
Node.js连接postgreSQL并进行数据操作
Dec 18 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
微信小程序自定义modal弹窗组件的方法详解
Dec 20 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+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
Dojo 学习要点
2010/09/03 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
python基础练习之几个简单的游戏
2017/11/10 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
Java程序员综合测试题
2014/04/25 面试题
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
个人买房协议书范本
2014/10/06 职场文书
公司停电通知
2015/04/15 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
Golang的继承模拟实例
2021/06/30 Golang
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python