Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Таймер и функция с параметром / 10 сообщений из 10, страница 1 из 1
03.04.2013, 15:22
    #38211314
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Плиз, JQuery не предлогайте
Изучаю таймер. Первый эксперимент ставлю на плавность появления и исчезновения, потом отключу блок.

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<script language="javascript">
function hide(menu) {
   var tmrHide=setInterval(hideslow(menu), 1500);}
   
function show(menu){
   mymenu=document.getElementById(menu);
   mymenu.style.display='block';}
  
  
function hideslow(menu){ 
   alert(menu);
   var mymenu=document.getElementById(menu);
   mymenu.style.opacity=mymenu.style.opacity-0.01;
   document.title=mymenu.style.opacity;
   if (mymenu.style.opacity<0.01){
	   alert('stop');
	   mymenu.style.display='none';
	   clearInterval(tmrHide);}}
</script>


<div id="st2" onclick="show('st3');hide('st2')" style="opacity:1">
 KUKU2
</div>

<br>
<div id="st3" onclick="show('st2');hide('st3')" style="opacity:1">
 KUKU3
</div>


<!---
function showslow(menu) {
   mymenu=document.getElementById(menu);
   mymenu.style.opacity=mymenu.style.opacity+0.01;
      if (mymenu.style.opacity==1){
	   clearInterval(tmrShow);}}

var tmrShow=setInterval(showslow(menu),150);}

<script>
  var i = 1;
  var timer = setInterval(function() { alert(i++) }, 2000);
</script>


--->

</body>
</html>


Штопор почему-то из заявления о таймере. Если сделать вот так
Код: html
1.
2.
3.
4.
<script>
  var i = 1;
  var timer = setInterval(function() { alert(i++) }, 2000);
</script>


то все отлично работает, но если я хочу заявить функцию с параметром, то сразу после OnClick срабатывает эта функция, передается разово параметр и больше таймер не работает (хоть и первый раз тоже сработало не по таймеру, а мгновенно).
var tmrHide=setInterval( hideslow(menu) , 1500);

А почему так ?
...
Рейтинг: 0 / 0
03.04.2013, 15:24
    #38211330
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Алертами отслеживаю, что то никак не пойму свой прокол
...
Рейтинг: 0 / 0
03.04.2013, 15:28
    #38211342
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
setInterval не умеет передавать параметры запускаемой функции, он о них ничего не знает. По идее он вообще не должен был сработать. Используйте глобальную переменную.
...
Рейтинг: 0 / 0
03.04.2013, 15:30
    #38211350
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
AntonariyИспользуйте глобальную переменную.лучше замыкание
Код: javascript
1.
setInterval(function() { hideslow(menu); }, 1500);
...
Рейтинг: 0 / 0
03.04.2013, 15:38
    #38211370
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Спасибо . Получилось и сразу же хотел отписать что получилось в таком варианте. Интересный JS. Можно отличные анимации делать. Да и инструкции можно подбирать по таймеру с сервера. Круто
...
Рейтинг: 0 / 0
03.04.2013, 15:51
    #38211400
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Андрей159Интересный JSничего особенного: http://javascript.ru/basic/closure
Андрей159Да и инструкции можно подбирать по таймеру с сервера. http://javascript.ru/ajax/comet
...
Рейтинг: 0 / 0
03.04.2013, 21:01
    #38211876
Андрей159
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Мне нужно всегда думать как обмануть систему или есть "+" который значит что я хочу математически прибавить значение а не в текстовом виде...

Вот когда я схитрил, то работает
document.getElementById('st3').style.opacity -= (-0.01)
и значение с 0,01 стало 0,02

А по нормальному
document.getElementById('st3').style.opacity += 1
или document.getElementById('st3').style.opacity = document.getElementById('st3').style.opacity + 1
ну никак не могу с ним договорится
Он мневсе времья 01 или 11, 111, 1111....
...
Рейтинг: 0 / 0
03.04.2013, 23:00
    #38211959
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
parseInt(..style.opacity)
...
Рейтинг: 0 / 0
03.04.2013, 23:05
    #38211963
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
Андрей159Он мневсе времья 01 или 11, 111, 1111....потому что стили - это строки
например, цвет может быть red

вот и получается, что при соединении строки "1" со строкой "1" будет строка "11"
...
Рейтинг: 0 / 0
03.04.2013, 23:07
    #38211964
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таймер и функция с параметром
parseFloat
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Таймер и функция с параметром / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]