详解微信小程序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延迟加载
Mar 09 Javascript
Jvascript学习实践案例(开发常用)
Jun 25 Javascript
JavaScript获取/更改文本框的值的实例代码
Aug 02 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
删除javascript所创建子节点的方法
May 21 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 Javascript
浅谈FastClick 填坑及源码解析
Mar 02 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
Nov 05 Javascript
Vue中axios拦截器如何单独配置token
Dec 27 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
ThinkPHP中的create方法与自动令牌验证实例教程
2014/08/22 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
详解php中 === 的使用
2016/10/24 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
js实现可折叠展开的手风琴菜单效果
2015/09/07 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
原生js实现五子棋游戏
2020/05/28 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
用python爬取租房网站信息的代码
2018/12/14 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
加拿大探亲邀请信
2014/01/28 职场文书
主办会计岗位职责
2014/03/13 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
react使用antd的上传组件实现文件表单一起提交功能(完整代码)
2021/06/29 Javascript
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL