如何解决当元素存在于 DOM 中时触发 JS 脚本
我正在使用 Ajaxify
构建一个 Wordpress 网站,以在页面之间创建平滑过渡。
在我的自定义模板 page-about.php
中,我有一个 JS 脚本来创建粘性水平滚动。该脚本工作正常。但是当我通过在 AJAX
网站上导航来更改页面时。它释放以下错误:
TypeError: null is not an object (evaluating 'sticky.offsetTop')
这是JS脚本:
if ($('.wrapper-horizontal').length) {
const spaceHolder = document.querySelector('.space-holder');
const horizontal = document.querySelector('.horizontal');
spaceHolder.style.height = `${calcDynamicHeight(horizontal)}px`;
function calcDynamicHeight(ref) {
const vw = window.innerWidth;
const vh = window.innerHeight;
const objectWidth = ref.scrollWidth;
return objectWidth - vw + vh + 150;
}
window.addEventListener('scroll',() => {
const sticky = document.querySelector('.is-sticky-h');
horizontal.style.transform = `translateX(-${sticky.offsetTop}px)`;
});
window.addEventListener('resize',() => {
spaceHolder.style.height = `${calcDynamicHeight(horizontal)}px`;
});
//# sourceURL=pen.js
}
我尝试了这个解决方案,但在我的情况下不起作用:
document.addEventListener('readystatechange',function() {
if (document.readyState === "complete") {
// Do something
}
});
任何帮助将不胜感激。谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。