Как добавить условие?
Здравствуйте. Есть скрипт:
onload = function ()
{
var grounds = ['одна картинка', 'вторая картинка',
'третья картинка'];
var t = 3;
var img = document.createElement('active');
setInterval (function ()
{
var p = grounds.shift ();
document.body.appendChild(img).style.backgroundImage = 'url(' + p + ')';
grounds.push (p);
}, t * 1000);
}
Этот скрипт запускается сразу. Но как написать условие, чтобы он запускался только в том случае, если на странице есть блок с классом .active ? Это ненужно, просто проясню картину: Класс .active у меня добавляется другим скриптом при помощи кнопки методом toggle. Я нажал кнопку, у меня к нужному элементу добавился класс .active. И вот как этот класс появился, и нужно чтобы сработал мною приведенный скрипт. Но если при повторном нажатии на кнопку я удалил класс .active, мне нужно чтобы приведенный скрипт перестал работать. Вот как это сделать? Спасибо. |
Посмотрите эту тему:
https://javascript.ru/forum/jquery/7...ntervalov.html Решение вашей задачи может быть схоже с решением из темы, ссылку на которую я указал выше. |
Nexus,
Цитата:
|
var img = document.createElement('active');
Вы создаете HTML элемент с тегом active? Навести на кнопку слушатель события. Если добавляется класс, тогда и запускайте скрипт. |
Цитата:
|
LADYX,
setInterval (function (){
if(!document.querySelector('.active')) return;
//...
|
Цитата:
|
рони,
Цитата:
Но теперь другой момент. Я не могу понять, почему картинка не меняется в этом блоке (.active), а создается блок в консоле такого типа: <div__active style="background-image: url("ПУТЬ_К_КАРТИНКЕ");"></div__active> И в нем происходит смена картинок. Что это такое, и почему так? |
LADYX,
ваш код и вопросы для телепатов, не могу помочь, информации недостаточно. |
[JS]
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$('.button').click(function(){
$('.div').toggleClass('active');
});
onload = function ()
{
var grounds = ['http://www.masini.ro/imagini/galerie/8863/ferrari-599-gtb-fiorano-coupe-2010/ferrari-599-gtb-fiorano-coupe-2010_0_large.jpeg',
'https://i.pinimg.com/736x/ad/57/de/ad57de484686d3ea4dd42f4963608f09--ferrari-scuderia-ferrari-f.jpg',
'https://www.torquenews.com/sites/default/files/image-1/%5Btitle-raw%5D/maserati_granturismo.jpg'];
var t = 3;
var img = document.createElement('active');
setInterval (function (){
if(!document.querySelector('.active')) return;
{
var p = grounds.shift ();
document.body.appendChild(img).style.backgroundImage = 'url(' + p + ')';
grounds.push (p);
}, t * 1000);
}
[/JS]
[CSS]
.div,
.active {
display: block;
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 50vh;
background: url('http://www.masini.ro/imagini/galerie/8863/ferrari-599-gtb-fiorano-coupe-2010/ferrari-599-gtb-fiorano-coupe-2010_0_large.jpeg') center bottom no-repeat;
background-size: cover;
}
[/CSS]
<button class="button">Кнопка</button>
<div class="div"></div>
рони, такая у меня конструкция, вот о чем я говорил ps. что-то я не могу понять, как мне здесь добавить код так, чтобы его можно было запустить, как это делаете вы |
| Часовой пояс GMT +3, время: 07:11. |