[英]How do I cancel my button:hover in css when a button is clicked?
I have a .button:hover
thing in my css code, but I want that code to be canceled for five seconds when my button is pressed?我的 css 代码中有一个
.button:hover
东西,但是我希望在按下按钮时取消该代码五秒钟? My code is below.我的代码如下。
function myFunction(){ var text = document.getElementById('input').value; var textArray = text.split(" ").sort(); var output= document.getElementById('output'); output.value = textArray.toString().replace(/,/g," "); } function maFunction() { var copyText = document.getElementById("output"); copyText.select(); copyText.setSelectionRange(0, 99999) document.execCommand("copy"); } /*function ok() { document.getElementById("copied").innerHTML = "Hello World"; } */ /*function fadeOut(){ location.href='index.html#open-modal'; setTimeout(function () { location.href='index.html#modal-close'; }, 1000); }*/
body { margin-top: 10px; margin-left: 20px; display: flex; }.form { margin-right: 20px; background: #ffffff; position: relative; }.input { height: 700px; width: 600px; margin-top: 15px; outline: none; font-size: 26px; resize: none; border-style: solid; border-color: #4CAF50; border-width: 2px; outline: none; border-radius: 10px; margin-top: 0px; padding-top: 5px; padding-left: 10px; }.otput { height: 695px; width: 620px; outline: none; resize: none; border-style: solid; border-color: #4CAF50; border-width: 2px; border-radius: 10px; outline: none; margin-left: 10px; }.output { height: 650px; width: 512px; outline: none; font-size: 26px; resize: none; outline: none; border: none; padding: 0px; margin-top: 5px; margin-left: 10px; }.button { background: #4CAF50; border: none; outline: none; color: #ffffff; padding: 14px; width: 100px; border-radius: 0 10px; /*margin-left: 1134px;*/ font-size: 22px; cursor: pointer; position: absolute; }.speech-bubble { height: 20px; width: 150px; color: white; font-size: 20px; text-align: left; position: relative; background: #4CAF50; border-radius: 1px; padding: 10px 10px 10px 5px; box-shadow: 0 4px 8px 0 rgba(141, 105, 105, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); display: none; margin-top: 35px; margin-left: 630px; }.speech-bubble:after { content: ''; position: absolute; left: 0; top: 50%; width: 0; height: 0; border: 9px solid transparent; border-right-color: #4CAF50; border-left: 0; margin-top: -9px; margin-left: -9px; }.button:hover +.speech-bubble { transform: translateY(-690px); display: block; }.button:hover +.speech-bubble:after { display: block; }::selection { color: black; background: lightblue; }::-webkit-scrollbar { width: 10px; }::-webkit-scrollbar:hover { width: 20px; }::-webkit-scrollbar-thumb { background: #888; } /*.modal-window { position: fixed; background-color: rgba(200, 200, 200, 0.75); top: 0; right: 0; bottom: 0; left: 0; z-index: 999; opacity: 0; pointer-events: none; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; transition: all 0.3s; }.modal-window:target { opacity: 1; pointer-events: auto; }.modal-window > div { width: 170px; height: 50px; padding: 10px; position: relative; margin: 10% auto; /*padding: 2rem;*/ /*background: #fff; color: #333; }.modal-window.copy{ font-size: 20px; }*/
<html> <head> <title>alphabetical order machine</title> <link rel="stylesheet" href="index.css"> </head> <body> <textarea class="input" id="input" type="text" placeholder="type your text here" onchange="myFunction()" onkeyup="myFunction()"></textarea> <form class="otput"> <textarea class="output" id="output" type="output" placeholder="your alphabetized text will appear here"></textarea> <input class="button" type='button' value="copy" onclick="maFunction()"> <p class="speech-bubble">click to copy text</p> <.--p id="copied" class="copied"></p--> </form> <script src="index.js"></script> </body> </html>
You can add a class
on click and use it to set display:none
for the speech buble.您可以在单击时添加
class
并使用它为语音气泡设置display:none
。
possible example可能的例子
function myFunction(){ var text = document.getElementById('input').value; var textArray = text.split(" ").sort(); var output= document.getElementById('output'); output.value = textArray.toString().replace(/,/g," "); } function maFunction(el) { //update: el el.classList.add('clicked');// update var copyText = document.getElementById("output"); copyText.select(); copyText.setSelectionRange(0, 99999) document.execCommand("copy"); setTimeout( () => el.classList.remove('clicked'),5000);//Oups, needed: update to recover hover behavior after 5s } /*function ok() { document.getElementById("copied").innerHTML = "Hello World"; } */ /*function fadeOut(){ location.href='index.html#open-modal'; setTimeout(function () { location.href='index.html#modal-close'; }, 1000); }*/
body { margin-top: 10px; margin-left: 20px; display: flex; }.form { margin-right: 20px; background: #ffffff; position: relative; }.input { height: 700px; width: 600px; margin-top: 15px; outline: none; font-size: 26px; resize: none; border-style: solid; border-color: #4CAF50; border-width: 2px; outline: none; border-radius: 10px; margin-top: 0px; padding-top: 5px; padding-left: 10px; }.otput { height: 695px; width: 620px; outline: none; resize: none; border-style: solid; border-color: #4CAF50; border-width: 2px; border-radius: 10px; outline: none; margin-left: 10px; }.output { height: 650px; width: 512px; outline: none; font-size: 26px; resize: none; outline: none; border: none; padding: 0px; margin-top: 5px; margin-left: 10px; }.button { background: #4CAF50; border: none; outline: none; color: #ffffff; padding: 14px; width: 100px; border-radius: 0 10px; /*margin-left: 1134px;*/ font-size: 22px; cursor: pointer; position: absolute; }.speech-bubble { height: 20px; width: 150px; color: white; font-size: 20px; text-align: left; position: relative; background: #4CAF50; border-radius: 1px; padding: 10px 10px 10px 5px; box-shadow: 0 4px 8px 0 rgba(141, 105, 105, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); display: none; margin-top: 35px; margin-left: 630px; }.speech-bubble:after { content: ''; position: absolute; left: 0; top: 50%; width: 0; height: 0; border: 9px solid transparent; border-right-color: #4CAF50; border-left: 0; margin-top: -9px; margin-left: -9px; }.button:hover +.speech-bubble { transform: translateY(-690px); display: block; }.button:hover +.speech-bubble:after { display: block; }.button.clicked +.speech-bubble {display:none}/* UPDATE HERE */::selection { color: black; background: lightblue; }::-webkit-scrollbar { width: 10px; }::-webkit-scrollbar:hover { width: 20px; }::-webkit-scrollbar-thumb { background: #888; } /*.modal-window { position: fixed; background-color: rgba(200, 200, 200, 0.75); top: 0; right: 0; bottom: 0; left: 0; z-index: 999; opacity: 0; pointer-events: none; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; transition: all 0.3s; }.modal-window:target { opacity: 1; pointer-events: auto; }.modal-window > div { width: 170px; height: 50px; padding: 10px; position: relative; margin: 10% auto; /*padding: 2rem;*/ /*background: #fff; color: #333; }.modal-window.copy{ font-size: 20px; }*/
<textarea class="input" id="input" type="text" placeholder="type your text here" onchange="myFunction()" onkeyup="myFunction()"></textarea> <form class="otput"> <textarea class="output" id="output" type="output" placeholder="your alphabetized text will appear here"></textarea> <input class="button" type='button' value="copy" onclick="maFunction(this)"><!-- update on onclick --> <p class="speech-bubble">click to copy text</p> <!--p id="copied" class="copied"></p--> </form>
Create a new class called .clicked
, which contains the styling you want to see when the button is clicked.创建一个名为
.clicked
的新 class ,其中包含您希望在单击按钮时看到的样式。 Then add the class to the button for 5 seconds.然后将 class 添加到按钮 5 秒。
function clicked (button) { button.classList.add('clicked'); setTimeout( () => button.classList.remove('clicked'), 5000); }
button:hover.clicked { background-color: red; } button:hover.clicked +.speech-bubble { color: blue; background-color: #aaa; }
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" /> <div class="m-4"> <button class="btn btn-primary" onclick="clicked(this);">Sample Button</button> <p class="speech-bubble">click to copy text</p> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.