Эта статья помогла объяснить, как браузер загружает скрипты, но как лучше проверить, существует ли объект, прежде чем пытаться его инициализировать?
При связывании headroom.js здесь, я в настоящее время проверяю, содержит ли объект окна это. Это нормально, или я должен использовать какую-то форму script.onload ?
<script src="js/main.js"></script>
<script src="js/libs/ScrollTrigger.min.js" defer></script>
<script src="https://unpkg.com/headroom.js@0.9.4/dist/headroom.min.js" async></script>
<script defer>
document.addEventListener('DOMContentLoaded', function(){
// setup ScrollTrigger (animate when item comes into view)
var trigger = new ScrollTrigger({
offset: {x:0, y:300},
once: true
});
// bind Headroom to nav
if(window.Headroom){
init_headroom();
}else{
console.log('polling for Headroom '+Date.now());
let poll_for_headroom = window.setInterval(function(){
if(window.Headroom){
clearInterval(poll_for_headroom);
init_headroom();
}
},20);
}
Дополнительные вопросы:
2a) Будет ли этот вид пользовательского интерфейса избирательного блока? 2b) Должен ли я проверять, существует ли ScrollTrigger.min.js?