我知道以前有人问过这个问题,但是这些解决方案对我不起作用。这可能与使用的图像有关。
这是我的html:
<div id="tour">
<section class="first js-background"> // this section is repeated 5 more times
<div class="background js-first"></div>//image located in here 300 px height
<div class="copy">
<h6>Line one</h6>
<h1 class="space large">Line two</h1>
<h6>Line three</h6>
</div>
</section>
</div>
javascript 检查是否可见:
$('.js-background').each(function(x, item) {
var $current = $(item),
$window = $(window),
elemTop = $current.offset().top,
elemBottom = elemTop + $current.height(),
docViewTop = $(window).scrollTop(),
docViewBottom = docViewTop + $(window).height(),
if ((elemBottom >= docViewTop) && (elemTop <= docViewBottom)
&& (elemBottom <= docViewBottom) && (elemTop >= docViewTop) ) {
//do code here if true
}
}
我也试过这个插件
带代码:
if ($current.visible()) {
//if visible do something
}
对于这两种类型的代码,当我触发函数时,只有第一部分在浏览器窗口中可见。if 语句返回 true 6 次。
图像是背景而不是 img 标签
CSS:
#tour .first .background{
background: url('/Content/images/1.jpg') center center no-repeat;
background-size: 100%;
height: 350px;
}