html自定义滚动条设置(html滚动条样式代码)

作为一个前端工程师,在建设自己的网站的时候,肯定有一个冲动,就是把各个模块按照自己的意愿进行的DIY设计。比如,在浏览器滚动的时候,为页面设计一个漂亮的滚动进度条。根据滚动的距离,来动态地展示已经滚动的进度。一、实现效果今天分享一个很

html自定义滚动条设置(html滚动条样式代码)

作为一个前端工程师,在建设自己的网站的时候,肯定有一个冲动,就是把各个模块按照自己的意愿进行的DIY设计。比如,在浏览器滚动的时候,为页面设计一个漂亮的滚动进度条。根据滚动的距离,来动态地展示已经滚动的进度。

一、实现效果

今天分享一个很只需要几行代码就能搞定的彩虹滚动进度条。大致的样子如下图所示。

html自定义滚动条设置(html滚动条样式代码)

二、实现原理

其实这个功能说来也非常简单,核心就是将页面监听滚动距离能够滚动的距离的百分比赋值给进度条的width属性。

(1)HTML & CSS 部分

将progress的dom固定定位到top:0的位置,宽度设置为0%,因为要做彩虹的颜色,就设置了7个dom设置不同的颜色,把它们的一眼的高度属性提出来,设置了一个统一的css变量。

<div id=\"progress-bar\">
<div id=\"red\"></div>
<div id=\"orange\"></div>
<div id=\"yellow\"></div>
<div id=\"green\"></div>
<div id=\"blue\"></div>
<div id=\"indigo\"></div>
<div id=\"purple\"></div>
</div>

:root {
--progress-bar-height: 10px;
}

#progress-bar {
width: 0%;
position: fixed;
top: 0;
left: 0;
}

#red {
background-color: #FF0000;
height: var(--progress-bar-height);
}
// 其他颜色
...

(2)JavaScript 部分

在开始之前先普及一个知识点,那就是scrollHeight、clientHeight和scrollTop这三个属性各代表什么。

  1. document.body.clientHeight就是网页可见区域
  2. document.body.scrollHeight就是网页的总高度
  3. document.body.scrollTop就是已经滚动的距离

而我们要做的就是,先找到整个页面能够滚动的距离,那就是上面的第二项数值减去第一项的数值。

const needScroll = document.body.scrollHeight - document.documentElement.clientHeight;

之后监听滚动scroll事件,来获取当前滚动的距离。document.body.scrollTop就是滚动条向下滚动的距离,也可以说是元素顶部被遮住部分的高度。

window.addEventListener(\'scroll\', () => {
const haveScrolled = document.body.scrollTop || document.documentElement.scrollTop;
})

最后通过求出滚动的百分比,赋值给progress的width属性即可。

progressBar.style.width = haveScrolled / needScroll * 100 + \'%\';

这样就能得到效果了,这里只简述原理,更多的效果、适配就不再多说。其实,我们不仅仅能做成一个横向的进度条,我们也可以将他做成一个圆环,或者像安卓手机充电时的效果等等,这些就靠我们自己发挥奇思妙想了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/57726.html

(0)
nan
上一篇 2021-12-07
下一篇 2021-12-07

相关推荐

  • 迎来洗牌(薇娅“消失”之后带货主播们的现状)

    没有太多烟花,少了些许新年的气息,2022年悄然而至。回望过去几年,我们的社会经历了一番艰难的洗礼,在困难乃至困苦中,变革也伴随而来,它们生长于各个角落,脱胎于各个行业。“看鉴”2022:薇娅李佳琦双双翻车直播带货迎来洗牌?在科技行业,元宇宙概

    2022-01-06 用户投稿
    0
  • 2021最火发型男短发(男生短发精神帅气)

    对于男生而言,我们不管什么时候,都应该要保持自己帅气的颜值,让自己充满阳光和自信!发型,是个人形象很重要的一部分,剪一款好看自然的发型,绝对能让你的颜值翻几倍。即使你的长相不出众,也会因为帅气的发型而变得潮流有范儿!那么,临近开学季,男生们

    2021-12-07
    0
  • 大便干操不畅是什么原因(排便不畅怎么调理)

    老王今天又来了,不过不是因为“老毛病”胃溃疡,这次的原因令他有些难以启齿,一个大男人扭扭捏捏半天,最终在我的逼问下才红着脸告知其中缘由,原来自从入冬以后,老王如厕时大便开始变得越来越难以排出,一开始依靠自身的努力还能解决

    2021-10-21 用户投稿
    0
  • 适合农村创业的小型加工厂(小型厂子选什么项目)

    手里有3万元资金,想回农村开办一个家庭作坊,哪些项目比较有发展前景?根据当前市场的实际情况,我这里给推荐几个小项目,仅供作为市场调研参考。盆景蔬菜加工这个小项目比较适合在农村做家庭作坊,投入3万元以内是完全可以先启动起来的。对于做盆景蔬菜

    2021-12-07 用户投稿
    0
  • 形容天气非常炎热的词语(形容炎热的词语有哪些)

    马上就要到大暑了,这个夏天,全国天气各异。有的地方烈日炎炎,有的地方梅雨不断。可是,热烈是夏天的底色,绿树成荫,阳光似火,有一首歌曾唱道:像夏花一样绚烂。读夏天的成语,感受夏日的绚烂。【沉李浮瓜】【来源】三国魏曹丕《与朝歌令吴质书

    2021-10-29 用户投稿
    0
  • 淘宝新手如何找货源(淘宝开店货源从哪里找)

    你好,我是蒋晖,十多年电商创业者。如果你在操作店铺过程中遇到解决不了的问题,欢迎私信我,我会给你一一解答。关于去哪找货源,常规的渠道大概就这几个:1)网上采购(如阿里巴巴)2)厂家合作3)当地货源/批发市场其实渠道大家都知道,只是

    2021-12-06
    0

发表回复

登录后才能评论