Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2014, 23:40
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Изменение background <html> через неск секунд
Подскажите что-нибудь, желательно на чистом js без использования JQUERY, потому как ни подключаю JQUERY плагины смены фона то не видят JQUERY, то ошибки постоянно возникают!
Хоть что-нибудь подскажите пожалуйста! Хоть изображения из папок, хоть ссылки на них, неважно.
Какой-нибудь скрипт для смены background тега <html> (ну или вообще смены background) с определенным интервалом
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2014, 00:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

razorg1991,
Растянуть изображение фоном.
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2014, 10:31
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Помогите допилить скрипт пожалуйста

Сейчас он выглядит так:

<script>
        (function(){
            var interval = 1000,
                pictures = [
                    '/bs-server/templates/bs-template/images/background2.jpg',
                    '/bs-server/templates/bs-template/images/background3.jpg',
                    '/bs-server/templates/bs-template/images/background4.jpg',
                    '/bs-server/templates/bs-template/images/background1.jpg'
                ];
            
            for (var i = 0; i < pictures.length; i++) {
                (new Image()).src = pictures[i];
            }
            
            var imageIndex = 0;
            setInterval(function(){
                var image = pictures[imageIndex++] || pictures[imageIndex = 0];
                if (document.addEventListener) {
                    document.body.style.backgroundImage = 'url('+ image + ')';
                } else {
                    document.body.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + image + ', sizingMethod="scale")';
                }
            }, interval);
        })();
        </script>


В принципе все работает, но есть парочку "НО":
1. При загрузке страницы первое фоновое изображение появляется не сразу, а только через время, указанное в скрипте
var interval = 1000

Очень нужно, чтобы картинка появлялась сразу (пробовал в css по умолчанию ставить background одну из картинок, итог - картинка появляется сразу, НО первая ее смена происходит так - background исчезает вовсе, задержка в var interval = 1000 а затем появляются уже остальные. Т.е. данный вариант не прокатил )

2. Очень нужно плавное изменение картинок (затухание первой - появление второй)

Люди хэлп
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2014, 12:23
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

по первому вопросу - добавьте в строку №10 следующее:
document.body.style.backgroundImage = 'url('+ pictures[0] + ')';
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2014, 12:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

deivan,
если в css стоит картинка фона -- зачем она в скрипте -
Сообщение от razorg1991
background исчезает вовсе,
не смог воспроизвести это
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2014, 12:41
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

а в чем смысл цикла в строках 11-13?..
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2014, 12:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от deivan
а в чем смысл цикла в строках 11-13?..
закешировать все картинки
Ответить с цитированием
  #8 (permalink)  
Старый 28.03.2014, 12:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            html{
                height: 100%;
                width: 100%;
                margin: 0;
                padding: 0;
                background: #fff;
            }
            body{
                min-height: 100%;
                margin: 0;
                padding: 0;
                background-position: top center;
                background-repeat: no-repeat;
                -moz-background-size: 100% 100%;
                -o-background-size: 100% 100%;
                background-size: 100% 100%;
                background-image: url(http://yawall.ru/images/Abstrakciya-oboi-dlya-rabochego-stola-izobrajeniya/1920x1080/50459-Golubovatiy-fon-s-beloy-izognctoy-liniey-1920x1080.jpg);
            }
            p {
                position: fixed;
                top: 50%;
                left: 50%;
                margin-top: -50px;
                margin-left: -100px;
                height: 50px;
                width: 300px;
                color: #FFFFFF;
                font-size:  2em;
            }
        </style>
    </head>
    <body>
        <p>Всякая всячина</p>
        <script>
        (function(){
            var interval = 5000,
                pictures = [
                    'http://imgs.su/tmp/1292024913.jpg',
                    'http://gallery.ykt.ru/galleries/tf2/2012/06/1077057_0.jpg',
                    'http://www.wallgrad.ru/_ph/39/251576366.jpg',
                    'http://yawall.ru/images/Abstrakciya-oboi-dlya-rabochego-stola-izobrajeniya/1920x1080/50459-Golubovatiy-fon-s-beloy-izognctoy-liniey-1920x1080.jpg'
                ];

            for (var i = 0; i < pictures.length; i++) {
                (new Image()).src = pictures[i];
            }

            var imageIndex = 0;
            setInterval(function(){
                var image = pictures[imageIndex++] || pictures[imageIndex = 0];
                if (document.addEventListener) {
                    document.body.style.backgroundImage = 'url('+ image + ')';
                } else {
                    document.body.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + image + ', sizingMethod="scale")';
                }
            }, interval);
        })();
        </script>
    </body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 28.03.2014, 22:26
Аспирант
Отправить личное сообщение для razorg1991 Посмотреть профиль Найти все сообщения от razorg1991
 
Регистрация: 10.11.2012
Сообщений: 98

Заметил вот какую штуку: всю разработку веду в Firefox потому как там мой самый любимый firebag, но так для интереса зашел с оперы - И удивился опера отображает все зашибись! Зашел с хрома - тоже все норм! Получается выделывается Firefox, хотя очень странно версия стоит самая новая!
Ответить с цитированием
  #10 (permalink)  
Старый 30.03.2014, 16:26
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

по-секрету: а под ИЕ6-7 вообще обосратушки...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена фоновой картинки через каждые 5 секунд sitebuilder Общие вопросы Javascript 16 15.03.2017 22:54
Запуск скрипта через 5 секунд Marakaya Events/DOM/Window 18 06.05.2013 03:29
Убрать картинку через 10 секунд после запуска сайта douglasdenovitz Общие вопросы Javascript 9 24.09.2012 23:40
Хрому не передается background через jquery ryumka Opera, Safari и др. 1 19.09.2012 17:34
переход по ссылке через N секунд jerryfish Events/DOM/Window 4 23.02.2010 17:05