我在我的網站上有一系列圖片,都有共同的課程。當我向下滾動窗口時,我想淡入只有當前在視口內的圖像。如何定位共享類名的特定元素?
我有工作,但到目前爲止它的全部或沒有。一旦第一個圖像進入視口,所有圖像都會淡入。理想情況下,我希望它們在進入視口時逐漸淡入。
我滾動股利 - 不使用overflow-y: scroll;
我已經使用viewport插件嘗試了實際窗口,但我仍然得到同樣的結果。
這裏是我用來聽圖像中的滾動+淡入淡出的jQuery。我明白爲什麼它一次都在做 - 我只是掛在如何從圖像陣列(類)中分離出每個圖像。
$('.section-container section:nth-child(2)').scroll(function() {
$('.img-chart').each(function (key, val) {
var $chart = $(val); // Give me a jquery object of the element(s).
var src = $chart.prop('src');
if (isInView($chart)) {
console.log('in view: ' + $chart); // this is returning every image. I would like to get only the one that is currently in the viewport.
// Do stuff with the $chart element.
}
});
});
var isInView = function ($element) {
var win = $(window);
var obj = $element;
var scrollPosition = win.scrollTop();
var visibleArea = win.scrollTop() + win.height();
var objEndPos = (obj.offset().top + obj.outerHeight());
return (visibleArea >= objEndPos && scrollPosition <= objEndPos ? true : false)
};
謝謝你的任何建議!
編輯
我已經更新了我的腳本以刪除插件。也許這將有助於揭露我的缺陷。
EDIT 2
看來,當一個特定的圖像是視它看到的。 只要我滾動,我看到這(記錄什麼在視圖中)。 。
in view: http://farmersdeliver.dev/assets/img/img01.png
in view: http://farmersdeliver.dev/assets/img/img02.png
in view: http://farmersdeliver.dev/assets/img/img03.png
這導致所有圖像與該類淡入當我繼續滾動到的圖像實際上是考慮到,我得到這個:
[21] in view: http://farmersdeliver.dev/assets/img/img01.png
in view: http://farmersdeliver.dev/assets/img/img02.png
in view: http://farmersdeliver.dev/assets/img/img03.png
「21」作爲日誌當然事件。所以它正確地看到它。我只是沒有正確的邏輯,不能立即顯示所有內容......
':in-viewport'選擇器是否有效?我認爲這些選擇器是根據http://api.jquery.com/category/selectors/ –
保留的。您是對的 - 事實並非如此。它是插件的選擇器。 IDK,如果我想繼續使用它。 – Damon