JS Воспроизведение функции!?
Вообщем здание можно сказать простое, просто не знаю как реализовать:
Есть некая функция function video() {...} в теле документа есть кнопка, которая запускает эту функцию на! Вопрос: Каким образом можно сделать воспроизведение функции до тех пор, пока нажата кнопка! P.S. Просто через функцию Onclik идет лишь одно нажатие после которого выполняеться функция, а мне необходим воспроизведение функции при зажатой кнопке! Ну надеюсь понятно расписал)) Если что напишу подробнее! + Мне не нужен код всей программы, мне нужно как именно сделать такую кнопку! |
При mousedown запускаем таймер (1, 2) который периодически запускает функцию. С остановкой сложнее: пользователь может, не отпуская кнопки мыши, перенести курсор вне кнопки и отпустить - mouseup не сработает. Это тоже надо продумать.
Еще можно сделать, что бы при первом клике кнопка нажималась, при втором - отжималась. |
можно mouseup на document повесить
|
А если это сделать при нажатии кнопки на клавиатуре! С помошью чего можно сделать такую же функцию??
+ можно ссылочки на примеры.. если есть такие :) Спасибо! |
<!DOCTYPE html> <meta charset = "utf-8" /> <script type = "text/javascript"> window.onload = function(){ var console = document.getElementById("console"); function log(text){ console.innerHTML += text + "<BR />"; } document.getElementById("go").onmousedown = function(){ (function(){ log("оппа!"); timer = window.setTimeout(arguments.callee, 500); }()) } document.onmouseup = function(){ window.clearInterval(timer); } } </script> <button id = "go">go!</button> <div id = "console"></div> |
Цитата:
function(e) { if ((e.keyCode || e.which) != 9/* код клавиши */) { /* .... */ } } |
Добавил возможность нажатия стрелку влево
<!DOCTYPE html> <meta charset = "utf-8" /> <script type = "text/javascript"> window.onload = function(){ var console = document.getElementById("console"); var progress = false; function log(text){ console.innerHTML += text + "<BR />"; } function video(){ if(progress){ return false; } progress = true; (function(){ log("оппа!"); if(progress){ window.setTimeout(arguments.callee, 250); } }()) } function stop(){ progress = false; } document.getElementById("go").onmousedown = video; document.onmouseup = stop; function key(e){ return function(event){ return event.which || event.keyCode; }(e || window.event) } //СТРЕЛКА ВЛЕВО var pushed = false; window.onkeydown = function(e){ if(key(e) == 37){ if(pushed){ return false; } pushed = true; video(); } } window.onkeyup = function(e){ if(key(e) == 37){ pushed = false; stop(); } } } </script> <button id = "go">go!</button> <div id = "console"></div> |
Большое спасибо буду разбираться!
|
Супер все отлично работает! То что нужно! :)
|
Часовой пояс GMT +3, время: 22:55. |