Смена фоновых изображений при перезагрузке страницы
Привет всем! Помогите решить задачу. Есть див
<div class="bg-image "></div> Есть стили : <style> .bg-image.bg1{background-image:url('../img/bg-slide-1.jpg')} .bg-image.bg2{background-image:url('../img/bg-slide-2.jpg')} .bg-image.bg3{background-image:url('../img/bg-slide-3.jpg')} </style> Нужно написать java скрипт, который будет добавлять к нашему исходному диву классы bg1, bg2, bg3 при перезагрузке страницы. Все должно происходить циклично, т.е. после bg3 снова bg1 |
Sergei-b84,
храните индекс в localStorage добавляйте класс согласно индексу индекс увеличивайте ... всё :) |
Написал функцию. Помогите найти ошибку.
window.onload = function() { var bg-image = document.getElementsByClassName('bg-image'); var x = Math.floor((Math.random() * 3) + 1); bg-image.classList.add('bg'+x); } |
Переделал так
var x = Math.floor((Math.random() * 3) + 1); var newname = 'bg'+ x; function dobavitKlassAkkuratno(elementik, klass) { if(!elementik.className) { elementik.className = klass; } else { imyaNovogoKlassa = elementik.className; imyaNovogoKlassa+= " "; imyaNovogoKlassa+= klass; elementik.className = imyaNovogoKlassa; } } dobavitKlassAkkuratno(document.getElementById('reloadimage'), newname);Все работает, но хотелось бы чтобы гуру проверили. Заранее спасибо. |
Заметил одно "но", изображения меняются, но не при каждой перезагрузке страницы, т.е. может через раз или два. Как исправить?
|
Цитата:
Цитата:
|
Цитата:
Цитата:
|
localStorage циклическая смена фона
Sergei-b84,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style>.bg-image{ width: 100px; height: 100px; background-size: 100%; background-repeat: no-repeat; } .bg-image.bg1{background-image:url('http://javascript.ru/forum/images/smilies/smile.gif')} .bg-image.bg2{background-image:url('http://javascript.ru/forum/images/smilies/victory.gif')} .bg-image.bg3{background-image:url('http://javascript.ru/forum/images/smilies/cray.gif')} </style> <script> window.onload = function() { var image = document.querySelector('.bg-image') var x = +localStorage.x || 0; image.classList.add('bg'+(x +1)); localStorage.x = ++x % 3 } </script> </head> <body> <div class="bg-image "></div> </body> </html> |
Круто. Спасибо!!!!
|
Кривовато, но сойдёт. elem это обращение к вашему элементу.
var backNum; if (localStorage.getItem("whichBack") == null){ elem.class = "bg1"; backNum = 2; localStorage.setItem("whichBack", backNum); } else{ backNum = localStorage.getItem("whichBack"); elem.class = "bg"+ backNum; backNum++; if{backNum == 4){ backNum = 1; } localStorage.setItem("whichBack", backNum); } Не забудьте приписать ваш класс. Я же вам советую назначить id этому элементу, если он у вас один такой. |
Leon-on12,
:-? |
рони,
Просто я при создании темы написал это решение, когда ещё ни одного ответа не было. И ушел гулять. Было обидно оставлять не отправленным. А что? Всё очень плохо? |
Leon-on12,
прогулки это здорово, но что-то часто ваш код, повторяет уже сказанное выше, если бы ваш код отличался не стилем, а алгоритмом, было бы интререснее :thanks: |
рони,
Я просто тормоз. И слеповат. Но если тут совсем не принято так делать. Я пожалуй поудаляю пару постов. Я сам немного в шоке, тут что народ спрашивает про одно и тоже постоянно? И всё-таки я пишу немного подробнее чем все. А иногда это нужно, задавальщику вопроса. Но Вы тут главный. Если вы скажите, я буду более внимателен. И не пояснять уже написанное. |
Leon-on12,
делай как делаешь Цитата:
Цитата:
|
Вопрос не по теме, все равно скончалась. Это значит мудохаться с куками уже не надо? Все теперь работают с localStorage?
Зашел на сайт мозилы, открыл куки - куков дофига насовали, открыл сторожа - один какой-то жисон унылый валяется. |
Цитата:
|
Часовой пояс GMT +3, время: 10:53. |