Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.04.2018, 13:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

У вас три блока родительские для изображений, при этом каждый блок имеет по три изображения. Должен иметь, то есть ранее в них загруженные должны удаляться при запуске барабана, иначе вы и будете получать кучу всякого. Получая из каждого блока второе изображение вы получите всего три. А значение src, это document.querySelector(...).src.

Сообщение от Javany11
Когда пишем document.querySelectorAll, мы получаем массив?
Нет, это не массив, это NodeList, коллекция DOM узлов, и вам он не нужен.
Ответить с цитированием
  #12 (permalink)  
Старый 03.04.2018, 13:22
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,730

Сообщение от Javany11
мне нужно получить src последнего тега.
var list=document.querySelectorAll('.carousel_1 img'),
item=list[list.length-1];
alert(item.src);

Последний раз редактировалось Nexus, 03.04.2018 в 13:38.
Ответить с цитированием
  #13 (permalink)  
Старый 03.04.2018, 13:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Nexus,
зачем для querySelectorAll :nth-child(2)?
Ответить с цитированием
  #14 (permalink)  
Старый 03.04.2018, 13:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,730

laimas, не знаю, скопипастил у тс
Поправил селектор.
Ответить с цитированием
  #15 (permalink)  
Старый 03.04.2018, 13:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Nexus,
ему надо избавиться от геморроя вначале - трех кнопок и трех таймеров.
Тут либо анимируем движение постоянных изображений в каждом барабане, а random нужен только для задания разных скоростей анимации каждого барабана и ее направления. Либо изменяем через Nms каждое из трех изображений каждого барабана имитируя движение.

Не спец в игрушках, не интересуют, но мне кажется так.
Ответить с цитированием
  #16 (permalink)  
Старый 03.04.2018, 14:27
Аспирант
Отправить личное сообщение для Javany11 Посмотреть профиль Найти все сообщения от Javany11
 
Регистрация: 04.03.2018
Сообщений: 34

Спасибо. Но я получил 17 алертов
Ответить с цитированием
  #17 (permalink)  
Старый 03.04.2018, 14:44
Аспирант
Отправить личное сообщение для Javany11 Посмотреть профиль Найти все сообщения от Javany11
 
Регистрация: 04.03.2018
Сообщений: 34

Там нет трех кнопок. Есть три счетчика, каждый на свой барабан. Если я сделаю один счетчик на три барабана, разве я смогу эти барабаны остановить рандомно?
Ответить с цитированием
  #18 (permalink)  
Старый 03.04.2018, 15:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Javany11
Там нет трех кнопок.
Я решил по этому.

Сообщение от laimas
Я вообще хотел каждый барабан останавливать кнопкой под ним.
А что такое счетчик и для чего он нужен в этой игре для меня темный лес, я же не игрок. Я знаю только одно - рычаг однорукого бандита, запустили, закрутилось. Значит можно курить крутить барабаны с постоянными картинками, но с разной скоростью, только для этого и нужен random.

PS. Да, если бы можно было "курить барабаны", то какая бы интересная игра была.

Последний раз редактировалось laimas, 03.04.2018 в 15:29.
Ответить с цитированием
  #19 (permalink)  
Старый 03.04.2018, 15:42
Аспирант
Отправить личное сообщение для Javany11 Посмотреть профиль Найти все сообщения от Javany11
 
Регистрация: 04.03.2018
Сообщений: 34

Крутить барабаны с постоянными картинками было бы намного проще. Но в задании сказано что src картинок необходимо хранить в массиве, картинки менять путем изменения src используя рандом. Я посчитал что выбранный мною способ относительно простой. Ох как я ошибался... Сегодня у препода спрошу, может она скажет как быть. Вам спасибо за помощь, плюсики уже у Вас в карме. Если будет решение, выложу.
Ответить с цитированием
  #20 (permalink)  
Старый 03.04.2018, 16:06
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Читал, смотрел - ничего не понял.

Собрал макет.
Таки вроде все работает

<div class = "carousel_1">
  <img src= 'https://javascript.ru/cat/list/dom.gif'/>
  <img src= 'https://javascript.ru/cat/list/event.gif'/>
  <img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<div class = "carousel_2">
  <img src= 'https://javascript.ru/cat/list/dom.gif'/>
  <img src= 'https://javascript.ru/cat/list/event.gif'/>
  <img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<div class = "carousel_3">
  <img src= 'https://javascript.ru/cat/list/dom.gif'/>
  <img src= 'https://javascript.ru/cat/list/event.gif'/>
  <img src= 'https://javascript.ru/cat/list/integr.jpg'/>
</div>
<button id='lever'>click</button>
<div id="result"></div>
<script>
var pics=['https://javascript.ru/cat/list/dom.gif', 'https://javascript.ru/cat/list/event.gif', 'https://javascript.ru/cat/list/integr.jpg', 'https://javascript.ru/cat/list/donkey.gif', 'https://javascript.ru/cat/list/firefox.gif', 'https://javascript.ru/cat/list/opera.gif', 'https://javascript.ru/cat/list/libs.jpg', 'https://javascript.ru/cat/list/scriptaculous_54.png', 'https://javascript.ru/cat/list/dojo_54.png', 'https://javascript.ru/cat/list/jquery_54.png'];//храним src картинок

var imgs_1 = document.querySelectorAll('.carousel_1 img');//забираем картинки из карусели №1

var imgs_2 = document.querySelectorAll('.carousel_2 img');//забираем картинки из карусели №2

var imgs_3 = document.querySelectorAll('.carousel_3 img');//забираем картинки из карусели №3

var count = 0;

var a = 0;//здесь храним результат от setInterval
var b; // тут храним округленные рандомные числа
var c; // тут храним округленные рандомные числа
var d;	// тут храним округленные рандомные числа
		
lever.addEventListener('click',function(){
b = Math.random()*10//рандомим от 0 до 10	
b = Math.trunc(b)   //округляем до целого

c = Math.random()*10//рандомим от 0 до 10	
c = Math.trunc(c)  //округляем до целого

d = Math.random()*10//рандомим от 0 до 10	
d = Math.trunc(d)   //округляем до целого

//console.log(b);//тестим рандом
//console.log(c);//тестим рандом
//console.log(d);//тестим рандом
    var res1 = "", res2 = "", res3 = "";
    var setInt1 = setInterval(slider1,100);//запускаем интервал
    var setInt2 = setInterval(slider2,120);//запускаем интервал
    var setInt3 = setInterval(slider3,140);//запускаем интервал

function slider1(){//запускаем барабан
a++;//добавляем к переменной 1 с каждым интервалом
if(a>=10){a=0} //ограничиваем переменную до 10
count--;
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_1.length;i++) imgs_1[i].src = pics[(i+count)%pics.length];
if(a==b) { clearInterval(setInt1);	//останавливаем интервал 
      res1 = "Барабан 1 " + document.querySelectorAll('.carousel_1 img')[1].src;
  if(res2 != "" && res3 != "") result.innerHTML = res1 + "<br>" + res2 + "<br>" + res3;
 }
}

function slider2(){//запускаем барабан
a++;
if(a>=10){a=0}//ограничиваем переменную до 10
count--;	
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_2.length;i++) imgs_2[i].src = pics[(i+count)%pics.length];
if(a==c) { clearInterval(setInt2); //останавливаем интервал
   res2 = "Барабан 2 " + document.querySelectorAll('.carousel_2 img')[1].src;
   if(res1 != "" && res3 != "") result.innerHTML =res1 + "<br>" + res2 + "<br>" + res3;
  }
}

function slider3(){//запускаем барабан
a++;
if(a>=10){a=0}//ограничиваем переменную до 10
count--;		
if(count<0) count = pics.length-1;
for(let i =0; i<imgs_3.length;i++) imgs_3[i].src = pics[(i+count)%pics.length];
if(a==d) { clearInterval(setInt3)//останавливаем интервал
    res3 = "Барабан 3 " + document.querySelectorAll('.carousel_3 img')[1].src;
  if(res1 != "" && res2 != "") result.innerHTML =res1 + "<br>" + res2 + "<br>" + res3; 
 }
}})
</script>

Последний раз редактировалось Dilettante_Pro, 03.04.2018 в 18:52.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать для разных атрибутов id тега img? Ola Events/DOM/Window 8 09.04.2017 15:46
Как скрыть img, если src пустой? Gosha Ponomaryov Events/DOM/Window 7 23.01.2015 17:36
Как получить src img, у которого нет ни id, ни name, ни class viktor073 Events/DOM/Window 12 23.01.2014 12:23
Подскажите, плиз, с изменением src для img внутри figure! Sam L Events/DOM/Window 9 16.05.2013 19:27
Изменение img src при hover на другом img -- как? adelante jQuery 2 14.04.2010 08:12