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, время: 12:37. |