Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090

SetTimeout

27.03.2014, 12:10. Показов 1098. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
... хотя может быть проблема в чём-то другом (руки неоттуда растут?), но я всёже грешу на этот гадский таймер.
Короче, я пытаюсь сделать, чтобы при прокрутке страницы элемент плавно исчезал, и так же плавно появлялся. Сочинил для этого вот такую конструкцию:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function bar()
{
    var top = document.body.scrollTop;
    
    if (top <= 10) cnt = 1.0;
    else if (top <= 50 && top > 10) cnt = 0.8;
    else if (top <= 100 && top > 50) cnt = 0.6;
    else if (top <= 150 && top > 100) cnt = 0.4;
    else cnt = 0;
    delay();
}
var cnt = 0;
function delay()
{
    if (cnt < navBar.style.opacity)
    {
        setTimeout(function(){navBar.style.opacity -= 0.1; delay();}, 100);
    }
    else if (cnt > navBar.style.opacity)
    {
        setTimeout(function(){navBar.style.opacity += 0.1; delay();}, 100);
    }
}
Так вот, исчезать-то оно исчезает, а появляться обратно не хочет. К тому же, я смотрел как изменяются значения переменных при выполнении функции, а изменяются они странно: navBar.style.opacity уходит в минус (хотя такого в принципе не должно быть), и больше не меняется.
Короче, то ли я дурак, то ли лыжи не едут...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2014, 12:10
Ответы с готовыми решениями:

SetTimeout
Надо чтобы квадраты меняли цвет на зеленый, сначала один, потом другой и снова. Что тут может быть не так? &lt;!DOCTYPE html&gt; ...

SetTimeout
Привет знатокам. У меня не большая проблема с таймером. Хочу что бы сообщение выбилось через 1 секунду. ...

Зациклить setTimeout
Добрый день! Как зациклить анимацию клика? Использую for, но не помогает. Всё равно останавливается. $(document).ready(function()...

4
53 / 53 / 10
Регистрация: 25.09.2011
Сообщений: 264
27.03.2014, 14:40
ChildOfFlowers, не-не, реализация отстойная. Сам по таким граблям походил. Всё из-за cnt, которая используется и при скрытии, и при показе элемента. Слишком быстро, наверное, делаешь события, при которых элементу нужно скрываться, вот оно и работает неверно.
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
27.03.2014, 18:24  [ТС]
Быстро, конечно, это же прокрутка страницы вверх/вниз. А как же быть? Написать юзерам чтобы быстро страницу не прокручивали?
0
53 / 53 / 10
Регистрация: 25.09.2011
Сообщений: 264
27.03.2014, 20:18
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
А как же быть? Написать юзерам чтобы быстро страницу не прокручивали?
Не в ту сторону смотришь. Как вариант, добавить флаг состояния. Исчезает элемент или появляется и проверять его при уменьшении/увеличении прозрачности.
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
27.03.2014, 20:48  [ТС]
Reebka, да это всё понятно, но дело походу не в этом. Я тут ещё более странную вещь выяснил:
JavaScript
1
<BUTTON onClick = "navBar.style.opacity += 0.1">+</BUTTON><BUTTON onClick = "navBar.style.opacity -= 0.1">-</BUTTON>
Вроде всё проще пареной репы, но: при нажатии на кнопку с минусом opacity, естественно, уменьшается. А вот при нажатии на кнопку с плюсом ничего нигде не прибавляется почему-то... вот теперь я реально не знаю что делать

Добавлено через 16 минут
Разобрался
Оказывается navBar.style.opacity у нас NaN. Соответственно, при отнимании строка автоматически переводится в число, и всё работает нормально. А при прибавлении прибавляемое число переводится в строку и дописывается к существующей строке, и получается ерунда. Соответственно, нужно всего лишь
JavaScript
1
parseFloat(navBar.style.opacity)
и всё работает отлично
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2014, 20:48
Помогаю со студенческими работами здесь

JavaScript (SetTimeout);
Есть задача ... после нажатия на кнопку, сделать так что бы её фон изменялся (мигал как в первом миллионе). Сложность в методе SetTimeout...

Javascript setTimeout
Доброго времени суток. помогите разобраться, почему код не хочет сотрудничать Есть код var n=-250; function test(){ ...

Не срабатывает setTimeout()
Добрый вечер почему то не срабатывает setTimeout(); &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;script...

window.setTimeout
Люди подскажите пожалуйста, после авторизации на сайте я попадаю на страничку с кодом &lt;body&gt; &lt;div...

метод setTimeout
Не работает таймер таким образом: /* ... */ function hide(div) { setTimeout('div.style.display = &quot;none&quot; ', 1000) } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru