如何让Loader覆盖整个页面?解决当前仅覆盖顶部的问题
解决Loader无法全屏覆盖的问题
你的Loader仅覆盖页面顶部,主要是三个细节问题导致的,修改后就能实现全屏覆盖效果:
- 定位方式问题:
.loader-wrapper使用position: absolute时,高度会受父元素影响,改为position: fixed可直接基于浏览器视口定位,确保始终覆盖全屏。 - 根元素高度缺失:未给
html和body设置全屏高度,导致.loader-wrapper的height: 100%无法继承到完整视口高度。 - jQuery选择器错误:
$("loader-wrapper")缺少类选择器的点号,应该是$(".loader-wrapper"),否则无法正确选中元素执行淡出效果。
修改后的完整代码
CSS 部分
/* 先给根元素设置全屏高度,确保子元素的100%高度生效 */ html, body { height: 100%; margin: 0; padding: 0; } /*loader*/ .loader-wrapper { width: 100%; height: 100%; position: fixed; /* 改为fixed,固定在浏览器视口 */ top: 0; left: 0; background-color: #333233; display:flex; justify-content: center; align-items: center; z-index: 9999; /* 确保Loader在所有页面内容上方 */ } .loader { display: inline-block; width: 30px; height: 30px; position: relative; border: 4px solid #Fff; animation: loader 3s infinite ease; } .loader-inner { vertical-align: top; display: inline-block; width: 100%; background-color: #fff; animation: loader-inner 3s infinite ease-in; } @keyframes loader { 0% { transform: rotate(0deg);} 25% { transform: rotate(180deg);} 50% { transform: rotate(180deg);} 75% { transform: rotate(360deg);} 100% { transform: rotate(360deg);} } @keyframes loader-inner { 0% { height: 0%;} 25% { height: 0%;} 50% { height: 100%;} 75% { height: 100%;} 100% { height: 0%;} }
HTML/JS 部分
<!--loader--> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha512-AFwxAkWdvxRd9qhYYp1qbeRZj6/iTNmJ2GFwcxsMOzwwTaRwz2a/2TX225Ebcj3whXte1WGQb38cXE5j7ZQw3g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <div class="loader-wrapper"> <span class="loader"><span class="loader-inner"></span></span> </div> <script> $(window).on("load",function(){ $(".loader-wrapper").fadeOut("slow"); // 修复类选择器,添加点号 }); </script> <!--loader-->
内容的提问来源于stack exchange,提问作者Buse Nur
相关产品推荐
相关产品推荐

