#javascript
Меня интересует Как медленно физически нажать на кнопку с помощью javascript на веб странице сайта? Обычно в авторежиме происходит быстрое нажатие на кнопку, без визуального эффекта, то есть клик, который не виден визуально В Общем как сделать так чтобы кнопка среагировала в авторежиме, как будто на нее реально нажали, потом отпустили нажатую кнопку, вот собственно вот так показать физический клик по кнопке. вот нашел фрагмент команды например addEventListener("keydown", function(event) { if (event.keyCode == 32 && event.ctrlKey) console.log("Продолжаем!"); }); События «keydown» и «keyup» дают информацию о физическом нажатии кнопок. А если вам нужно узнать, какой текст вводит пользователь? Создавать его из нажатий кнопок – неудобно. Для этого существует событие «keypress», происходящее сразу после «keydown» (и повторяющееся вместе с «keydown», если клавишу продолжают удерживать), но только для тех кнопок, которые выдают символы. Свойство объекта события charCode содержит код, который можно интерпретировать как код Unicode. Я так понимаю это часть действия, перед тем как нажимают на кнопку ее находят, она реагирует и после уже команды клик происходит нажатие на кнопку. То есть я о чем? чтобы имитировать реальное нажатие на кнопку, кнопку(ссылку), а не программный переход по сайту. Как реально это лучше сделать?
Ответы
Ответ 1
Вот реализация, остальное по примеру можете накрутить сами ) (function(){ addEventListener("keydown", function(event) { if (event.keyCode == 32 && event.ctrlKey) document.getElementById('btn').classList.add('active'); }); })() button.active { background-color: green;transition: all 5s ease; } Это с покраской, но мне нравиться больше вот эта реализация (function(){ addEventListener("keydown", function(event) { if (event.keyCode == 32 && event.ctrlKey) document.getElementById('btn').classList.add('active'); setTimeout(function(){ document.getElementById('btn').classList.remove('active'); },1000) }); })() button.active { border-style: inset; background: red; color:#fff;}Ответ 2
используйте css3 transition-delay. код примерно будет такой: button:hover { background-color: red; transition: all 2s ease; } button:active { background-color: green; transition: all 5s ease; } button:focus { background-color: blue; transition: all 2s ease; } `
Комментариев нет:
Отправить комментарий