如何使用 jScrollPane 使自定义滚动条始终可见?

发布于 2024-09-11 14:59:42 字数 221 浏览 10 评论 0原文

我有使用 jQuery 的 jScrollPane 插件的滚动条。

滚动条有效,所有内容均使用 AJAX,因此对于每个“页面”加载,我都会添加滚动条的重新初始化。 但是当内容比页面短时,滚动条不可见。

这会导致内容有 10px 的额外空间,这对于使用 100% 可用空间的项目来说很烦人。

有人知道如何在内容不可用时使滚动条可见吗? 或者使用替代的 CSS 方式来保留空间也可以。

I have scrollbars using the jScrollPane plug-in for jQuery.

The scrollbar works, all content is with AJAX, so for every 'page' load, I add the re-initialization of the scrollbars.
But when content is shorter than the page, the scrollbars are not visible.

This results in 10px extra space for the content, and that is annoying with items using 100% of the available space.

Anyone an idea how to make the scrollbars visible even when content is not available?
Or an alternative CSS way to reserve the space is also fine.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

任谁 2024-09-18 14:59:42

如果没有人找到更好的解决方案,

我已经可以说我修改了 jScrollPane 插件,以始终显示“轨道”栏,如果它要隐藏滚动条(因为内容小于视图),我也不会附加 '拖动'栏。虽然它不是一个非常干净的选择。

应该进一步采取措施,并禁用/重新启用向上向下按钮,添加 css 功能,以便在禁用时不执行悬停/活动状态...以获得更好的可用性。

仍然期待一个可能的更好的解决方案,尽管我觉得我会想出唯一可能的解决方案,因为可能没有开箱即用的解决方案

If nobody finds a better solution,

i can already say that i modified jScrollPane plugin, to always show the "track" bar, and if it was going to hide the scrollbar (because content was smaller than the view) i also not append the 'drag' bar. though its not a very clean option.

it should be taken further, and also disable / re-enable the up down buttons, adding css functionality not to do hover/active state's when its disabled... for better usability.

still looking forward to a possible better solution, though i feel that i will have come up with the only possible solution as there probably is none out of the box

强辩 2024-09-18 14:59:42

我认为在将此功能添加到 jScrollPane 之前,只有肮脏的技巧可用于解决此问题。我所做的是询问 jScrollPane 是否启用了滚动;如果没有,我添加了一个看起来像空/禁用滚动条的 div。这是代码:

var scrollPane = $("#id-of-scroll-area");
scrollPane.css("height", "100%"); // I needed this; you may not
var scroll = scrollPane.jScrollPane();
// check if scrolling is enabled
if (!scroll.data('jsp').getIsScrollableV()) {
  scrollPane.css("overflow-y", "hidden");
  scrollPane.css("width", leftPane.width() - 10); // 10 is width of scroll bar
  scrollPane.after('<div id="white-v-bar"> </div>');   
}

希望这可以帮助某人......
Markus

这是虚拟滚动条的 CSS:

#white-v-bar {
 height:100%;
 width:10px;
 background-color:white;
 float:left;
}

I think until this feature is added to jScrollPane there are only dirty tricks available to fix this. What I did was to ask jScrollPane if scrolling is enabled; if not, I added a div that looks like an empty/disabled scrollbar. This is the code:

var scrollPane = $("#id-of-scroll-area");
scrollPane.css("height", "100%"); // I needed this; you may not
var scroll = scrollPane.jScrollPane();
// check if scrolling is enabled
if (!scroll.data('jsp').getIsScrollableV()) {
  scrollPane.css("overflow-y", "hidden");
  scrollPane.css("width", leftPane.width() - 10); // 10 is width of scroll bar
  scrollPane.after('<div id="white-v-bar"> </div>');   
}

Hop this helps someone...
Markus

This is the CSS for the dummy scroll bar:

#white-v-bar {
 height:100%;
 width:10px;
 background-color:white;
 float:left;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文