nicescroll,需要在 div 改变它的大小时自动调整大小
nicescroll, need to resize automatically when div changes it size
我有 <article>
标签,其中包含很多文本,通常在旁边显示一个 jquery nicescroll,但如果它包含一个可以改变高度的元素(某些可折叠元素) <article>
标签和 nicescroll 不想重新加载。
我的代码:
<article class="item">
<div class="reference">some text</div>
<a href="#long-2" data-toggle="collapse" class="reference-long arr_down"></a>
<div id="long-2" class="collapse">some text</div>
</div>
如果我点击a
,article
会变大,但我需要重新加载漂亮的卷轴,当折叠的项目再次关闭时,我需要做同样的事情。
jquery,它有时会起作用,但在 Safari 浏览器中不起作用:
$(document).ready(
function() {
$("article").niceScroll({cursorcolor:"#fff",autohidemode:false, zindex: 999});
}
);
$(function() {
$('.reference-long').click(function(){
$("article").getNiceScroll().remove();
$("article").niceScroll({cursorcolor:"#fff",autohidemode:false, zindex: 999});
});
});
使用resize()
函数代替remove()
$("article").getNiceScroll().resize();
这就是解决方案
$("article").getNiceScroll().resize();
但请注意,如果您正在使用任何动画,则必须在调用 .resize()
函数之前让动画完成。
示例:
$('.reference-long').click(function(){
$("#long-2").slideToggle(function(){
$("article").getNiceScroll().resize();
});
});
我有 <article>
标签,其中包含很多文本,通常在旁边显示一个 jquery nicescroll,但如果它包含一个可以改变高度的元素(某些可折叠元素) <article>
标签和 nicescroll 不想重新加载。
我的代码:
<article class="item">
<div class="reference">some text</div>
<a href="#long-2" data-toggle="collapse" class="reference-long arr_down"></a>
<div id="long-2" class="collapse">some text</div>
</div>
如果我点击a
,article
会变大,但我需要重新加载漂亮的卷轴,当折叠的项目再次关闭时,我需要做同样的事情。
jquery,它有时会起作用,但在 Safari 浏览器中不起作用:
$(document).ready(
function() {
$("article").niceScroll({cursorcolor:"#fff",autohidemode:false, zindex: 999});
}
);
$(function() {
$('.reference-long').click(function(){
$("article").getNiceScroll().remove();
$("article").niceScroll({cursorcolor:"#fff",autohidemode:false, zindex: 999});
});
});
使用resize()
函数代替remove()
$("article").getNiceScroll().resize();
这就是解决方案
$("article").getNiceScroll().resize();
但请注意,如果您正在使用任何动画,则必须在调用 .resize()
函数之前让动画完成。
示例:
$('.reference-long').click(function(){
$("#long-2").slideToggle(function(){
$("article").getNiceScroll().resize();
});
});