Фон изображения уже меняется, могу ли я разместить его в окне браузера и сделать плавный переход

0

Привет, ниже мой JS-код для изменения фонового изображения каждые 30 секунд. кто-нибудь, пожалуйста, сообщите мне, есть ли способ изменить код, чтобы он соответствовал изображению в окне браузера (100%), а также если есть какой-либо JS, который я мог бы использовать в этом коде, чтобы изображения постепенно исчезали и выходили элегантно.

<script>
bgArr = ['images/bg1.jpg', 'images/bg2.jpg', 'images/bg3.jpg'];
bgCur = 0;
backgroundSwitch = function()
{
if (bgCur == bgArr.length) bgCur = 0;
document.body.style.backgroundImage = 'url('+ bgArr[bgCur++]+ ')';
}
window.setInterval(backgroundSwitch, 30000); // Switch every 30 seconds.
</script>

Спасибо всем

  • 0
    Не могли бы вы показать мне, как сделать как постепенное появление и подгонка к окну только в Javascript?
Теги:
background-image

2 ответа

1

CSS3 представил background-size: cover. Это автоматически изменяет фоновое изображение, чтобы покрыть весь родительский элемент, либо масштабируя его по горизонтали, либо по вертикали для заполнения.

См. Запись в MDN.

background-size поддерживается всеми основными браузерами.

  • 0
    cover , даже лучше :)
  • 0
    Оу, мне понравился КБД
0

Установка в окно браузера должна быть достаточно простой. В зависимости от требований вашего браузера вы можете уйти с background-size: cover в вашем CSS (см. Ответ Альберта).

Что касается анимации, вы можете либо использовать переходы CSS, либо запускать их через JavaScript (обычно, изменяя класс) или использовать JavaScript для этого.

Если вы используете JavaScript, обязательно установите продолжительность, а затем lerp (или какой-либо другой метод) между состояниями.

Это общая идея...

var img = document.getElementById("fade");

var fadeLength = 5500;
var opacity = 0;
var startTime = Date.now();

requestAnimationFrame(function me() { 
    // It faded in, stop animating!
    if (opacity >= 1) {
       return;   
    }

    opacity = (Date.now() - startTime) / fadeLength;
    img.textContent = opacity;    
    img.style.opacity = opacity;        
    requestAnimationFrame(me);
});

jsFiddle.

  • 0
    Не могли бы вы показать мне, как сделать как постепенное появление и подгонка к окну только в Javascript?
  • 0
    @ user3206866 Работаем над этим сейчас :)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню