解決js控制元素背景圖片切換時的閃屏問題
解決js控制元素背景圖片切換時的閃屏問題
看一個例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.div1 {
width: 100vw;
height: 100vh;
background-position: center;
background-size: cover;
}
.bg1 {
background-image: url('./img/bg1.png');
}
.bg2 {
background-image: url('./img/bg2.png');
}
</style>
</head>
<body>
<div class="div1 bg1"></div>
<script>
window.onload = () => {
const div1 = document.querySelector('.div1');
const timer = setInterval( () => {
if(div1.classList.contains('bg1')) {
div1.classList.replace('bg1', 'bg2');
} else {
div1.classList.replace('bg2', 'bg1');
}
}, 1000);
}
</script>
</body>
</html>
我想實現的效果就是div1的背景圖片來回切換,時間間隔為1s。
效果實現了,但第一次進入頁面時會出現一下閃屏現象
原因為:我的bg2.png圖片沒有預載入,在js切換到它時它並沒有載入完成,所以出現閃屏
解決辦法:先預載入圖片,再新增效果
程式碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.div1 {
width: 100vw;
height: 100vh;
background-position: center;
background-size: cover;
}
.bg1 {
background-image: url('./img/bg1.png');
}
.bg2 {
background-image: url('./img/bg2.png');
}
</style>
</head>
<body>
<div class="div1 bg1"></div>
<script>
window.onload = () => {
const div1 = document.querySelector('.div1');
const img1 = new Image();
img1.src = './igm/bg2.png';
img1.onload = function () {
const timer = setInterval( () => {
if(div1.classList.contains('bg1')) {
div1.classList.replace('bg1', 'bg2');
} else {
div1.classList.replace('bg2', 'bg1');
};
}, 1000);
};
};
</script>
</body>
</html>
定義一個Image物件,併為它設定src屬性,就相當於為瀏覽器快取了一張圖片。
vw,vh不懂的參考文章:通俗易懂——css長度單位:px、em、rem、vh、vw、in、…
相關文章
- 解決切換Fragment的黑色閃屏問題Fragment
- 巧妙的有css合併圖片解決tab切換的背景圖片CSS
- Android 解決表情皮膚和軟鍵盤切換時跳閃的問題Android
- js圖片切換例項JS
- Qt中按鈕背景圖片的切換設定QT
- 想把圖片當背景,但是其他控制元件背景設為透明色後,顯示的是背景顏色的問題解決控制元件
- 幻燈片放映模式切換windows terminal背景圖片模式Windows
- dialog橫豎屏切換時消失的解決方法
- Ubuntu 16.04 Vysor 破解 和黑屏問題解決+ 閃屏問題解決Ubuntu
- 解決繪圖時閃爍問題的一點經驗繪圖
- Android 解決Activity切換時出現白屏問題Android
- Android解決Activity切換時出現白屏問題Android
- 小程式背景圖片問題
- win10怎麼自定義背景圖切換_win10自定義背景圖片隨機切換的步驟Win10隨機
- 網頁Banner圖片切換js的使用網頁JS
- css滑鼠浮劃過切換按鈕背景圖片CSS
- 完美解決setInterval在瀏覽器切換時加速的問題瀏覽器
- Windows Phone 實用開發技巧(30):Pivot切換時同時漸變背景圖片Windows
- JS圖片Switchable切換大集合JS
- DNS解析(網路切換的問題解決)DNS
- JavaScript元素點選背景顏色切換JavaScript
- css實現滑鼠滑過切換背景圖片程式碼CSS
- 馬賽克效果的JS圖片切換程式碼JS
- 使用雙快取解決 Canvas clearRect 引起的閃屏問題快取Canvas
- WPF 讀取圖片 賦值Image控制元件 解決圖片佔用問題賦值控制元件
- switchable圖片切換
- CSS如何控制背景圖片的位置CSS
- ios手機豎屏拍照圖片旋轉90°問題解決方法iOS
- css切背景圖片(background-position)CSS
- 解決Hexo關於圖片的問題Hexo
- jQuery 圖片垂直切換效果詳解jQuery
- vue渲染時閃爍{{}}的問題及解決方法Vue
- js隨機切換背景音樂JS隨機
- asp.net 給button 控制元件 換個背景圖片ASP.NET控制元件
- 解決ImageView超出父控制元件(或螢幕邊界)時,圖片擠壓問題View控制元件
- nginx 解決圖片跨域問題Nginx跨域
- 滑鼠滑過改變元素的背景圖片
- IDEA更換背景圖片Idea