Плавное изменение бэкграунда блока

Рейтинг: 0Ответов: 2Опубликовано: 20.11.2014

На странице есть слайдер, в котором крутится несколько картинок. В слайдере определяется текущая картинка, из нее берется data-параметр и подставляется в качестве бэкграунда для блока.

slideItems.removeClass('current');
slideItems.eq(currentSlide).addClass('current');
var current_image_src = $('.carousel .slideItem.current img').data('bg-image-src');
$('.conteiner').css('background-image', 'url(http:' + current_image_src + ')');

Но при таком варианте картинка меняется резко.
Как можно сделать так, чтобы картинка менялась плавно с использованием animate()?

Ответы

▲ 2

Можно попробовать вот так:

  1. http://jsfiddle.net/8su9hpcs/
  2. http://jsfiddle.net/8su9hpcs/4/
▲ 2

Background-image поддаётся анимации при помощи css3 transitions:

.conteiner {transition: background-image 0.3s;}

При помощи animate вы сможете выполнить похожую анимацию, только если меняться будет не background, а изображения img.

Могу посоветовать в качестве анимационного движка TweenMax. Он, по-моему, умеет анимировать в том числе и background-image.