css3更改默认滚动条样式-webkit-scrollbar

浏览器自带的原始滚动条很不美观,在一些特殊需求中,我们需要对滚动条的样式单独设置,因此就出现了用-webkit-scrollbar来自定义滚动条的样式。。
首先
webkit支持拥有overflow属性的区域,列表框,下拉菜单,textarea的滚动条自定义样式,所以用处还是挺大的。当然,兼容所有浏览器的滚动条样式目前是不存在的。
滚动条的组成

::-webkit-scrollbar 滚动条整体部分
::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)
::-webkit-scrollbar-track 滚动条的轨道(里面装有Thumb)
::-webkit-scrollbar-button 滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。
::-webkit-scrollbar-track-piece 内层轨道,滚动条中间部分(除去)
::-webkit-scrollbar-corner 边角,即两个滚动条的交汇处
::-webkit-resizer 两个滚动条的交汇处上用于通过拖动调整元素大小的小控件

演示
默认滚动条样式:

这里写图片描述

自定义滚动条样式:

这里写图片描述
简洁代码介绍–仅支持谷歌浏览器:

/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/  
::-webkit-scrollbar  
{  
    width: 10px;    
    background-color: #fff;  
}  

/*定义滚动条轨道 内阴影+圆角*/  
::-webkit-scrollbar-track  
{  
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);  
    border-radius: 10px;  
    background-color: lightgray;  
}  

/*定义滑块 内阴影+圆角*/  
::-webkit-scrollbar-thumb  
{  
    border-radius: 10px;  
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);  
    background-color: blue;  
}  
/*定义最上方和最下方的按钮*/
::-webkit-scrollbar-button{
     background-color: #000;
     border:1px solid yellow;
}


具体的详细介绍,大家可以参考网址:http://www.xuanfengge.com/css3-webkit-scrollbar.html

最后,上面的写法仅支持谷歌浏览器,不兼容火狐、IE。。

IE 的写法和上面不太一样

scrollbar-arrow-color: color; /*三角箭头的颜色*/
scrollbar-face-color: color; /*立体滚动条的颜色(包括箭头部分的背景色)*/
scrollbar-3dlight-color: color; /*立体滚动条亮边的颜色*/
scrollbar-highlight-color: color; /*滚动条的高亮颜色(左阴影?)*/
scrollbar-shadow-color: color; /*立体滚动条阴影的颜色*/
scrollbar-darkshadow-color: color; /*立体滚动条外阴影的颜色*/
scrollbar-track-color: color; /*立体滚动条背景颜色*/
scrollbar-base-color:color; /*滚动条的基色*/

令人遗憾的是 火狐目前还没有修改滚动条样式的 CSS支持,但是我们可以用插件 malihu-custom-scrollbar-plugin
具体的插件使用介绍网址:https://www.cnblogs.com/yclblog/p/6806496.html
————————————————
原文链接:https://blog.csdn.net/u013594477/article/details/80353850

在微信小程序中,`scroll-view`组件默认并没有提供直接修改Webkit滚动条样式的特性。但是如果你想自定义滚动条,可以借助第三方库或者模拟滚动条元素的方式。`scroll-view::-webkit-scrollbar` 是 CSS 的伪元素选择器,用于在 Webkit 浏览器(如 Safari 和 Chrome)中针对滚动条进行样式定制,但这在微信小程序中是无效的。 如果你真的要在小程序里实现类似的效果,通常需要在实际渲染滚动内容的外层元素上使用一些技巧,例如创建一个透明的遮罩层,并为其设置宽度等于滚动条宽度,然后定位到正确的滚动位置。然后利用 JavaScript 或者setData 来动态更改遮罩层的位置和大小,达到视觉上的滚动条效果。 以下是简单的示例: ```javascript // 在onLoad或者其他合适的生命周期函数中设置初始样式 Page({ onLoad() { this.createFakeScrollbar(); }, createFakeScrollbar() { const scrollbarWidth = getScrollbarWidth(); // 获取滚动条宽度 const scrollbarWrapper = wx.createSelectorQuery().select('.custom-scrollbar-wrapper').get()[0]; if (!scrollbarWrapper) return; const fakeScrollbar = wx.createSelectorQuery().select('.fake-scrollbar').get()[0] || document.createElement('view'); fakeScrollbar.style.width = scrollbarWidth + 'rpx'; scrollbarWrapper.parentNode.insertBefore(fakeScrollbar, scrollbarWrapper); }, // ...其他滚动事件处理 updateScrollbarPosition(e) { // 根据滚动事件更新假滚动条的位置 const scrollTop = e.detail.scrollTop; const scrollbarWrapper = wx.createSelectorQuery().select('.custom-scrollbar-wrapper').get()[0]; scrollbarWrapper.style.transform = `translateY(${scrollTop}px)`; } // 注意,此方法需要你自己实现getScrollbarWidth函数获取滚动条的实际宽度,因为小程序环境复杂 getScrollbarWidth() { return /* 自己实现计算滚动条宽度的逻辑 */; } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值