页面闪烁效果1
页面闪烁效果2
封装一个全局loading组件
class GlobalLoading extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
}
connectedCallback() {
this.render();
this.init();
}
render() {
this.shadowRoot.innerHTML = `
<style>
.loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.9);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.loading-spinner {
border: 4px solid #f3f3f3;
border-top: 4px solid #3498db;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
<div class="loading-overlay">
<div class="loading-spinner"></div>
</div>
`;
}
init() {
window.addEventListener('load', () => {
setTimeout(() => {
this.shadowRoot.querySelector('.loading-overlay').style.display = 'none';
}, 500);
});
}
}
customElements.define('global-loading', GlobalLoading);
引入全局 loading 组件
<script src="./components/global-loading.js" defer></script>
使用全局loading组件
<global-loading></global-loading>
