Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2015, 22:50
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Смена backgroundImage
Всем привет!
Нужна функция плавной зацикленной смены backgroundImage.
Сейчас использую смену css классов:

setInterval(function() {
    var $body = $('body');
    if($body.hasClass('background1'))
    {
        $body.removeClass('background1');
        $body.addClass('background2');
    }
    else {        
        $body.removeClass('background2');
        $body.addClass('background1');
    }
}, 8000);


Может мне кажется, но она сильно нагружает браузер и плавность смены изображений не работает в IE.
Если не трудно покажите как подобное можно сделать на JS, может без использования классов, а через document.body.style.backgroundImage = "url('..')"
Спасибо откликнувшимся!

Последний раз редактировалось K_PECT, 23.12.2015 в 00:34.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2015, 23:20
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<!doctype html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <style>
    html, body {
      height: 100%;
    }
  </style>
</head>
<body>
  <script>
    var colors = ['red', 'green', 'blue', 'grey', 'orange'],
        i = 0;

    setInterval(function() {
      document.body.style.background = colors[++i % colors.length];
    }, 2000)
  </script>
</body>
</html>


K_PECT, только вместо цветов, урлы картинок в массив вставь.
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2015, 23:56
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Очень помогли! Спасибо большое! Но как быть с плавностью? Если не трудно покажите на setTimeout

Последний раз редактировалось K_PECT, 23.12.2015 в 00:07.
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2015, 00:16
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

<!doctype html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <style>
    html, body {
      height: 100%;
    }
    
    body {
      -webkit-transition: background 1s linear;
      -moz-transition: background 1s linear
      transition: background 1s linear;
    }
  </style>
</head>
<body>
  <script>
    var colors = ['red', 'green', 'blue', 'grey', 'orange'],
        i = 0;

    setTimeout(function foo() {
      document.body.style.background = colors[++i % colors.length];
      setTimeout(foo, 2000)
    }, 2000)
  </script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2015, 00:27
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Не знаю мож это у меня так, но IE11 видимо не поддерживает
background 1s linear;
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2015, 00:30
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

K_PECT, как вариант, наложить два img и им уже менять opacity.
Ответить с цитированием
  #7 (permalink)  
Старый 23.12.2015, 00:49
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Ruslan_xDD, не дойду сам! Покажите, пожалуйста
Ответить с цитированием
  #8 (permalink)  
Старый 23.12.2015, 01:41
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

https://jsfiddle.net/wteerd4t/
Ответить с цитированием
  #9 (permalink)  
Старый 23.12.2015, 09:15
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

transition: background 1s linear;
-webkit-transition: background 1s linear;
-moz-transition: background 1s linear;
-ms-transition: background 1s linear;

Не работает в IE
Вот этот пример работает в IE. Покажите, пожалуйста, как собрать на основании него смену document.body.style.background
И если не трудно на setTimeout
Необходимо менять изображение у body

Последний раз редактировалось K_PECT, 23.12.2015 в 10:12.
Ответить с цитированием
  #10 (permalink)  
Старый 23.12.2015, 10:21
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

K_PECT, чем мой пример выше не устроил, если не секрет?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен простой JS (смена количества + смена цены) RadCor Работа 1 27.04.2015 00:53
Нужен простой JS 500 руб (смена количества + смена цены) RadCor Работа 9 27.04.2015 00:45
Смена при клике "src" текущей на "href" следующей из списка desertFox jQuery 8 30.08.2013 17:15
backgroundImage в методе .css() Алек jQuery 7 29.06.2013 16:33
Плавная смена background-image div-ва в котором есть контент phenom jQuery 1 09.04.2013 14:28