一、el-scrollbar
和浏览器原生滚动条一起出现
问题描述
el-scrollbar
组件主要用于替换浏览器原生导航条。如下图所示,使用el-scrollbar
组件后,发现未能成功替换掉浏览器原生导航条,二者同时出现。
引发原因
el-scrollbar
的height
属性如果不设置,则会根据父容器高度自适应。父容器是一个id
为app
的div
,从控制台中发现,父容器div
的高度被填充到了 3000px,而当前视口的最大高度(100vh)为 920px,所以同时显示出了el-scrollbar
和浏览器的原生导航条。
解决方法
给el-scrollbar
设置高度height="100vh"
。
<template>
<el-scrollbar height="100vh">
<router-view />
</el-scrollbar>
</template>
二、使用el-scrollbar
后el-backtop
不显示的问题
问题描述
el-backtop
组件是一个返回页面顶部的操作按钮。让页面向下滚动,直到底部都没有显示返回顶部按钮,去掉el-scrollbar
后发现返回顶部按钮可以正常显示、使用及隐藏。
引发原因
el-backtop
的target
属性用于设置触发滚动的对象,默认是document.documentElement
对象。使用el-scrollbar
后,由于替换了浏览器原生导航条,所以监听不到document.documentElement
对象发生滚动,应该修改为监听el-scrollbar
滚动。
解决方法
给el-backtop
设置滚动对象target=".el-scrollbar__wrap"
。
<el-backtop target=".el-scrollbar__wrap" :right="60" :bottom="60">
<div class="icon-backtop">🔝</div>
</el-backtop>
三、使用el-anchor
后滑动滚动条无法监听锚点变化
问题描述
el-anchor
组件是锚点导航栏,用于页面内容定位。如下图所示,让页面向下滚动,发现锚点不会随着页面内容的改变而进行切换。
引发原因
el-anchor
监听滚动的容器默认值为 ‘—’,应该设置为el-scrollbar
,监听滚动条滚动。
解决方法
给el-anchor
设置滚动容器container=".el-scrollbar__wrap"
。
<el-anchor
:marker="false"
ref="anchorRef"
direction="horizontal"
container=".el-scrollbar__wrap"
>
<el-anchor-link>...</el-anchor-link>
</el-anchor>