8
A
回答
9
Jquery.fracs插件似乎正是你所需要的。
function callback(fracs: Fractions, previousFracs: Fractions) {
if(fracs > 0.5)
doSomething();
};
var fracs = $("img").fracs(callback);
3
你的窗口是
和 如果 之间$(document).scrollTop()
$(document).scrollTop() + $(window).height()
$(element).offset().top
那些介于,它应该是可见的。
编辑:我假设你的元素(其能见度是确定的)绝对定位。如果不是,那会更复杂一点。
编辑2:这只是为了确定垂直偏移情况下的可视性。对于水平版本,将“scrollTop”替换为“scrollLeft”,将“height”替换为“宽度”,将“顶部”替换为“左”。
1
有一个整洁的插件,jQuery fracs专为此目的而编写。
0
var $w = $(window), wh = $w.height(),
top = $w.scrollTop(), bottom = top + wh,
$img = $("#image"),
imgCenter = $img.offset().top + $img.height()/2;
if (imgCenter >= top && imgCenter < bottom) {
// the image is half-visible
}
+0
答案的一些解释会对此有所帮助 –
0
您想检查该项目是否可以从屏幕底部或顶部查看。这样的逻辑是这样的:
on window scroll event
if item.y is less than scroll.y, calculate amount off screen
if item.y + item.height is greater than scroll.y + scroll.height, calculate amount off screen
deduct both values off the item.height to find the total off screen
create a percentage of this
因此JavaScript这样的工作是这样的:
var el = document.getElementById('item1'),
rect = el.getBoundingClientRect(),
item = {
el: el,
x: rect.left,
y: rect.top,
w: el.offsetWidth,
h: el.offsetHeight
};
window.addEventListener('scroll', function (e) {
var deduct = 0,
percentage = 0,
x = window.pageXOffset,
y = window.pageYOffset,
w = window.innerWidth,
h = window.innerHeight;
if (item.y < y) {
deduct += (y - item.y);
}
if ((item.y + item.h) > (y + h)) {
deduct += (item.y + item.h) - (y + h);
}
if (deduct > item.h) {
deduct = item.h;
}
percentage = Math.round(((item.h - deduct)/item.h) * 100);
});
我已经排除了对旧版浏览器的支持,但如果你需要它,它会是:
x = (window.pageXOffset !== undefined) ? window.pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft,
y = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop,
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
相关问题
- 1. Vue 2检查元素是否在视口上可见
- 2. 如何检查一个元素是否在屏幕上完全可见?
- 3. 滚动型:检查是否视图是在屏幕上可见或不可见
- 4. 确定iframe中的元素是否在屏幕上可见
- 5. 检查带类的元素是否在视口中可见
- 6. 检查一个SKNode是否在屏幕上并且可见
- 7. 咖啡 - 检查屏幕是否可见
- 8. 确定元素是否在屏幕上
- 9. 如何查看屏幕中是否可见元素?
- 10. Deplhi TEmbeddedWB检查元素是否可见
- 11. 检查元素是否可见div
- 12. 检查元素是否完全可见
- 13. 查找SVG元素在视口中是否可见
- 14. 检查元素是否在屏幕上与断言,NoSuchElementException发生
- 15. 如何检查元素是否在屏幕上
- 16. 检查元素在屏幕上
- 17. 我如何验证一个元素是否在屏幕上可见?
- 18. 检查哪些元素在视口中可见(不是如果特定元素可见)
- 19. 检查文本是否在HTML元素的页面上可见
- 20. 我如何检查一个元素在php中是否可见?
- 21. 检查控制是否在屏幕上
- 22. 如何检测WebGL视口是否在屏幕上?
- 23. 如何在滚动时按类名在屏幕上检查div是否可见?
- 24. 如何检查Android中的屏幕是否真的可见?
- 25. Silverlight - 确定UIElement是否在屏幕上可见
- 26. 检查元素是否是在JavaScript中可见
- 27. 悬停时的对话框检查是否在屏幕上可见
- 28. 检测元素是否真的可见
- 29. 检查窗口标题是否可见
- 30. 检查屏幕上是否显示Vector3
您的形象是否完全定位?另外,真棒头像! –
是的,图像是绝对定位的。 – Manny