详解微信小程序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函数以及基础写法100多条实用整理
Jan 13 Javascript
一款由jquery实现的整屏切换特效
Sep 15 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
JavaScript事件代理和委托详解
Apr 08 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
Nov 09 Javascript
原生JS实现多条件筛选
Aug 19 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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
学习php笔记 字符串处理
2010/10/19 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
js word表格动态添加代码
2010/06/07 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
Python正则表达式教程之二:捕获篇
2017/03/02 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python多线程之事件Event的使用详解
2018/04/27 Python
python将数组n等分的实例
2019/12/02 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
培训通知书模板
2015/04/17 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript