1

这是一个有趣的问题,我真的想知道这是否可能。我有一个可滚动的 div,它的内容不断进出变化,有时滚动条是必要的,有时则不是。

在那些一旦开始向下滚动就有必要的情况下,我想为其添加一个顶部边框以表示与其周围的内容分离。

有css或jQuery解决方案吗?

我的html只是

<div class="scrollableDiv">
  <p>Content</p>
</div>

而css只是让它现在可以滚动

.scrollableDiv{
  height:42em;
  overflow-x:hidden;
  min-height:42em;
}
4

2 回答 2

0

id向 div添加一个属性,确定它是否有滚动条,如果有,则通过 jQuery 添加一个 css 类。

$('#myId').addClass('applyTopBorder');

根据您强调的要求进行更新:

正如 Patrick 在我制作工作 jsfiddle时提到的,您可以使用滚动处理程序。

于 2013-11-08T20:06:44.220 回答
0

在 jquery 中,.scroll()监听器...

.on( "scroll", handler )...的捷径

当用户滚动到元素中的不同位置时,滚动事件被发送到元素。它适用于窗口对象,也适用于具有溢出 CSS 属性设置为滚动(或当元素的显式高度或宽度小于其内容的高度或宽度时自动)的可滚动框架和元素。

换句话说,当用户滚动它时,它将触发带有滚动条的 div。

但是,请注意

...高频事件,例如mousemove每秒scroll can触发数十次,在这些情况下,明智地使用事件变得更加重要。

您提到向下滚动,这将需要事件句柄之间的计算和内存。这会使您面临使用幼稚的滚动处理程序损害性能的危险。

我建议采用以下方法:

  1. 不要在.scroll处理程序本身中完成工作,只需将其用作启动工作的催化剂。
  2. 让滚动处理程序自行删除,因此一旦您确定事件是向下滚动,它就不会一直触发。
  3. 相反,设置超时以重新检查用户是否仍在向下滚动。
  4. 如果他们停止滚动,请从相关类中删除您的 css 并将滚动处理程序重新添加到相关 DOM 元素,因此如果他们再次滚动,您就可以开始了。
于 2013-11-08T20:21:41.917 回答