从uni-app中去掉编译后微信小程序的滚动条

首先如果你使用的是页面级滚动,即使uni-app中的pages.json中有相关配置,在编译到小程序中也是没有效果的,因为小程序原生不支持,如下:

那么我们去看微信的官方回复:

所以得出一个结论,要想隐藏滚动条,我们必须使用scroll-view视图组件

那么在uni-app页面滚动是不是scroll-view,答案是的,但是我们没办法在顶层设置,因为官方没有暴露相关api,那么要想去掉滚动条,我们就只能在自己的页面使用scroll-view视图组件,取代全局的滚动视图。

下面上简易代码

xml 复制代码
<template>
	<scroll-view scroll-y="true" :show-scrollbar="false" :enhanced="true" class="main">
		<view class="list" v-for="iten in 30">列表{{iten}}</view>
	</scroll-view>
</template>


<style lang="scss" scoped>
	.main{
		height: 100vh;
	}
	.list{
		border: 1xp solid black;
		margin: 20rpx auto;
		text-align: center;
		line-height: 100rpx;
	}
</style>

效果图:

如果你的组件不是占满全屏,比如有头部导航

这时候有两种做法:

1.将头部标签放到scroll-view内部,然后固定定位

xml 复制代码
<template>
	<scroll-view scroll-y="true" :show-scrollbar="false" :enhanced="true" class="main">
		<view class="nav">导航nav</view>
		<view class="list-container">
			<view class="list" v-for="iten in 30">列表{{iten}}</view>
		</view>
	</scroll-view>
</template>

<style lang="scss" scoped>
	.main{
		height: 100vh;
	}
	.list-container{
		margin-top: 200rpx;
	}
	.list{
		border: 1xp solid black;
		margin: 20rpx auto;
		text-align: center;
		line-height: 100rpx;
	}
	.nav{
		position: fixed;
		top: 0;
		line-height: 200rpx;
		padding-top: 20rpx;
		width: 100vw;
		text-align: center;
		border: 1px solid black;
		background-color: #fff;
	}
</style>

效果图:

2.将scroll-view的高度设置为视口余下高度

这里注意一下在移动端尽量较少的使用cale()计算高度

所以这里我们使用flex布局

xml 复制代码
<template>
	<view class="content">
		<view class="nav">导航nav</view>
		<scroll-view scroll-y="true" :show-scrollbar="false"  :enhanced="true" class="main">
				<view class="list" v-for="iten in 30">列表{{iten}}</view>
		</scroll-view>
	</view>
</template>

<style lang="scss" scoped>
	.content{
		height: 100vh;
		width: 100vw;
		overflow: hidden;
		display: flex;
		flex-direction: column;
	}
	.main{
		flex-grow: 1;
	}
	.list{
		border: 1xp solid black;
		margin: 20rpx auto;
		text-align: center;
		line-height: 100rpx;
	}
	.nav{
		height: 200rpx;
		line-height: 200rpx;
		width: 100vw;
		text-align: center;
		border: 1px solid black;
		background-color: #fff;
	}
</style>

效果图:

如果有帮助到你的话,记得点个赞哦!

相关推荐
Amumu1213832 分钟前
Js:正则表达式(一)
开发语言·javascript·正则表达式
月光宝盒造梦师3 小时前
Ant Design Ellipsis 中的判断逻辑 isEleEllipsis 方法非常消耗性能
javascript·react·优化
酉鬼女又兒4 小时前
零基础快速入门前端ES6 核心特性详解:Set 数据结构与对象增强写法(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·es6
阿珊和她的猫4 小时前
以用户为中心的前端性能指标解析
前端·javascript·css
叫我一声阿雷吧5 小时前
JS 入门通关手册(36):变量提升、暂时性死区与块级作用域
javascript·变量提升·暂时性死区·tdz·块级作用域· 前端面试
成都渲染101云渲染66665 小时前
跳出“硬件堆砌”陷阱|渲染101如何用技术重构云渲染的专业价值?
java·前端·javascript
SuperEugene5 小时前
Vue3 性能优化规范:日常必做优化(不玄学、可落地)|可维护性与兜底规范篇
开发语言·前端·javascript·vue.js·性能优化·前端框架
cypking5 小时前
二次封装ElementUI日期范围组件:打造带限制规则的Vue2 v-model响应式通用组件
前端·javascript·elementui
酉鬼女又兒6 小时前
零基础快速入门前端蓝桥杯Web考点深度解析:var、let、const与事件绑定实战(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·es6·html5
happymaker06266 小时前
vue指令扩展以及监视器的使用
前端·javascript·vue.js