javascript - DOM中存在元素时触发JS脚本
问题描述
我正在构建一个 Wordpress 网站,Ajaxify
用于在页面之间创建平滑过渡。
在我的自定义模板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
}
});
任何帮助将非常感激。谢谢!
解决方案
推荐阅读
- vb.net - 使用 EWS,CcRecipients 和 DisplayCc 不匹配
- bash - Bash 选择格式
- android - 我是编程新手。我正在尝试制作 android app soundrecoder
- sql - 在where子句中带有大小写的sql
- okta - IOS 10 上 React Native 中的 Okta
- sandcastle - Sandcastle 帮助文件生成器在线发布
- django - django迁移文件中依赖数组的目的是什么
- javascript - JS 用 event.target 获取被点击的元素
- python - CPLEX Python API 如何将决策变量与目标函数中的虚拟变量相乘?
- docker - 使用 traefik 时如何映射 docker 容器内的特定端口?