简体   繁体   English

窗口上的jQuery滚动条调整大小不起作用

[英]jQuery Scrollbar on window resize not working

I am using jquery scrollbar plugin for my website.我正在为我的网站使用jquery 滚动条插件 Everything is working good.一切都很好。 But when I resize window in mozilla and make scroll div and resize again its looks uneven scrollbar.但是当我在 mozilla 中调整窗口大小并制作滚动 div 并再次调整大小时,它的滚动条看起来不均匀。

How to make the custom scrollbar will be visible if the browser resize also.如果浏览器也调整大小,如何使自定义滚动条可见。

script I have tried:我试过的脚本:

$('.scroll-lmenu').scrollbar({
    autoUpdate :true,
    autoScrollSize: true
});

图片

 $(document).ready(function(){ $('.scrollbar-inner').scrollbar(); });
 .scrollbar-inner { max-height: 300px; overflow: auto; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.js"></script> <link href="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.css" rel="stylesheet"/> <div class="scrollbar-inner"> <p class="permanent"> Simple inner scrollbar over content </p> <p class="permanent"> <a href="#anchor">Click to test #anchors</a><br><br> <input type="text" value="Use TAB to focus next input" style="max-width:220px; width: 100%;"> </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <input type="text"><br> <h3 id="anchor">Anchor</h3> </div>

Mozilla does have some extensions for manipulating the scroll-bars but they are all recommended not to be used. Mozilla 确实有一些用于操作滚动条的扩展,但不建议使用它们。

-moz-scrollbars-none They recommend using overflow:hidden in place of this. -moz-scrollbars-none 他们推荐使用 overflow:hidden 来代替。

-moz-scrollbars-horizontal Similar to overflow-x -moz-scrollbars-horizo​​ntal 类似于溢出-x

-moz-scrollbars-vertical Similar to overflow-y -moz-scrollbars-vertical 类似于溢出-y

-moz-hidden-unscrollable Only works internally within a users profile settings. -moz-hidden-unscrollable 仅在用户配置文件设置内部工作。 Disables scrolling XML root elements and disables using arrow keys and mouse wheel to scroll web pages.禁用滚动 XML 根元素并禁用使用箭头键和鼠标滚轮滚动网页。

Mozilla Developer Docs on 'Overflow ' Further details about Mozilla Mozilla Developer Docs on 'Overflow ' 关于 Mozilla 的更多细节

This is not really useful as far as I know, but it's worth noting that the attribute which controls whether or not scrollbars are displayed in Firefox is: ( reference link )据我所知,这并不是很有用,但值得注意的是,控制是否在 Firefox 中显示滚动条的属性是:( 参考链接

Attribute: scrollbars属性:滚动条

Type: nsIDOMBarProp类型:nsIDOMBarProp

Description: The object that controls whether or not scrollbars are shown in the window.描述:控制滚动条是否显示在窗口中的对象。 This attribute is "replaceable" in JavaScript.这个属性在 JavaScript 中是“可替换的”。 Read only只读

Last but not least, padding is like magic.最后但并非最不重要的一点是,填充就像魔术一样。

As has been previously mentioned in some other answers, here is an illustration which is sufficiently self-explanatory正如之前在其他一些答案中提到的,这里有一个说明,它是不言自明的

在此处输入图片说明

That was you body's scroll bar disable the body's overflow-y .那是你body's滚动条禁用了身体的overflow-y

 $(document).ready(function(){ $('.scrollbar-inner').scrollbar(); });
 .scrollbar-inner { max-height: 300px; overflow: auto; } body{ overflow:hidden; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.js"></script> <link href="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.css" rel="stylesheet"/> <div class="scrollbar-inner"> <p class="permanent"> Simple inner scrollbar over content </p> <p class="permanent"> <a href="#anchor">Click to test #anchors</a><br><br> <input type="text" value="Use TAB to focus next input" style="max-width:220px; width: 100%;"> </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <input type="text"><br> <h3 id="anchor">Anchor</h3> </div>
Use overflow-x: scroll and overflow-y: hidden , or overflow: hidden scroll instead. 改用overflow-x: scrolloverflow-y: hidden ,或overflow: hidden scroll
Link To developer.mozilla.org 链接到 developer.mozilla.org

You can add max-height:100vh and remove body margin margin:0您可以添加max-height:100vh并删除 body margin margin:0

 $(document).ready(function() { $('.scrollbar-inner').scrollbar(); });
 body { margin: 0 } .scrollbar-inner { max-height: 100vh; overflow: auto; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.js"></script> <link href="https://gromo.github.io/jquery.scrollbar/jquery.scrollbar.css" rel="stylesheet" /> <div class="scrollbar-inner"> <p class="permanent"> Simple inner scrollbar over content </p> <p class="permanent"> <a href="#anchor">Click to test #anchors</a><br><br> <input type="text" value="Use TAB to focus next input" style="max-width:220px; width: 100%;"> </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. </p> <input type="text"><br> <h3 id="anchor">Anchor</h3> </div>

body {
  margin: 0
}

.scrollbar-inner {
  max-height: 100vh;
  overflow: overflow-x ;
}

您可以通过以下方式直接隐藏滚动条

.scrollbar-inner > .scroll-element{ display:none;}

Try not Using尽量不要使用

$(document).ready(function(){
$('.scrollbar-inner').scrollbar();

}); });

https://codepen.io/sheetalsinghwd/pen/povoYbv https://codepen.io/sheetalsinghwd/pen/povoYbv

like this像这样

try adding the following to document ready尝试将以下内容添加到文档就绪

    $(".scrollbar-inner").hover(function() {            
      $("body").css("overflowY", "hidden");
    });

    $(".scrollbar-inner").mouseleave(function() {            
      $("body").css("overflowY", "auto");
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM