为什么每次添加或删除新的 class 时,通过 css 自定义 属性 分配的伪元素中的背景图像都会被提取和呈现?
Why is the background-image in a pseudoelement assigned through a css custom property fetched and rendered every time a new class is added or removed?
我在文档正文中有以下 html,CSS 和 Javascript 代码:
const bgContainer = document.querySelector('.bg-container');
bgContainer.addEventListener('mouseover', () => {
bgContainer.classList.add('test');
});
bgContainer.addEventListener('mouseout', () => {
bgContainer.classList.remove('test');
});
.bg-container {
height: 50vh;
position: relative;
--background: url('https://specials-images.forbesimg.com/imageserve/513343414/960x0.jpg?fit=scale');
}
.bg-container::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: blue;
background-size: cover;
background-image: var(--background);
}
<div class="bg-container"></div>
每次我将鼠标悬停在背景容器内外时,都会获取并渲染背景图像,从而导致布局发生快速变化。为什么会发生这种情况,我该如何避免这种情况?
问题是由于我打开 Chrome 开发工具时禁用了缓存。启用缓存可解决问题。
我在文档正文中有以下 html,CSS 和 Javascript 代码:
const bgContainer = document.querySelector('.bg-container');
bgContainer.addEventListener('mouseover', () => {
bgContainer.classList.add('test');
});
bgContainer.addEventListener('mouseout', () => {
bgContainer.classList.remove('test');
});
.bg-container {
height: 50vh;
position: relative;
--background: url('https://specials-images.forbesimg.com/imageserve/513343414/960x0.jpg?fit=scale');
}
.bg-container::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: blue;
background-size: cover;
background-image: var(--background);
}
<div class="bg-container"></div>
每次我将鼠标悬停在背景容器内外时,都会获取并渲染背景图像,从而导致布局发生快速变化。为什么会发生这种情况,我该如何避免这种情况?
问题是由于我打开 Chrome 开发工具时禁用了缓存。启用缓存可解决问题。