我有一个 div,为了让它更漂亮,我在那个 div 上使用了SlimScroll jQuery 插件
$('#scrollable').slimscroll({
color: '#900',
size: '8px',
width: '300px',
height: '500px'
});
现在有一段时间我希望这个 div 不再具有此属性(但具有浏览器默认滚动条)。我怎样才能删除slimscroll
?
我有一个 div,为了让它更漂亮,我在那个 div 上使用了SlimScroll jQuery 插件
$('#scrollable').slimscroll({
color: '#900',
size: '8px',
width: '300px',
height: '500px'
});
现在有一段时间我希望这个 div 不再具有此属性(但具有浏览器默认滚动条)。我怎样才能删除slimscroll
?
$("#scrollable").slimScroll({destroy: true});
我做了这个功能在我的情况下效果很好
function destroySlimscroll(objectId) {
$("#"+objectId).parent().replaceWith($("#"+objectId));
}
我这样做了,它比我看到的任何其他解决方案都好用..
$(".slimScrollBar,.slimScrollRail").remove();
$(".slimScrollDiv").contents().unwrap();
尝试调用destroy
它的方法,希望它支持。
$('#scrollable').slimscroll("destroy");
您还可以删除插件应用的所有内联样式
$('#scrollable').attr('style', '');
我在大型 SPA 应用程序中遇到了麻烦。即使调用了 slimScroll 的销毁方法,滚动也只是不断堆积。
所以这是我的解决方案。
$('.slimScrollBar,.slimScrollRail').remove();
$('.slimScrollDiv').each(function(){
$(this).replaceWith($(this).children());
})
此代码运行并销毁所有卷轴,然后控制器可以根据需要自由绑定卷轴。
没有一个答案对我有用,所以我想我会分享我的解决方案。
我加载了一个名为handleScroller()
on的函数document.ready()
。当我执行更新时,ul li
我再次调用该handleScroller()
函数,以便 slimScrollDiv 被破坏并再次重建。我也设置了 ul 容器的高度。它似乎工作得很好。这是我的代码示例:
style.css 中的 CSS .scroller{height: 182px;}
HTML/引导菜单
<ul class="nav navbar-nav pull-right">
<!-- slimScroll notifications -->
<li id="header_notification_bar" class="hidden dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
<i class="fa fa-bell"></i>
<span class="badge">
6
</span>
</a>
<ul id="notifications" class="dropdown-menu extended"></ul>
</li>
<!--other menu items ... //-->
</ul>
JS/jQuery
$(document).ready(function(){
handleScroller();
VisitedHandler();
});
function VisitedHandler(){
$("#notifs li").on("click",function(){
$("#notifications").html('');
$('ul#notifs').html('');
$("#notifications").append('<li><ul id="notifs" class="dropdown-menu-list scroller"></li>');
var ul = $('#notifs');
ul.append('<li id="general">New Announcement</li>')
ul.append('<li id="enhancements">New Page Enhancements</li>');
handleScroller();
});
}
function handleScroller(){
$("#notifs").slimscroll({destroy:true});
var notes = $("#notifs");
var height = notes.css("height");
if($('#notifs .nws').size() < 5 && $('#notifs .nws').size() != 0)
height = $('#notifs .nws').size() * 40 + 22;
else
height = 182;
//no Notifications
if($('#notifs .nws').size() == 0)
height = 0;
$("#notifs").slimScroll({
size: '10px',
color: '#a1b2bd',
railColor:'#272727',
position: 'right',
height: height,
alwaysVisible: true,
railVisible: true,
disableFadeOut: true
});
}
注意:这里有一个解决方案将handleScroller()
逻辑包装在setInterval()
. setInterval()
我建议尽可能远离。
启用 slimscroll 和禁用 slimscroll $('#scrollable').slimscroll("destroy");