Я пытаюсь вызвать функцию myFunction
только один раз, когда один из элементов #checkPosition
попадает в верхнюю часть окна, а потому что мне нужно использовать $(window).scroll()
для обнаружения действия (прокрутка) и в какой-то момент Значение прокрутки totalScroll
всегда больше, чем расстояние этого элемента до вершины indicatorPosition
, функция вызывается несколько раз.
Как я могу вызвать эту функцию только один раз?
HTML:
<div class="section section--1">
<p>Section 1</p>
</div>
<div class="section section--2">
<p>Section 2</p>
<div id="checkPosition" class="indicator">Check position</div>
<div id="targetElement" class="target">Target: </div>
</div>
CSS (просто чтобы получить некоторую высоту):
.section {
min-height: 1000px;
}
JS:
const indicatorPosition = $('#checkPosition').offset().top;
console.log("indicators initial position:", indicatorPosition);
var myFunction = function(){
$('#targetElement').append('new text goes here only once. ');
console.log("call me only once");
}
$(window).scroll(function(){
var totalScroll = $(window).scrollTop();
if (totalScroll > indicatorPosition) {
myFunction();
}
});