【发布时间】:2021-10-02 16:47:14
【问题描述】:
我必须制作一个与one 非常相似的网页。我为此使用 Nuxt,我在以完全相同的方式使视频扩大和缩小时遇到了问题。
我已尝试在StackBlitz here 上复制该问题。该指令实际上无法正常工作。我想在视频进入视口后立即实现完全相同的过渡。
自定义指令的代码 -
export default {
directives: {
inView: {
isLiteral: true,
inserted: (el, binding, _) => {
const isInView = () => {
const rect = el.getBoundingClientRect();
const inView = (rect.width > 0 && rect.height > 0 && rect.top >= 0 &&
(rect.bottom + 100) <= (window.innerHeight || document.documentElement.clientHeight));
if (inView) {
el.classList.add(binding.value);
// window.removeEventListener('scroll', isInView);
} else {
el.classList.remove(binding.value);
}
};
window.addEventListener('scroll', isInView);
isInView();
}
}
}
}
【问题讨论】:
标签: javascript vue.js nuxt.js vue-directives