Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.01.2017, 13:50
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Как добавить элемент по индексу выборки
Всем привет,
Мне нужно после заголовка h1 в блоке .mess_win добавить html-код
<img src="img/random.png" alt="">
<img src="img/random.png" alt="">
<img src="img/random.png" alt="">
При этом выборка <img src="img/random.png" alt=""> происходит из блока .roulette-1
В скрипте пишу так:
function popUp(){	
		if(param2.stopImageNumber == param1.stopImageNumber && 
		param2.stopImageNumber == param3.stopImageNumber){
var images = $('.roulette-1 > img');
$(".mess_win > h1").after(images[param2.stopImageNumber]);
			$('.mess_win').fadeIn(300);
		}
		
	}

HTML такой:
<div class="roulette_container" >
		<div class="ball"><img src="img/ball.png"/></div>
		<div class="stick"><img src="img/stick.png"/></div>
		<div class="roulette-1">
			<img src="img/star.png"/>
			<img src="img/flower.png"/>
			<img src="img/coin.png"/>
			<img src="img/mshroom.png"/>
			<img src="img/chomp.png"/>
			<img src="img/random.png"/>
		</div>
		<div class="roulette-2">
			<img src="img/star.png"/>
			<img src="img/flower.png"/>
			<img src="img/coin.png"/>
			<img src="img/mshroom.png"/>
			<img src="img/chomp.png"/>
			<img src="img/random.png"/>
		</div>
		<div class="roulette-3">
			<img src="img/star.png"/>
			<img src="img/flower.png"/>
			<img src="img/coin.png"/>
			<img src="img/mshroom.png"/>
			<img src="img/chomp.png"/>
			<img src="img/random.png"/>
		</div>
		<div class="btn_container">
			<p>
			<button class="btn btn-large btn-primary start"> START </button>
			<button class="btn btn-large btn-danger stop"> STOP </button>
			</p>
		</div>
	</div>
	<div class="mess_win">
		<h1>Поздравляем!</h1>
		<p><strong>Вы выиграли бесплатную доставку от нашей компании!</strong></p>
		<p>Для того, чтобы узнать, как Вы можете воспользоваться данным призом, свяжитесь с вашим персональным менеджером.</p>
	</div>
Ответить с цитированием
  #2 (permalink)  
Старый 16.01.2017, 13:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,242

Сообщение от komplekt_17
Мне нужно после заголовка h1 в блоке .mess_win добавить html-код
<img src="img/random.png" alt="">
<img src="img/random.png" alt="">
<img src="img/random.png" alt="">
При этом выборка <img src="img/random.png" alt=""> происходит из блока .roulette-1
Блок .roulette-1 нужно переместить за "h1 в блоке .mess_win"?
Ответить с цитированием
  #3 (permalink)  
Старый 16.01.2017, 13:56
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Пробовал ещё так:
var images = $('.roulette-1 > img[src]:eq('+param2.stopImageNumber+')');
			$(".mess_win > h1").after('<img src="'+images+'" alt="">');
			$('.mess_win').fadeIn(300);
Ответить с цитированием
  #4 (permalink)  
Старый 16.01.2017, 13:58
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Сообщение от ksa Посмотреть сообщение
Блок .roulette-1 нужно переместить за "h1 в блоке .mess_win"?
нет из блока .roulette-1 нужно забрать картинку с индексом, равным param2.stopImageNumber. Затем эту картинку поставить 3 раза после h1 в блоке .mess_win
Ответить с цитированием
  #5 (permalink)  
Старый 16.01.2017, 14:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,242

Сообщение от komplekt_17
из блока .roulette-1 нужно забрать картинку с индексом, равным param2.stopImageNumber
Дык на то есть специальный метод...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	var i=2;
	var o=$('.roulette-1 > img').eq(i);
	alert(o.attr('src'));
});
</script>
</script>
</head>
<body>
<div class="roulette_container" >
	<div class="ball"><img src="img/ball.png"/></div>
	<div class="stick"><img src="img/stick.png"/></div>
	<div class="roulette-1">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="roulette-2">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="roulette-3">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="btn_container">
		<p>
		<button class="btn btn-large btn-primary start"> START </button>
		<button class="btn btn-large btn-danger stop"> STOP </button>
		</p>
	</div>
</div>
<div class="mess_win">
	<h1>Поздравляем!</h1>
	<p><strong>Вы выиграли бесплатную доставку от нашей компании!</strong></p>
	<p>Для того, чтобы узнать, как Вы можете воспользоваться данным призом, свяжитесь с вашим персональным менеджером.</p>
</div>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 16.01.2017, 14:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,242

Сообщение от komplekt_17
Затем эту картинку поставить 3 раза после h1 в блоке .mess_win
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	var i=2;
	var o=$('.roulette-1 > img').eq(i);
	var ot=$('.mess_win > h1');
	for (var i=0; i<3; i++) {
		$(o.clone()).insertAfter(ot);
	};
});
</script>
</script>
</head>
<body>
<div class="roulette_container" >
	<div class="ball"><img src="img/ball.png"/></div>
	<div class="stick"><img src="img/stick.png"/></div>
	<div class="roulette-1">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="roulette-2">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="roulette-3">
		<img src="img/star.png"/>
		<img src="img/flower.png"/>
		<img src="img/coin.png"/>
		<img src="img/mshroom.png"/>
		<img src="img/chomp.png"/>
		<img src="img/random.png"/>
	</div>
	<div class="btn_container">
		<p>
		<button class="btn btn-large btn-primary start"> START </button>
		<button class="btn btn-large btn-danger stop"> STOP </button>
		</p>
	</div>
</div>
<div class="mess_win">
	<h1>Поздравляем!</h1>
	<p><strong>Вы выиграли бесплатную доставку от нашей компании!</strong></p>
	<p>Для того, чтобы узнать, как Вы можете воспользоваться данным призом, свяжитесь с вашим персональным менеджером.</p>
</div>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 16.01.2017, 14:34
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Странно, у меня почему-то не работает
function popUp(){	
		if(param2.stopImageNumber == param1.stopImageNumber && 
			param2.stopImageNumber == param3.stopImageNumber){
				
			var j = param2.stopImageNumber;	
			var image = $('.roulette-1 > img').eq(j);
			var elem = $('.mess_win > h1');
			for (var i = 0; i < 3; i++) {
				$(image.clone()).insertAfter(elem);
			};

			$('.mess_win').fadeIn(300);
		}
	}
Ответить с цитированием
  #8 (permalink)  
Старый 16.01.2017, 14:35
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

Вот весь скрипт
$(function(){	
"use strict"	
	// функция генерации случайного значения
	function randomInteger(min, max) {
		var rand = min - 0.5 + Math.random() * (max - min + 1);
		rand = Math.round(rand);
		return rand;
	}
	
	// функция вызова сооообщения о результате
	function popUp(){	
		if(param2.stopImageNumber == param1.stopImageNumber && 
			param2.stopImageNumber == param3.stopImageNumber){
				
			var j = param2.stopImageNumber;	
			var image = $('.roulette-1 > img').eq(j);
			var elem = $('.mess_win > h1');
			for (var i = 0; i < 3; i++) {
				$(image.clone()).insertAfter(elem);
			};

			$('.mess_win').fadeIn(300);
		}
	}
	
	function check(){
		// for(var i in param1){
			// console.log(param1[i]);
		// }
		// for(var j in param2){
			// console.log(param2[j]);
		// }
		// for(var k in param3){
			// console.log(param3[k]);
		// }
		console.log('Скорость вращения: '+param1.speed, param2.speed, param3.speed+'\n');
		console.log('Длительность: '+param1.duration, param2.duration, param3.duration+'\n');
		console.log('Стоп картинка: '+param1.stopImageNumber, param2.stopImageNumber, param3.stopImageNumber+'\n');
	}
	
	// задаём интервал для генерации случайного значения
	var numMin = 0;
	var numMax = 5;
	
	var win = true // переключатель возможности выигрыша
	var a;
	
	// функция генерации нового случйного значения stopImageNumber
	function updateNumber(){
		if(win){// совпадения допускаются
			param1.stopImageNumber = 1;
            param2.stopImageNumber = 1;
            param3.stopImageNumber = 1;
            rouletter1.roulette('option',param1);
            rouletter2.roulette('option',param2);
            rouletter3.roulette('option',param3);
		}
		else{// совпадения НЕ допускаются
			param1.stopImageNumber = randomInteger(numMin, numMax);
			param2.stopImageNumber = randomInteger(numMin, numMax);
			param3.stopImageNumber = randomInteger(numMin, numMax);
			// в случае совпадения
			if(param2.stopImageNumber == param1.stopImageNumber && 
			param2.stopImageNumber == param3.stopImageNumber){
				param2.stopImageNumber = param1.stopImageNumber + 1;
				param3.stopImageNumber = param1.stopImageNumber - 1;
			}
            rouletter1.roulette('option',param1);
            rouletter2.roulette('option',param2);
            rouletter3.roulette('option',param3);
		}
	}
	
	// задаём параметры 1-го слота
	var param1 = {
		speed : 10,
		duration : 2,
		stopImageNumber : a,
		startCallback : function() {
			$('.start').attr('disabled', 'true');
			$('.stop').removeAttr('disabled');
		},
		slowDownCallback : function() {
			$('.stop').attr('disabled', 'true');
		},
		stopCallback : function($stopElm) {
			$('.start').removeAttr('disabled');
			$('.stop').attr('disabled', 'true');
		}
	}
	
	// задаём параметры 2-го слота
	var param2 = {
		speed : 5,
		duration : 3,
		stopImageNumber : a
	}
	
	// задаём параметры 3-го слота
	var param3 = {
		speed : 8,
		duration : 4,
		stopImageNumber : a
	}
	
	// применяем метод roulette() к слотам
	var rouletter1 = $('div.roulette-1');
	rouletter1.roulette(param1);
	var rouletter2 = $('div.roulette-2');
	rouletter2.roulette(param2);
	var rouletter3 = $('div.roulette-3');
	rouletter3.roulette(param3);
	
	// обработчики кнопок
	$('.stop').click(function(){
		updateNumber(); // запуск апдейта номера
		rouletter1.roulette('stop');	
		rouletter2.roulette('stop');	
		rouletter3.roulette('stop');
	});
	
	$('.stop').attr('disabled', 'true');
	
	$('.start, .ball').click(function(){
		var time = Math.max(param1.duration, param2.duration, param3.duration) * 1000 + 1500;
		setTimeout(popUp,time); // запуск окна с выигрышем
		updateNumber(); // запуск апдейта номера
		check();
		rouletter1.roulette('start');
		rouletter2.roulette('start');
		rouletter3.roulette('start');
		console.log(time);
		$('.ball').addClass('animate-1');
		$('.stick').addClass('animate-2');
		setTimeout(function(){ // возврат в изначальное
			$('.ball').removeClass('animate-1');
			$('.stick').removeClass('animate-2');
		},2000)
	});
});
Ответить с цитированием
  #9 (permalink)  
Старый 16.01.2017, 14:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,242

Сообщение от komplekt_17
у меня почему-то не работает
Значит нужно тестировать по шагам и смотреть чего у тебя там не так...
Ответить с цитированием
  #10 (permalink)  
Старый 16.01.2017, 15:56
Аватар для komplekt_17
Аспирант
Отправить личное сообщение для komplekt_17 Посмотреть профиль Найти все сообщения от komplekt_17
 
Регистрация: 14.01.2017
Сообщений: 46

поставил $('.roulette-1 img') вместо $('.roulette-1 > img') и всё заработало
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратный отсчет на js как добавить 0 при значении от 0 до 9 kovalenko3331 Общие вопросы Javascript 2 08.04.2016 08:59
добавить элемент в массив, принадлежащий объекту gorda Элементы интерфейса 2 08.11.2015 21:27
как найти элемент с таким же атрибутом и добавить ему класс? nmlgko Общие вопросы Javascript 8 24.09.2015 15:19
Как добавить методы объекту после конструирования. DragorWW Общие вопросы Javascript 23 21.01.2013 20:39
Как перевести фокус на следующий элемент? Shitbox2 jQuery 3 03.11.2012 15:57