详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现


Posted in Javascript onMarch 14, 2019

一、实践踩坑

项目使用mpvue开发

1. scroll-view默认是不滚动的。。所以要先设置scroll-x="true"或者scroll-y="true"

详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现

2. 在scroll-view里面添加定宽元素,超过scroll-view宽度(设置了100%,即屏幕宽度)后,它竟然换行了。所以要scroll-view的样式要这样设置:

scroll-view {
   width: 100%;
   white-space: nowrap; // 不让它换行
  }

3. 然后在定宽元素里边添加子容器:

// html大概长这样
<scroll-view scroll-x="true">
 <div class="tab-item">
  <img class="content-icon"/>
  <div></div>
 </div>
 <div class="tab-item">
  <img class="content-icon"/>
  <div></div>
 </div>
 <div class="tab-item">
  <img class="content-icon"/>
  <div></div>
 </div>
</scroll-view>

// css相应就大概长这样
scroll-view {
  display: flex;
  flex-wrap: nowrap;
}
.tab-item {
  display: flex;
  justify-content: center;
  width: 25%;
  ...
}

然后发现.tab-item并没有排在一行上。。说明scroll-view.tab-item都设置display: flex无效?无奈之下,只好在它外边再包一层,然后样式设置display: inline-block。此时正确姿势如下:

// html
<div class="scroll-view-container">
 <scroll-view scroll-x="true" :scroll-into-view="toView">
  <div class="tab-container">
   <div class="tab-item">
    <img class="content-icon"/>
    <div></div>
   </div>
  </div>
 </scroll-view>
</div>

// css变成这样子
scroll-view {
 width: 100%;
 white-space: nowrap; // 不让它换行
}

.tab-container {
 display: inline-block;
 width: 25%;
}

.tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  ...
}

到这里,scroll-view就基本如我所愿了,大概长这样:

详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现

二、隐藏滚动条

在网上搜了很多,都是说加上这段代码就可以:

/*隐藏滚动条*/

::-webkit-scrollbar{

  width: 0;
  
  height: 0;
  
  color: transparent;

}

或者有的人说这样子:

/*隐藏滚动条*/

::-webkit-scrollbar{

  display: none;

}

然而两种方法我都试过,scroll-view的滚动条依然存在。。测试机型是安卓机子。

但是用display: none这种方法是可以隐藏掉页面的滚动条的,就是scroll-view的滚动条没隐藏掉。

后来,在小程序社区看到官方人员这样子解答:

详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现

是的,就是这种野路子。当然 ,它下面的评论里也有人提供了另一种解决思路方法,但我还是选择了官方说的那种野路子方法。传送门

实现思路就是,在scroll-view外边再包一个容器,它的高度小于scroll-view的高度,这样就会截掉滚动条,达到隐藏了滚动条的效果。

// scss
.scroll-view-container { // 包裹scroll-view的容器
  height: $fakeScrollHeight;
  overflow: hidden; // 这个设置了就能截掉滚动条啦
  scroll-view {
   width: 100%;
   white-space: nowrap;
  }
 }

 .tab-container { // 我这里是用.tab-container来撑开scroll-view的高度,所以高度在它上面设置,加上padding,那么它就会比外层容器(.scroll-view-container)要高
  display: inline-block;
  width: 26%;
  height: $fakeScrollHeight;
  padding-bottom: $scrollBarHeight;
 }

大概意思是这样:

详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
理解JSON:3分钟课程
Oct 28 Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 Javascript
js中的caller和callee属性介绍和例子
Jun 07 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
Aug 13 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
javascript中递归的两种写法
Jan 17 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
JS学习笔记之数组去重实现方法小结
May 29 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 Javascript
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
vue中实现动态生成二维码的方法
Feb 21 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 Javascript
详解React项目中碰到的IE问题
Mar 14 #Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 #Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 #Javascript
Node.js + express基本用法教程
Mar 14 #Javascript
Vue渲染过程浅析
Mar 14 #Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 #Javascript
详解使用React制作一个模态框
Mar 14 #Javascript
You might like
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP 类与构造函数解析
2017/02/06 PHP
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
javascript中clone对象详解
2014/12/03 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
js禁止表单重复提交
2017/08/29 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python实现代码行数统计示例分享
2014/02/10 Python
用python读写excel的方法
2014/11/18 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
Python 自动化表单提交实例代码
2017/06/08 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
python对excel文档去重及求和的实例
2018/04/18 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python中time库的实例使用方法
2019/10/31 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
Python扫描端口的实现
2021/01/25 Python
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
护理专业毕业生自荐信
2014/06/15 职场文书
学生安全责任协议书
2016/03/22 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
Golang二维数组的使用方式
2021/05/28 Golang
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
MySQL 语句执行顺序举例解析
2022/06/05 MySQL