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

SetTimeout

27.03.2014, 12:10. Показов 1142. Ответов 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,091
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,091
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
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru