Смена фоновых изображений при перезагрузке страницы
Привет всем! Помогите решить задачу. Есть див
<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 этому элементу, если он у вас один такой. |
| Часовой пояс GMT +3, время: 21:31. |