Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2020, 14:08
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 217

Как добавить условие?
Здравствуйте. Есть скрипт:

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, мне нужно чтобы приведенный скрипт перестал работать. Вот как это сделать? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2020, 14:27
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Посмотрите эту тему:
https://javascript.ru/forum/jquery/7...ntervalov.html

Решение вашей задачи может быть схоже с решением из темы, ссылку на которую я указал выше.
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2020, 17:34
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 217

Nexus,
Сообщение от Nexus
Решение вашей задачи может быть схоже с решением из темы, ссылку на которую я указал выше.
нет, там же совершенно другая задача
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2020, 17:51
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,700

var img = document.createElement('active');

Вы создаете HTML элемент с тегом active?

Навести на кнопку слушатель события. Если добавляется класс, тогда и запускайте скрипт.
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2020, 17:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от LADYX
если на странице есть блок с классом .active ?
что мешает проверить наличие блока в строке 9 и сделать return если блока нет.
Ответить с цитированием
  #6 (permalink)  
Старый 18.03.2020, 17:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

LADYX,
setInterval (function (){
if(!document.querySelector('.active')) return;
//...
Ответить с цитированием
  #7 (permalink)  
Старый 18.03.2020, 18:03
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Сообщение от LADYX
нет, там же совершенно другая задача
Вы не правы.
Ответить с цитированием
  #8 (permalink)  
Старый 19.03.2020, 13:04
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 217

рони,
Сообщение от рони
setInterval (function (){
if(!document.querySelector('.active')) return;
//...
Да, спасибо, это то что нужно.

Но теперь другой момент. Я не могу понять, почему картинка не меняется в этом блоке (.active), а создается блок в консоле такого типа:
<div__active style="background-image: url(&quot;ПУТЬ_К_КАРТИНКЕ&quot;);"></div__active>

И в нем происходит смена картинок. Что это такое, и почему так?
Ответить с цитированием
  #9 (permalink)  
Старый 19.03.2020, 14:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

LADYX,
ваш код и вопросы для телепатов, не могу помочь, информации недостаточно.
Ответить с цитированием
  #10 (permalink)  
Старый 19.03.2020, 16:53
Аватар для LADYX
Профессор
Отправить личное сообщение для LADYX Посмотреть профиль Найти все сообщения от LADYX
 
Регистрация: 19.02.2015
Сообщений: 217

[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. что-то я не могу понять, как мне здесь добавить код так, чтобы его можно было запустить, как это делаете вы

Последний раз редактировалось LADYX, 19.03.2020 в 16:56.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как добавить еще один селектор foxfor jQuery 1 29.05.2015 12:32
Как добавить данные в глобальный массив из функции Jigan2 jQuery 2 14.03.2015 18:06
Как добавить атрибут к ссылке hell100 Общие вопросы Javascript 2 20.06.2012 16:51
Как к найденому элементу применить условие? rommeq jQuery 4 29.08.2011 15:27
Как правильно добавить форму используя jQuery Casufi jQuery 1 15.02.2010 23:14