Stack Overflow на русском Asked on December 7, 2021
Всем добрый день! Нашел в интернете функцию отслеживания появление блока на экране по классу. Но вопрос такой у меня несколько таких блоков, и необходимо получить id показываемого блока в данный момент. Буду рад если кто-то поможет! Спасибо!
var block_show = null;
function scrollTracking() {
var wt = $(window).scrollTop();
var wh = $(window).height();
var et = $('.active').offset().top;
var eh = $('.active').outerHeight();
if(wt + wh >= et && wt + wh - eh * 2 <= et + (wh - eh)) {
if (block_show == null || block_show == false) {
console.log('Блок active в области видимости');
}
block_show = true;
} else {
if(block_show == null || block_show == true) {
console.log('Блок active скрыт');
}
block_show = false;
}
}
$(window).scroll(function() {
scrollTracking();
});
$(document).ready(function() {
scrollTracking();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="active">Active</div>
Если Вы хотите отслеживать ID текущего блока, который находиться в области видимости, то:
let block_show = null
let current_block_id = null
function scrollTracking() {
const wt = $(window).scrollTop()
const wh = $(window).height()
const active = $(".active")
const et = active.offset().top
const eh = active.outerHeight()
if (wt + wh >= et && wt + wh - eh * 2 <= et + (wh - eh)) {
if (block_show == null || block_show == false) {
console.log("Блок active в области видимости")
}
block_show = true
current_block_id = active.attr("id")
console.log("ID: " + current_block_id)
} else {
if (block_show == null || block_show == true) {
console.log("Блок active скрыт")
}
block_show = false
current_block_id = null
}
}
$(window).on("scroll", function() {
scrollTracking()
})
$(document).ready(function() {
scrollTracking()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="active" id="id12345">Active</div>
Answered by Vasily on December 7, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP