У меня есть список элементов, которые организованы в алфавитном порядке на странице. Я хотел бы создать фиксированный элемент сбоку страницы, которая показывает, в какой строке письма вы сейчас прокручиваетесь.Получить идентификатор текущего элемента в поле зрения
Например, если вы прокручиваете элементы, начиная с буквы «D», фиксированный div отобразит «D». Я пытаюсь создать это с помощью jQuery, но считаю это сложным.
Каждая секция имеет класс «карточный контейнер» и «идентификатор», соответствующий текущей букве.
ie.
<div id="a" class="card-container">
...
</div>
<div id="b" class="card-container">
...
</div>
<div id="c" class="card-container">
...
</div>
...
Любая идея, как я могу это сделать?
EDIT
До сих пор у меня есть это:
$(window).scroll(function() {
var winTop = $(this).scrollTop();
var letters = $('.card-container');
letters.each(function(section) {
if($(this).position().top <= winTop) {
console.log($(this).context.id);
$('.letter-show h3').text($(this).context.id);
}
});
});
Так что это, кажется, работает, но я чувствую, что это не очень производительным. Любые предложения по улучшению этого?
вы можете получить положение точки мыши и связать это с позиции ДИВ ИЛИ, произвольной позиции, которые вы определили. – taesu
Ну, вы можете положиться на позицию смещения каждого элемента, а также текущую позицию прокрутки, чтобы определить, какой элемент должен быть нацелен. – plalx
Существует не так много, чтобы улучшить свой код - на несколько миллисекунд больше. – Shomz