详解微信小程序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 相关文章推荐
瀑布流布局并自动加载实现代码
Mar 12 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
AngularJS入门教程(一):静态模板
Dec 06 Javascript
jquery+ajax请求且带返回值的代码
Aug 12 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
Jul 03 Javascript
mpvue将vue项目转换为小程序
Sep 30 Javascript
Vue.js实现的购物车功能详解
Jan 27 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
微信小程序实现Swiper轮播图效果
Nov 22 Javascript
jQuery实现评论模块
Aug 19 jQuery
在vant中使用时间选择器和popup弹出层的操作
Nov 04 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
JavaScript中链式调用之研习
2011/04/07 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
Pyramid添加Middleware的方法实例
2013/11/27 Python
解决python删除文件的权限错误问题
2018/04/24 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
pygame游戏之旅 计算游戏中躲过的障碍数量
2018/11/20 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
django框架创建应用操作示例
2019/09/26 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
马来西亚太阳镜、眼镜和隐形眼镜网上商店:Focus Point
2018/12/13 全球购物
测绘工程系学生的自我评价
2013/11/30 职场文书
安全资金保障制度
2014/01/23 职场文书
企业文化标语大全
2014/06/10 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
SQL之各种join小结详细讲解
2021/08/04 MySQL