0

我制作了一个固定的侧边栏并应用了自定义滚动条(iemcustomscrollbar),但我希望点击锚标签(在手风琴内)我想滚动侧边栏顶部的手风琴,为此我使用的是相同的如果侧边栏不粘到将正文或 html 滚动到单击的元素顶部位置时,我正在使用的代码。

我做错了什么?

不粘

如果侧边栏不粘,这是代码

$('.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链接

不粘

注意: Sticky 示例似乎在 jsfiddle 中不起作用,请将示例复制并粘贴到另一个自定义文件中:)

4

1 回答 1

0

最后,

经过大量搜索,我做到了。它只是 m.custom 滚动条中的一段代码

这是解决方案:

$('.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);
});
于 2018-08-16T06:15:22.733 回答