Во-первых, вы должны определить, когда раздел виден. Так что немного вычислений не требуется. То есть:
- Чтобы получить позицию сечения в документе
- Чтобы получить высоту области просмотра
- При прокрутке получите позицию прокрутки
Затем, используя флаг, запустить функцию один раз ...
Проверено на CodePen
// Flag to execute the function only once
let typeTextStarted = false;
// Get the section<s position in the document
let mysectionPosition = $("#mysection").offset()
// Get the view port height
let viewportHeight = $(window).height();
$(window).on("scroll", function() {
// If scrolled position is more than the section's position MINUS the viewport height
if ($(this).scrollTop()>mysectionPosition.top - viewportHeight && !typeTextStarted) {
// Set flag
typeTextStarted = true;
new TypingText(document.getElementById("example1"));
TypingText.runAll();
}
});