Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: мигание

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
LIME
Отправлено: 29 Ноября, 2011 - 13:39:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




привет
не знаю как сделать нативно мигание текста в JS
по онклику получаю vybor=document.getElementById("info");
вставляю туда innerHTML
надо чтоб оно мигнуло два раза(типа обратило на себя внимание)
напишите как менять прозрачность по интервалу пжлст
спасибо ))
(Добавление)
нашел
CODE (javascript):
скопировать код в буфер обмена
  1. for ( i = 0; i < 20; i++)
  2. {
  3.         setTimeout("document.getElementById('info').style.fontWeight='Bold'",500)
  4.         setTimeout("document.getElementById('info').style.fontWeight='Normal'",1000);
  5. }
почемуто 1 раз утолщает потом возвращает и все
и при повторном клике вообще нет реакции
(Добавление)
вот весь навсякий
CODE (javascript):
скопировать код в буфер обмена
  1. function go(el) {
  2.         var vybor=document.getElementById("info"),vybor2=document.getElementById("info2");
  3.         var td=el.childNodes,str='';
  4.         str = td[0].innerHTML+"  Ряд:"+td[1].innerHTML+"  Цена:"+td[2].innerHTML+"р.  Места:"+td[3].innerHTML; 
  5.         vybor.innerHTML=str;
  6.         vybor2.value=str;
  7.         for ( i = 0; i < 20; i++)
  8. {
  9.         setTimeout("document.getElementById('info').style.fontWeight='Bold'",500)
  10.         setTimeout("document.getElementById('info').style.fontWeight='Normal'",1000);
  11. }
  12. }

(Добавление)
передается this
(Добавление)
пробовал без цикла
повторял тупо таймауты
тотже результат

(Отредактировано автором: 29 Ноября, 2011 - 14:26:03)

 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2011 - 14:55:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Срабатывают таймауты когда положено. Другое дело, что все 20 - сразу. Почему - на самостоятельное изучение.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:07:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий спасибо ))
вспомнил))
писать фцию переключения и в setInterval ?
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2011 - 15:12:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




или так, или ставить таймаут в зависимость от счётчика i


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:13:20
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




вообщето надо чтоб 2 раза мигнуло
как осуществить подскажите плз
(Добавление)
Мелкий пишет:
ставить таймаут в зависимость от счётчика i
примерчик можно? не догнал
 
 Top
EuGen Администратор
Отправлено: 29 Ноября, 2011 - 15:19:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2.  
  3. function switchState(rObj, bState)
  4. {
  5.    rObj.style.visibility=(bState?"visible":"hidden");
  6. }
  7. function blinkItem(rObj, fnCallback, iTimes, iTimeout)
  8. {
  9.    if(!iTimes)
  10.    {
  11.       return true;
  12.    }
  13.    window[fnCallback](rObj, iTimes % 2);
  14.    setTimeout(function(){blinkItem(rObj, fnCallback, iTimes-1, iTimeout)}, iTimeout);
  15. }
  16.  
  17. </script>
  18.  
  19. <div id="blinkTester">Some text is here</div><br/>
  20. Enter blinking times: <input type="text" id="blinkTimes">
  21. <input type="button" onClick="blinkItem(document.getElementById('blinkTester'), 'switchState', document.getElementById('blinkTimes').value, 500); return true;" value="Blink it!">


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:27:10
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




EuGen извините но я не достаточно знаю JS для разбора вашего примера
а надо бы сделать сегодня или завтра до обеда
возможно ли привести поконкретнее пример для скрипта который я привел выше?
надеюсь на вашу помощь
спасибо
(Добавление)
тему перенесли из "напишите за меня"
зря)) мне надо именно конкретный скрипт
мне не лень изучать но загруженность не позволяет на данный момент к сожалению
помогите мне в этой детали пжлст
 
 Top
EuGen Администратор
Отправлено: 29 Ноября, 2011 - 15:32:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




LIME
Можете вообще просто использовать мой пример. Вам достаточно лишь исправить для себя callback-функцию switchState


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:36:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




EuGen но ведь кроме всего есть действия по клику другие
надо все в 1ой ф-ции сделать вызываемой по клику
а у вас есть действия прописанные в клике тега
как это отразится на переносе вашего скрипта в мою фцию?
 
 Top
EuGen Администратор
Отправлено: 29 Ноября, 2011 - 15:41:38
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ну так выполняйте требуемые действия, добавив к ним вызов "функции-мигалки". То есть Ваш функционал будет работать как обычно (естественно, Ваши seTimeout нужно будет убрать), но плюс к тому вызовется функция, которая выполнит нужную подсветку.
Пример я написал специально унифицированным, чтобы подключать легко было.
Все будет примерно так (не имею возможности проверить):
CODE (javascript):
скопировать код в буфер обмена
  1.     function go(el) {
  2.             var vybor=document.getElementById("info"),vybor2=document.getElementById("info2");
  3.             var td=el.childNodes,str='';
  4.             str = td[0].innerHTML+"  Ряд:"+td[1].innerHTML+"  Цена:"+td[2].innerHTML+"р.  Места:"+td[3].innerHTML;
  5.             vybor.innerHTML=str;
  6.             vybor2.value=str;
  7.             blinkItem(document.getElementById('info'), 'switchState', 20, 500);
  8.     }

- ну и, повторюсь, switchState под Вашу стилизацию мигания изменить нужно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
OrmaJever
Отправлено: 29 Ноября, 2011 - 15:47:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Я раньше когда был неопытным написал функцию. Вот она
CODE (javascript):
скопировать код в буфер обмена
  1. var opacity = 1;
  2. var xx = true;
  3.  
  4. function animate() {
  5.         var timer = document.getElementById('time'); // елемент текста
  6.         if(xx === true && opacity >= 0) {
  7.                 opacity = (opacity - 0.05).toFixed(2);
  8.                 if(opacity == 0) xx = false;
  9.         } else {
  10.                 opacity = (Number(opacity) + 0.05).toFixed(2);
  11.                 if(opacity == 1) xx = true;
  12.         }
  13.         timer.style.opacity = opacity;
  14.     setTimeout('animate()', 30);
  15. }

ВОзможно написана плохо, возможно работать не будет, но для пример сойдёт Улыбка


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:49:27
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




OrmaJever спасибо)) ...я пока с вариантом EuGenа разбираюсь
потом возможно ваш рассмотрю
EuGen все получилось спасибо но...
при повторных кликах не работает мигание (и только оно)
в чем дело может быть?
(Добавление)
то есть содержание меняется но не мигает
мигает только первый раз

(Отредактировано автором: 29 Ноября, 2011 - 15:52:06)

 
 Top
EuGen Администратор
Отправлено: 29 Ноября, 2011 - 15:53:36
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Сложно так, не глядя, сказать. Функция контекстно-независима, явной причины не вижу (посколько тестировал ее и на параллельных вызовах, и на многократных последовательных).
Могу предложить только firebug - чтобы посмотреть, что не так. (он сообщит об ошибке) - отладка.. не говорю о ней, потому как Вы сказали
LIME пишет:
но я не достаточно знаю JS

Если у Вас установлен firebug и он показывает какую-либо ошибку - покажите, постараюсь понять, в чем проблема.
И покажите, как Вы переписали функцию switchState


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 29 Ноября, 2011 - 15:59:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




я сегодня пожалуй уже небуду ничего писать
завтра продолжим если вы не против
EuGen пишет:
Если у Вас установлен firebug и он показывает какую-либо ошибку
ошибок нет
до завтра ))
спасибо за помошь
 
 Top
EuGen Администратор
Отправлено: 29 Ноября, 2011 - 16:10:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Есть кстати идея, почему так может быть. Дело в том, что канонически setTimeout ожидает строковую переменную в качестве кода. Вызов лямбда-функции допустим (как в моем примере), но поддерживается не всеми браузерами (и, насколько мне известно, даже не все версии одного и того же браузера могут правильно интерпретировать подобный вызов).
Можно попробовать привести к классическому виду:
CODE (javascript):
скопировать код в буфер обмена
  1. function blinkItem(rObj, fnCallback, iTimes, iTimeout)
  2. {
  3.    if(!iTimes)
  4.    {
  5.       return true;
  6.    }
  7.    window[fnCallback](rObj, iTimes % 2);
  8.    setTimeout("blinkItem("+rObj+", '"+fnCallback+"', "+(iTimes-1)+", "+iTimeout+")", iTimeout);
  9. }


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB