首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >select2 + mCustomScrollbar问题

select2 + mCustomScrollbar问题
EN

Stack Overflow用户
提问于 2016-03-18 18:22:25
回答 2查看 1.7K关注 0票数 0

我正在尝试将select2(4.0.2)和mCustomScrollbar(3.1.13)库结合起来,以拥有带有自定义滚动条的自定义下拉列表。

这是code sample

代码语言:javascript
复制
$(document).on("select2:open", "select", function() {
  $('.select2-results').mCustomScrollbar({
    mouseWheel: true,
    advanced: {
    updateOnContentResize: true
   }
  });
});

主要的问题是鼠标滚轮滚动。只有当您将光标放在滚动条本身上时,它才起作用。包含mousewheel.js(3.1.3),但它似乎无法正常工作。在下拉列表正文上滚动时不会触发事件。

有什么想法,怎么解决它?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-02-13 18:52:33

我也有同样的问题。我已经通过这种方式修复了它:

代码语言:javascript
复制
$(".select2").on('select2:open', function (evt) {
    $('.select2-results').mCustomScrollbar({
        scrollButtons: {
            enable: true
        },
        theme: "my-theme",
        mouseWheel: true

    });
    $('#mCSB_1_scrollbar_vertical').css("pointer-events", "auto");

    $('#mCSB_1_scrollbar_vertical').on("mousedown", function () { //cross-domain iframe mousewheel hack
        $(this).css("pointer-events", "none");

    })

})

再加上css

代码语言:javascript
复制
.select2-results .mCSB_scrollTools .mCSB_dragger{ 
     margin-left: 96% !important;
     width: 5px!important; 
}
.select2-results #mCSB_1_scrollbar_vertical{ 
     width: 100%!important; 
} 
.select2-results .mCSB_scrollTools .mCSB_draggerRail{ 
     margin-left: 96%!important; 
}
票数 0
EN

Stack Overflow用户

发布于 2017-05-29 22:22:29

给出的另一个答案有点类似于hack,所以我进一步研究了一下,发现select2实际上将鼠标滚轮事件绑定到结果列表,因此在.select2- result中的ul元素上触发了鼠标滚轮事件。

要解决这个问题,只需先解除ul元素上的鼠标滚轮:

代码语言:javascript
复制
$(".select2").on('select2:open', function (evt) {    
  // Unbind mousewheel event from select2 result lists
  $(".select2-results ul.select2-results__options").unbind("mousewheel");  
  $('.select2-results').mCustomScrollbar();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36081844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档