首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

随心所欲的滚动条,远离产品汪(二)

当中介绍了自定义滚动条的基本原理与实现方法,在自定义滚动条实现后,可以通过对滚动条的上下拖动来控制内容区的显示,使用过的朋友会发现,如果对篇幅较长的内容来说,不停的拖动滚动条来查看内容,还是比较麻烦的,...HTML5学堂-自定义滚动条 div> div class="boxscr" id = "bs">...轴坐标 newY = 0, // 鼠标拖动时的Y轴坐标 nowY = 0, // 鼠标拖动时滚动条C距父级顶部的高度 maxY = 0,...// 拖动的最大极限值 nowDisY = 0, // 点击滚动条C时距父级顶部的高度 judge = 0, // 判断鼠标滚轮的方向 scrY..., // 滚动区D高度 cnHeight = cn.offsetHeight; // 滚动块B的高度 // 根据滚动块B实际内容高度控制滚动条C的高度

2K80

了解虚拟列表背后原理,轻松实现虚拟列表

确定外层固定的高度,并且设置纵向滚动条 真实容器设置相对定位,并且根据显示总数动态设置一个装载容器的高度 每个元素设置绝对定位,且是固定高度 有了对应设置的结构,因为我们每个元素是绝对定位的,所以我们现在的思路就是...: 1、确定可视区域item显示的条数limit 2、向上滑动的当前位置起始位与最后位置,确定显示元素范围 3、确定每个元素的top,当向上滑动时,确定当前的位置与最后元素的位置索引,根据当前位置与最后元素位置...总结 了解虚拟列表到底是什么,在大数据渲染中,选择一段可视区域显示对应数据 实现虚拟列表的背后原理,最外层给定一个固定的高度,然后设置纵向Y轴滚动,然后每个元素的父级设置相对定位,设置真实展示数据的高度...,根据item固定高度(rowHeight),根据可视区域和rowHeight计算可显示的limit数目。...code example[3] 本文参考相关文章如何实现一个高度自适应的虚拟列表[4],这是react版本的 参考资料 [1] vue-virtual-scroller: https://github.com

3.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    导航栏滚动吸顶并自动高亮和点击跳转锚点

    实现方法 正常情况下我们点击自动定位到其所在位置一般用id锚点的方式,但是这种方式有一个缺陷就是无法实现滚动条缓动效果,而且带url上还会通过hash的方式显示出ID,另外也无法实现滚动到内容所在位置自动高亮导航栏...setActiveNav(item.id+"_key") } }) //我们设定导航栏的高度是60px,导航栏占位高度同样是...isToTop = false;//点击锚点时滚动条是向上还是向下 //导航栏点击事件 function navClick(id){ let groupList =...获取所选导航指定内容区域位置信息 let outerItemReact = selectItem.getBoundingClientRect(); //判断导航内容是在可视区域上方还是下方,来决定滚动条是应该向上滚动还是向下滚动...,并超过导航栏位置自动吸顶效果,同时点击导航栏滚动条缓动至锚点位置,实现的最终效果可以看阿里云市场详情页中的效果,比他显示的效果多了滚动条缓动效果。

    10.5K50

    如何使用 CSS 设置和自定义水平和垂直滚动条

    下面的截图显示了我们即将创建的侧边栏:侧边栏要创建上面的侧边栏,我们将在CSS中进行以下更改:将导航栏的显示更改为flex,并将方向设置为column为侧边栏设置背景颜色为导航链接添加底部边框增加导航链接的字体大小和字体粗细为侧边栏设置固定宽度增加...body的高度以使其足够长以滚动以下CSS代码片段描述了如何将初始导航栏样式设置为侧边栏并调整body的底部边距。...从截图中可以看出,侧边栏的底部看起来不像设置在底部。这是因为内容比其容器的高度长。在下一节中,我们将学习如何防止导航项目列表显示在侧边栏之外。d)....将overflow-y属性设置为scroll会为超出其高度的内容创建一个可滚动的容器。超出侧边栏范围的项目将被隐藏。右侧会出现一个滚动条,允许您的网站用户查看所有内容。...下面的截图显示了具有自定义样式的默认滚动条:样式化的默认滚动条下面的代码片段显示了如何使用body标签为滚动条添加样式: body::-webkit-scrollbar{ width

    1.9K00

    对html与body的一些研究与理解

    空白页面下IE和Firefox火狐浏览器左侧的滚动条与否 Firefox下没有滚动条,有时候会产生体验上的一些问题,比如:假设一个页面高度有限,无滚动条,当鼠标移到一个元素上,要显示一个浮动层,但是这个浮动层有一定的高度...如何避免呢?很多人会想到设置 body{overflow-y:scroll;} Firefox下是出现了滚动槽了,但是IE下出现了两个滚动条,如下: ?...5.关于height:100%; 要想高度百分比起作用,一般来说,要满足两个条件:其一,父标签有高度可寻,就是向上遍历父标签要找到一个定值高度(body,html另外讨论),如果中途有个height为auto...前段时间看到百度的一道面试题,说什么透明层无论滚动与否都满屏显示,其实就是对和标签做一番手脚,两者高度100%显示,同时溢出隐藏(overflow:hidden),然后用一个div...; background-color: #cd0000; } 大家可以看到body的子元素div也就显示了屏幕的高度。

    2.1K30

    3分钟搞定图片懒加载

    什么是图片懒加载 图片的懒加载就是在页面打开的时候,不要一次性全部显示页面所有的图片,而是只显示当前视口内的图片,一般在移动端使用(PC端主要是前端分页或者后端分页)。...因此,通过html5自定义属性data-xxx先暂存src的值,然后在需要显示的时候,再将data-xxx的值重新赋值到img的src属性即可。...如何判断一个元素是否在视口内呢? 通过getBoundingClientRect()方法来获取元素的大小以及位置。...判断是否滚动到最底部的方法:滚动条到顶部距离 + 可视页面高度 >= 当前页面高度 var seeHeight = document.documentElement.clientHeight; // 可视页面高度...= document.body.offsetHeight // 当前页面高度 然后判断: scrollTop + seeHeight >= bodyHeight 当滚动条到达底部的时候,获取后端分页的数据

    2.5K20

    html外边距如何归零,盒子模型的overflow属性,border属性,padding与margin属性

    :显示滚动条 ⑶auto:如有超出部分,显示滚动条(浏览器自动判断) ㈢border属性 ⑴border-width:px(像素),thin(细),medium(中等),thick(粗) ⑵border-style...2.取值:px,%(外层盒子的宽度和高度) ㈤margin的缩写 margin每个方向分量的值设定是如何省略的呢?...div标签来进行定义,div标签作为样式的名字,内部定义了它的内容的高度,宽度,外边距,边框四个属性。...★用margin属性来进行盒子的设定的时候注意两点: ⑴div标签做盒子的时候,有一个特点,每一个div标签做出来的盒子,有一个换行的效果,就是它会独占一行。 ⑵显示结果的这个上下边距是什么样的?...由于图片和边框之间需要一定的空白距离,把padding属性设置一下,四个方向上都是5个像素,这样图像框就做好了。 ⑶如何去掉这个空白距离?如图所示: 以上就是盒子模型相关知识,希望可以有所帮助。

    1.4K20

    用canvas画了个table,手写滚动条

    在开始本文之前,主要是从以下方向去思考: 1、canvas绘制table必须满足我们常规table方式 2、因为table内容是显示在画布中,那如何实现滚动条控制,canvas是固定高的 3、内容的分页显示需要自定义滚动条...col的高度确定显示最大的可视区域row的limit 2、确认起始末尾索引endIndex,根据起始索引startIndex对原数据sourceData进行slice操作,本质上就是前端做了一个假分页...,有以下 1、监听dom的鼠标事件,通过鼠标的滑动,去控制滚动条的位置 2、根据滚动条的位置确定起始位置,并且需要控制判断滚动条达到底部的位置以及起始位置边界问题 3、根据滚动条位置,获取对应数据,然后重新渲染...这个简易的canvas就实现基础table显示,自定义滚动条,以及自定义操作,还有在canvans中自定义渲染dom。...总结 canvas实现一个简易的table,如何绘制table表头,以及表内容 如何手写个滚动条,并且滚动条边界控制,滑动画布,控制滚动条位置 canvas绘制的table如何自定义dom渲染,主要是采用定位方式

    5.6K20

    纯CSS实现拖拽--resize、scale、包裹性

    属性值 说明 none 不可以缩放 both 水平和垂直方向上均可调整元素的大小 horizontal 在水平方向上调整元素的大小 vertical 在垂直方向上调整元素的大小 注意: 块元素 overflow...overflow 指定除 visible (默认值)以外的值(hidden/scroll/auto)将创建一个新的 块级格式化上下文(BFC)。...这在技术层面上是必须的——如果一个浮动元素和滚动条相交,它会在每个滚动步骤后强行重新包装内容,从而导致慢滚动体验。...像上述示例gif图中所展示,需要增大整个展示区域该如何操作?...显示拖拽条 由于完全隐藏了滚动条,用户也就不知道可以拖拽了,所以我们还需要绘制一个更为好看的拖拽条。

    3.4K20

    纯CSS实现拖拽--resize、scale、包裹性

    属性值 说明 none 不可以缩放 both 水平和垂直方向上均可调整元素的大小 horizontal 在水平方向上调整元素的大小 vertical 在垂直方向上调整元素的大小 注意: 块元素 overflow...overflow 指定除 visible (默认值)以外的值(hidden/scroll/auto)将创建一个新的 块级格式化上下文(BFC)。...这在技术层面上是必须的——如果一个浮动元素和滚动条相交,它会在每个滚动步骤后强行重新包装内容,从而导致慢滚动体验。...像上述示例gif图中所展示,需要增大整个展示区域该如何操作?...显示拖拽条 由于完全隐藏了滚动条,用户也就不知道可以拖拽了,所以我们还需要绘制一个更为好看的拖拽条。

    3K10

    盒模型

    内容会填满视口的宽度,然后在必要的时候折行。因此,容器的高度由内容天然地决定,而不是容器自己决定。 普通文档流——指的是网页元素的默认布局行为。...一个不好的做法就是,给容器设定一个高度值,然后试图让动态大小的内部元素居中。在实现这种效果时,请尽量交给浏览器来决定高度。...设置一个大的行高,让它等于理想的容器高度。这样会让容器高度扩展到能够容纳行高。如果内容不是行内元素,可以设置为inline-block。 不知道内部元素的高度?...如果在左边再加上相等的负外边距,元素的两边都会扩展到容器外面 如果元素被别的元素遮挡, 利用负外边距让元素重叠的做法可能导致元素不可点击。...负外边距并不常用,但是在某些场景下很实用,尤其是当创建列布局的时候。不过应当避免频繁使用,不然网页的样式就会失控。 # 外边距折叠 当顶部和/或底部的外边距相邻时,就会重叠,产生单个外边距。

    1.9K20

    一篇文章带你了解CSS基础知识和基本用法

    一、Css的用法 1.如何使用Css 要想使用Css来增加Html的美观,有三种方式: 1).头部文件中定义 标签的Css属性 2).导入Css文件 #创建一个...出现滚动条 no 没有滚动条 6)).背景大小 div style='background-size:50px 50px'>div> 7)).背景图片的定位区域 div style...风格和颜色,然后定义边框的其它属性。...,并且其余内容是不可见的 scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容 auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容 12).裁剪Clip 对元素某块区域就行剪切...指示矩形框的边缘可被向上及向左移动(北/西) n-resize 指示矩形框的边缘可被向上(北)移动 se-resize 指示矩形框的边缘可被向下及向右移动(南/

    11.1K20

    移动端H5实现上滑分页加载功能

    但在移动端这种方式就不太合适了,移动端一般都是通过向上滑动页面,触底后加载下一页这种方式来实现的。...实现过程 思路:要达到触底的条件就是:滚动条的总高度 = 等于可视区的高度+滚动条距离顶部的高度;掘友们应该都知道我们可以通过监听页面的滑动事件来获取这三个值,然后进行一些操作就实现这个功能。...具体实现的代码: 绑定监听的滑动事件函数 div @scroll="pageScroll"> 的数据 --> div> // 页面滚动 pageScroll(e) { //变量scrollTop是滚动条滚动时,距离顶部的距离 var...; //变量scrollHeight是滚动条的总高度 var scrollHeight = e.target.scrollHeight; //滚动条到底部的条件 if (scrollTop

    3.7K20

    给我2分钟,保证教会你在Vue3中实现一个定高的虚拟列表

    实现滚动条 按照上面的图,很容易想到我们的dom结构应该是下面这样的: div class="container"> div class="list-wrapper...此时我们遇见第一个问题,滚动条是怎么来的,可视区域是靠什么撑开的? 答案很简单,我们知道每个item的高度itemSize,并且知道有多少条数据listData.length。...所以我们可以在可视区域container中新建一个名为placeholder的空div,将他的高度设置为itemSize * listData.length,这样可视区域就被撑开了,并且滚动条也有了。...接下来就是计算容器里面到底渲染多少个item,很简单,Math.ceil(可视区域的高度 / 每个item的高度)。 为什么使用Math.ceil向上取整呢?...此时可视区域内显示的就是item1-item7的模块了,这就是为什么前面我们计算end时要多渲染一个item,不然这里item7就没法显示了。

    16901

    【Web前端】CSS溢出

    二、CSS 的 ​​overflow​​ 属性 CSS 提供了 ​​overflow​​ 属性来控制如何处理溢出的内容。该属性适用于块级元素,并允许你指定内容超出其容器边界时的显示方式。​​...溢出的内容会显示在容器之外,不进行裁剪。 ​​hidden​​:溢出的内容会被裁剪,不会显示在容器之外。 ​​scroll​​:溢出的内容会显示滚动条,允许用户滚动查看超出部分的内容。 ​​...auto​​​:根据需要自动添加滚动条。如果内容超出容器,则显示滚动条;否则,不显示滚动条。 示例 1: ​​visible​​ div> div> ​​.content​​ 元素的宽度和高度超出了 ​​.container​​ 元素的边界。...当容器的宽度小于内容的宽度时,会显示滚动条。

    10100

    《从案例中学习JavaScript》之实现网页版阅读器

    Paste_Image.png 当我滚动条往上滚动的时候,屏幕右下角会出现一个向上的箭头: ? Paste_Image.png 而往下滚动的时候,又自动消失。...'>div> div> 然后,通过背景图的方式把图片贴进来。...js控制 我们通过jQuery的animate方法来实现回到顶部的动画,实现该功能的核心逻辑就是控制滚动条距离顶部的高度,也就是scrollTop,让它变为0就可以了。...实现思路也很简单,就是判断当前滚动条到底是向上滚动呢,还是向下滚动?...然后设置按钮的透明度就行了,这时候,我们需要对滚动条进行监听,如果向上滚动就显示按钮,否则隐藏按钮,实现代码如下: var justScrollTop = 0; //记录上一次滚动条距离顶部的位置 /

    1.3K60
    领券