Jquery 滚动-单击时无法在固定侧边栏内滚动自定义滚动
我制作了一个固定的侧边栏并应用了自定义滚动条(即m.customscrollbar),但我希望在点击锚定标记(在手风琴内部)时使用它我想在侧边栏顶部滚动手风琴,为此我使用的代码与侧边栏没有粘性时使用的代码相同,可以将主体或html滚动到单击的元素顶部位置 我做错了什么 非粘性 下面是侧边栏不粘的代码Jquery 滚动-单击时无法在固定侧边栏内滚动自定义滚动,jquery,css,scroll,fixed,mcustomscrollbar,Jquery,Css,Scroll,Fixed,Mcustomscrollbar,我制作了一个固定的侧边栏并应用了自定义滚动条(即m.customscrollbar),但我希望在点击锚定标记(在手风琴内部)时使用它我想在侧边栏顶部滚动手风琴,为此我使用的代码与侧边栏没有粘性时使用的代码相同,可以将主体或html滚动到单击的元素顶部位置 我做错了什么 非粘性 下面是侧边栏不粘的代码 $('.card > .collapse').on('shown.bs.collapse', function(e){ e.preventDefault(); e.stop
$('.card > .collapse').on('shown.bs.collapse', function(e){
e.preventDefault();
e.stopPropagation();
console.log('click');
var scrollToCategory = $(this).parent().offset().top;
var body = $("html, body");
body.stop().animate({scrollTop:scrollToCategory}, 500, 'swing', function() {
// alert("Finished animating");
});
})
粘性
下面是侧边栏有粘性时的代码
$('.card > .collapse').on('shown.bs.collapse', function(e){
e.preventDefault();
e.stopPropagation();
console.log('click');
var scrollToCategory = $(this).parent().offset().top;
var body = $("#sidebar-wrapper");
body.stop().animate({scrollTop:scrollToCategory}, 500, 'swing', function() {
// alert("Finished animating");
});
})
这里是jsfiddle链接
注意:粘性示例在JSFIDLE中似乎不起作用。请将示例复制并粘贴到另一个自定义文件中:)最后, 我找了很久才找到的。这只是m.customscrollbar中已有的一段代码 以下是解决方案:
$('.card > .collapse').on('shown.bs.collapse', function(e){
e.preventDefault();
e.stopPropagation();
var childPos = $(this).parent().offset();
var parentPos = $('#sidebar').offset();
var childOffset = {
top: childPos.top - parentPos.top,
left: childPos.left - parentPos.left
}
$("#sidebar-wrapper").mCustomScrollbar('scrollTo', '-='+childOffset.top);
});