详解微信小程序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 相关文章推荐
javascript web对话框与弹出窗口
Feb 22 Javascript
JS this作用域以及GET传输值过长的问题解决方法
Aug 06 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
Oct 14 Javascript
基于jquery实现的自动补全功能
Mar 12 Javascript
javascript中return,return true,return false三者的用法及区别
Nov 17 Javascript
javascript实现拖动元素交换位置
Nov 29 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
js实现用户输入的小写字母自动转大写字母的方法
Jan 21 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
element-ui 表格实现单元格可编辑的示例
Feb 26 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
May 11 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
使PHP自定义函数返回多个值
2006/11/26 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
Prototype 工具函数 学习
2009/07/23 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
jQuery is()函数用法3例
2014/05/06 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python Socket使用实例
2017/12/18 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python用input输入列表的实例代码
2020/02/07 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
军训心得体会
2013/12/31 职场文书
五型班组建设方案
2014/02/10 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
教师现实表现材料
2014/02/14 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
参观邀请函范文
2015/02/02 职场文书
会计岗位职责范本
2015/04/02 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
Python音乐爬虫完美绕过反爬
2021/08/30 Python