Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.12.2016, 17:10
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 157

Rise, Спасибо большое, Вы очень помогли! Можно Вас еще попросить помочь расшифровать написанный Вами скрипт. Как я уже написал выше, хотелось бы не скопипастить набор символов и забыть, а разобраться как это работает
Ответить с цитированием
  #12 (permalink)  
Старый 06.12.2016, 17:25
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

smart-create, http://api.jquery.com/
Ответить с цитированием
  #13 (permalink)  
Старый 06.12.2016, 21:09
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 157

Rise, Намек понятен, спасибо)
Последний вопрос, пока я еще не изучил всю документацию ссылку на которую Вы прислали, я не могу толком прочитать Ваш скрипт из-за этого не могу понять как можно остановить его выполнение если один из импутов находится в фокусе. То есть благодаря скрипту на странице происходит некая анимация с элементами формы, а если один из них выбран (.focus() или просто .click()) то нужно что бы эта анимация остановилась
Ответить с цитированием
  #14 (permalink)  
Старый 07.12.2016, 06:49
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от smart-create Посмотреть сообщение
пока я еще не изучил всю документацию
Всю и не надо достаточно используемых $()/jQuery(), .delay(), .queue(), .eq(), .prop()
Сообщение от smart-create Посмотреть сообщение
если один из импутов находится в фокусе... эта анимация остановилась
.is(), :focus, .stop()
Ответить с цитированием
  #15 (permalink)  
Старый 13.12.2016, 00:35
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 157

Rise, Доброй ночи. Хотел бы еще немного Вас побеспокоить, не могу я все не как разобраться с Вашим последним сообщением. 5-й день уже пошел, а я все не как понять не могу.

Самое первое конечно о чем стоит сказать - я понял что определение фокуса это не то что мне нужно, потому как переключение импутов создают, как я уже писал выше, некую "анимацию", и для пользователя будет удобно когда при наведении на область с импутами, эта "анимация" остановиться. По этому я прибег к .hover()

Делаю следующие:
$('#gal').hover( //родитель в котором находятся инпуты
	function() {
		// здесь нужно остановить "анимацию", по скольку эффект анимации происходит благодаря переключению атрибута "checked" с одного импута на другой, то нужно остановить само это переключение, то есть по факту остановить выполнение скрипта который вы написали выше
	}
)


Весь скрипт выглядит следующим образом:

$(document).ready (function slideActive() {
	var that = $({
		input: $('[name=btn]'),
		index: 0
	})
	.delay(1000)
	.queue(function check(next) {
		that.delay(3000)
			.queue(check);
		this.input
			.eq(this.index < this.input.length ? this.index++ : this.index = 0)
			.prop('checked', true);
		next();
		
		$('#gal').hover(
			function() {
				$('[name=btn]').stop(); // здесь пытаюсь следовать вашей рекомендации, использую метод "стоп" и натравливаю его на тот объект в котором происходит переключение атрибута "checked"
			}
		)
	});
})


Но в результате нечего не происходит, я предполагаю что вы не совсем верно меня поняли и .stop() это не совсем то что нужно, поскольку во всякой документации которую я причитал за эти дни .stop() применяется для остановки, скажем так, "традиционной" анимации которая создается средствами js и/или css и навешивается на какой-то блок. В моем же случае все несколько иначе. не какой js и/или css анимации нет, есть перекидывание атрибута "checked" с одного импута на другой за определенный интервал времени - это и создает эффект который я назвал анимацией в своем случае. То есть в итоге, на сколько я понимаю мне нужно, при наведении на родителя остановить выполнение скрипта с которым Вы в в прошлый раз мне так любезно помогли.
Прошу подсказать, в правильную ли сторону развиваются мои мысли и если да то каким образом можно осуществить то что я задумал. Заранее благодарен
Ответить с цитированием
  #16 (permalink)  
Старый 13.12.2016, 01:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

smart-create,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>

  $(function() {
    var gal = $(".galnav"),
        inp = $('[type="radio"]', gal),
        loop = true,
        pause = 3000,
        timer,
        len = inp.length,
        indx = len-1;
    function go() {
      indx = ++indx % len;
      inp.eq(indx).prop({checked:true});
      loop && (timer = window.setTimeout(go,pause))
    }
    go();
    gal.on("mouseenter", function() {
        loop = false;
        window.clearTimeout(timer)
    }).on("mouseleave", function() {
        window.clearTimeout(timer);
        loop = true;
        go()
    })
});

  </script>
</head>

<body> <p></p>
<nav class="galnav">
	<ul>
                <li>
                        <input type="radio" name="btn" value="one" checked="checked">
                        <label for="btn"></label>
                </li>
                <li>
                       <input type="radio" name="btn" value="two">
                       <label for="btn"></label>
                </li>
                <li>
                       <input type="radio" name="btn" value="fre">
                       <label for="btn"></label>
                </li>
	</ul>
</nav>



</body>
</html>
Ответить с цитированием
  #17 (permalink)  
Старый 13.12.2016, 13:44
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

smart-create,

focus
var that = $({
	input: $('[name=btn]'),
	index: 0
})
.delay(1000)
.queue(function check(next) {
	that.delay(5000)
		.queue(check);
*!*
	if (this.input.is(':focus'))
		return that.stop();
*/!*
	this.input
		.eq(this.index < this.input.length ? this.index++ : this.index = 0)
		.prop('checked', true);
	next();
});

hover
var that = $({
	input: $('[name=btn]'),
	index: 0
})
.delay(1000)
.queue(function check(next) {
	that.delay(5000)
		.queue(check);
*!*
	if (this.input.is(function(){ return $(this).is(':hover') }))
		return that.stop();
*/!*
	this.input
		.eq(this.index < this.input.length ? this.index++ : this.index = 0)
		.prop('checked', true);
	next();
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение атрибута checked imedia Элементы интерфейса 1 06.05.2016 16:14
переключение стилей интервалом 5 секунд progns Общие вопросы Javascript 3 25.10.2011 15:47