Rise, Спасибо большое, Вы очень помогли! Можно Вас еще попросить помочь расшифровать написанный Вами скрипт. Как я уже написал выше, хотелось бы не скопипастить набор символов и забыть, а разобраться как это работает
|
Rise, Намек понятен, спасибо)
Последний вопрос, пока я еще не изучил всю документацию ссылку на которую Вы прислали, я не могу толком прочитать Ваш скрипт из-за этого не могу понять как можно остановить его выполнение если один из импутов находится в фокусе. То есть благодаря скрипту на странице происходит некая анимация с элементами формы, а если один из них выбран (.focus() или просто .click()) то нужно что бы эта анимация остановилась |
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" с одного импута на другой за определенный интервал времени - это и создает эффект который я назвал анимацией в своем случае. То есть в итоге, на сколько я понимаю мне нужно, при наведении на родителя остановить выполнение скрипта с которым Вы в в прошлый раз мне так любезно помогли. Прошу подсказать, в правильную ли сторону развиваются мои мысли и если да то каким образом можно осуществить то что я задумал. Заранее благодарен |
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>
|
| Часовой пояс GMT +3, время: 08:16. |