对于angular,我尝试使用ScrollTrigger进行水平滚动。
它是有效的,但当我发球或构建时,我出现了错误:类型"Element"上不存在属性"offsetWidth"。
这是gsap的代码:
gsap.to(sections, {
xPercent: -100 * (sections.length - 1),
ease: "none",
scrollTrigger: {
trigger: ".panel-container",
pin: true,
scrub: 1,
snap: 1 / (sections.length - 1),
end: () => "+=" + document.querySelector(".panel-container").offsetWidth
}
});
即使我得到了错误,它也能工作,当我控制台记录";document.query..";我得到了很好的元素宽度。
但是这个错误使我无法构建。我已经做了演员的事情,首先是:
let myElem = document.querySelector(".panel-container").offsetWidth as HTMLElement;
或者使用之前的,但这不起作用,我有一条带红色下划线的线,上面有错误消息:将类型"string"转换为类型"HTMLElement"可能是一个错误,因为两种类型都没有充分重叠。
我的角度项目是10.0.5。
尝试了答复中的解决方案:
(document.querySelector(".panel-container") as HTMLElement).offsetWidth;
但在红色下划线上出现了这个错误,但当我发球时,控制台上没有任何错误。
将类型"Element"转换为类型"HTMLElement"可能是一个错误,因为两种类型都没有充分重叠。如果这是故意的,请先将表达式转换为"unknown"。类型"Element"缺少类型"HTMLElement"中的以下属性:accessKey、accessKeyLabel、autocapitalize、dir和其他105个。ts(2352(
尝试键入querySelector
的预期输出。
即:
document.querySelector<HTMLElement>(".panel-container").offsetWidth
结果可能为null,因此如果启用了strictNullChecks,则需要首先执行null检查:
if(element!==null({…}