gpt4 book ai didi

javascript - 检查元素在 div 中是否可见

转载 作者:太空狗 更新时间:2023-10-29 15:01:40 25 4
gpt4 key购买 nike

我有一个里面有很多 li 的 div。

<div>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
...
</div>

通常当用户在窗口内滚动时,一些 <li>的进入溢出,将被隐藏。我知道我可以使用这个 jQuery 插件检查元素是否在屏幕的视口(viewport)中:http://www.appelsiini.net/projects/viewport我只需要此功能,但不是针对整个屏幕,而是仅针对单个 div。所以我可以在元素不可见时更新一些文本。

需要一些帮助,提前致谢!

最佳答案

This是一个很好的答案,但这是您提到的 Viewport 插件的修改版本。

(function($) {

$.belowthefold = function(lookIn, elements, settings) {
var fold = $(lookIn).height() + $(lookIn).scrollTop();
return $(elements).filter(function(){
return fold <= $(this).offset().top - settings.threshold;
});
};

$.abovethetop = function(lookIn, elements, settings) {
var top = $(lookIn).scrollTop();
return $(elements).filter(function(){
return top >= $(this).offset().top + $(this).height() - settings.threshold;
});
};

$.rightofscreen = function(lookIn, elements, settings) {
var fold = $(lookIn).width() + $(lookIn).scrollLeft();
return $(elements).filter(function(){
return fold <= $(this).offset().left - settings.threshold;
});
};

$.leftofscreen = function(lookIn, elements, settings) {
var left = $(lookIn).scrollLeft();
return $(elements).filter(function(){
return left >= $(this).offset().left + $(this).width() - settings.threshold;
});
};

})(jQuery);

像这样的 HTML:

<div id="lookInMe">
<div class="peek"></div>
<div class="peek"></div>
[ ... ]
</div>

这样调用它:

$.belowthefold("#lookInMe", ".peek", {threshold : 0}).text("Below");
$.abovethetop("#lookInMe", ".peek", {threshold : 0}).text("Above");
$.leftofscreen("#lookInMe", ".peek", {threshold : 0}).text("Left");
$.rightofscreen("#lookInMe", ".peek", {threshold : 0}).text("Right");

http://jsfiddle.net/daCrosby/vhF7x/1/

关于javascript - 检查元素在 div 中是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com