[英]How do I make a simple fade effect on an image slider with javascript(only)?
我正在使用以下代碼來運行滑塊。 該功能運行良好。 如何使用js進行簡單的淡入效果。 沒有jQuery。 setInterval還需要等待5秒鍾才能顯示第一張圖像。 如何從圖像開始,然后以5秒間隔繼續?
var i = 0; var hello = function(){ if(i<image.length) {document.getElementById('fullscreenImage').src = image[i]; i+=1; } else i = 0; } setInterval(hello,5000);
#fullscreenImage { z-index: -999; width: 100%; height: 100%; position: fixed; top: 0; left: 0; background-size: cover; }
<img id="fullscreenImage"></img>
您可以通過逐步調整圖像的不透明度樣式屬性來實現。 這是一個簡單的示例:聲明一些HTML結構,然后使用makeSlider()函數連接滑動行為,傳遞一個包含目標圖像以及衰落參數的數組。
HTML文件示例(whatever.html):
<head>
<style type="text/css">
img {
position: absolute;
top: 0;
left: 0;
width: 300px;
visibility: hidden;
}
img:first-child {
visibility: visible;
}
</style>
<script type="text/javascript" src="slider.js"></script>
</head>
<body>
<img src="1.jpg" alt="Alt 1" />
<img src="2.jpg" alt="Alt 2" />
<script type="text/javascript">
var fadeInterval = 3000;
var fadeStep = 20;
setTimeout(function() {
makeSlider([document.images[0], document.images[1]], fadeInterval, fadeStep);
}, fadeInterval);
</script>
</body>
JavaScript文件(slider.js):
function makeSlider(pictures, fadeInterval, fadeStep) {
var currentIndex = 0;
function show() {
var nextIndex = (currentIndex + 1) % pictures.length;
var current = pictures[currentIndex];
var next = pictures[nextIndex];
fade(current, 1, -0.1, function() {
current.style.visibility = "hidden";
next.style.visibility = "visible";
fade(next, 0, +0.1, function() {
currentIndex = nextIndex;
setTimeout(function() { show(); }, fadeInterval);
});
});
}
function fade(element, origin, step, continuation) {
element.style.opacity = origin;
setTimeout(function () {
var nextOrigin = Math.round((origin + step) * 10) / 10;
if (nextOrigin >= 0 && nextOrigin <= 1) {
fade(element, nextOrigin, step, continuation);
} else {
continuation();
}
}, fadeStep);
}
show();
}
HTH。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.