jquery - 自定义滚动条拇指大小的公式是什么

标签 jquery html css scroll scrollbar

我正在尝试用 HTML 编写自定义滚动条。
类似的东西

<div class="demo">
    <div class="content">
       My content comes here
    </div>
    <div class="scrollbar">
       <div class="thumb"></div>
    </div>
</div>

我正在尝试使用 jquery 动态设置拇指的高度。

但是,无法计算出拇指大小的公式。
尝试过类似的事情

$.scrollViewHeight = $('.demo').height();
$.contentHeight = $('.content').height();
$.thumbHeight = ($.scrollViewHeight / $.contentHeight) * $.scrollViewHeight;

$('.thumb').height($.thumbHeight);

但它不起作用。
问题1.计算拇指高度的公式是什么?

我还使用 css 将最小拇指大小保持为 50px
Q2。那么,在这种情况下,我们如何计算拇指的速度,因为内容会更多。

.

最佳答案

当然,编写自定义滚动条还涉及更多内容,但这可以帮助您入门:

var $container = $(".container"),
    $content = $(".content"),
    $scrollbar = $(".scrollbar"),
    $scrollbarHandle = $(".scrollbar-handle");

/* To update scrollbar handle height (only) */

var viewportRatio = $container.height() / $content.height();

if (viewportRatio < 1) {
    $scrollbar.show();

    $scrollbarHandle.height(
        Math.max(
            50,
            Math.floor($scrollbar.height() * viewportRatio)
        )
    );
} else {
    $scrollbar.hide();
}

接下来的步骤是:

  1. 内容和滚动条 handle 滚动位置的双向同步:当内容通过其他方式展开、缩小或滚动时重新定位 handle 。设置 handle 拖动时内容的滚动位置。
  2. 单击位于 handle 之外的滚动条区域时进行分页。

关于jquery - 自定义滚动条拇指大小的公式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14507457/

相关文章:

CSS3 绕固定点旋转

javascript - 我如何使用 Excel vba 从 javascript/CSS 网站中选择一个元素?

jquery - 过滤器反转在 IE (Internet Explorer) 中不起作用

javascript - 如何将此 js.erb 更改为 haml

javascript - 通过选择两个相应的选择字段未生成动态链接

javascript - 我怎样才能在点击时制作菜单下拉菜单

css - 不同 Bootstrap 部分中的内容重叠

javascript - 想要通过选择下拉菜单来更改多个下拉菜单的值

javascript - 根据滚动位置添加和删除 Bootstrap 导航栏类

javascript - 为浏览器设置视口(viewport)大小