我怎样才能使元素在视口中可见?jQuery
How can I get the element visible in the viewport? jQuery
我有一个页面上的图像列表。当我滚动页面时,我想在当前视口中的图像的导航栏中显示一些选项。因此,我需要得到图像元素目前在视口,这是可能的吗?
Jakob
谁说在视口中只有一个图像?当有很多人的时候,你想做什么?
但除此之外,你总是可以得到你的图像容器的滚动位置以及你的图像的顶部偏移量,看看哪个是当前在视图
这些值将会得到你的结果
- 容器滚动位置
- 集装箱可见客户端高度
- 图片的顶部偏移
使用这些值可以定位视图中的所有图像,无论它们是完全显示还是部分显示(在顶部还是底部)。
这是一个简化的JSFiddle,它在第一个全视图图像周围给出了红色边框。代码是这样做的:
// get top positions and references to all images
var pos = $("img").map(function(){
var $this = $(this);
return {
el: $this,
top: $this.offset().top
};
}).get();
// provide document scrolling
$(document).on("scroll", function() {
$("img").removeClass("first-in-view");
var scroll = $(this).scrollTop();
var i = 0;
while(pos[i].top < scroll) i++;
pos[i].el.addClass("first-in-view");
}).scroll();
应该优化为只在需要时切换class。否则我们在每个卷轴上都有闪烁。但它展示了如何做到这一点,你可以从这里开始。
重要将图像位置确定过程附加在文档加载事件上,而不是通常使用DOM ready,这是非常重要的,因为您必须等待文档加载才能使图像具有最终位置。
相关文章:
- 将视口底部滚动到元素底部
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 使用条件语句,使 jquery fadeIn/fadeOut 仅在视口 >= 480px 时才有效
- 使jquery延迟加载插件在视口内工作
- jQuery调整大小和视口检查点
- 适用于 iOS 视口的 jQuery 修复
- 在视口调整大小时完全从 DOM 解绑 Jquery 插件
- 仅当具有相同类的元素的中间使用 jQuery 航点到达视口时,才淡入具有相同类的元素
- 如果视口宽度小于X,有没有办法阻止jQuery提交
- 如何在jQuery中获得鼠标点击相对于视口的光标坐标
- 是否有一种方法来初始化和取消初始化基于视口大小的jquery插件
- jQuery获取视口大小的高度,但是-(n)px
- 使用jquery从iframe获取浏览器视口的高度
- 使用jquery检索移动浏览器中屏幕的视口高度
- Jquery + CSS根据视口宽度大小显示/隐藏表元素
- jQuery.似乎仅在整个元素是视口时才触发
- jQuery航点,在视口中心而不是顶部激活
- 使用 jQuery 使元素填充浏览器视口的整个高度
- 在页面加载时使用JavaScript/JQuery转换相对/视口大小为固定大小
- 通过Jquery draggable选择移出视口的元素