1

我正在使用 jQuery 插件版本 3.10 来使用自定义滚动条。我有许多水平幻灯片,每个幻灯片都使用自己的自定义滚动条。我想包含扩展文本的 javascript .onclick 函数。但是,当我展开文本并溢出时,滚动条不会出现。我正在使用以下代码来选择应该具有 onclick 功能的标题(标签“h3”,类“click”):

function toggleNext(el) {
 var next=el.nextSibling;
 while(next.nodeType != 1) next=next.nextSibling;
 next.style.display=((next.style.display=="none") ? "block" : "none");
}

function getElementsByTagAndClassName(tag,cname) {
 var tags=document.getElementsByTagName(tag);
 var cEls=new Array();
 for (i=0; i<tags.length; i++) {
  var rE = new RegExp("(^|\s)" + cname + "(\s|$)");
   if (rE.test(tags[i].className)) {
   cEls.push(tags[i]);
   }
  }
 return cEls;
}
function toggleNextByTagAndClassName(tag,cname) {
 var ccn="clicker";
 clickers=getElementsByTagAndClassName(tag,cname);
 for (i=0; i<clickers.length; i++) {
  clickers[i].className+=" "+ccn;
  clickers[i].onclick=function() {toggleNext(this)}
  toggleNext(clickers[i]);
 }
}
window.onload=function(){toggleNextByTagAndClassName('h3','click')}

HTML 示例:

<article class="slide" id="lorem">
<div class="inner">
<h3 class="click">Lorem Ipsum</h3>
<div class="content">
<p>Sample text, is sample text, is sample text</p>
</div>

我从之前的研究中知道,我必须从 niceScroll jQuery 插件中调用 resize 函数,如下所示。

$(name-of-div).getNiceScroll().resize()

我尝试使用以 div 名称作为内容的 resize 函数,但这不会产生预期的结果。如果可以的话请帮忙。我不确定如何将两者结合起来。

4

2 回答 2

1

不确定是否理解发生了什么,但我遇到了类似的问题。尝试在 setTimeout 中使用 resize()。

请注意,“name-of-div”必须是滚动容器的名称。jQuery 代码如下所示:

setTimeout(function(){
  $('name-of-div').getNiceScroll().resize()
}, 500);

我以 500 为例,但是如果你的 div 的文本在动画时扩展,你必须使用比你的 div 动画更大的数字,当然,代码必须在所有交互之后执行

于 2014-05-20T18:52:41.997 回答
0

请参阅下面的问题。有两个答案,都对我有用。基本上,我已经应用了那里建议的第二种方法(参见第二个答案)。因为,它可以立即工作,并且在调整 div 大小后第一种方法似乎不会立即工作。

Jquery漂亮的滚动不起作用

于 2020-06-15T20:18:41.833 回答