用 onmouseover() 创建了一个 <div> display:block 但我无法点击它,因为一旦我将鼠标移开它就消失了,因为 onmouseout()
made a <div> display:block with onmouseover() but i can't click on it becasue as soon as I move my mouse away it disappears because of onmouseout()
于是我做了一个display: block when the mouse hover over a some , display: none 当光标移开时。 '
A div I have made that displays only when the mouse hovers over a certain link
the div has a display: none when the mouse moves away from the link
这是我用过的代码
HTML:
<a href="#" onmouseover="LoginShow()" onmouseout="LoginHide()">Login/Sign Up</a>
JavaScript:
function LoginShow (){
document.getElementById("log").style.display="block";}
function LoginHide(){
document.getElementById("log").style.display="none";}
但是我无法点击 div,因为一旦我尝试将光标移动到 div 中的按钮,div 就会显示 none 因为我必须将光标从 link.
移开
我是JS新手,但是我看到其他网页是这样做的,div鼠标悬停显示的方法是什么,可以点击显示:none只有当我离开 div.
我也试过了
<a href="#" onmouseover="LoginShow()">Login/Sign Up</a>
<div class="login" id="log" onmouseover="LoginShow()"
onmouseout="LoginHide()">
有点解决了问题,但是要让 div 显示 none 我必须将光标从 div 移开,如果将光标移开从锚标签开始,它不会消失。
我认为可以使用 css 选择器来完成,因为您可以将其他 div 作为开关来更改其他元素。
Reference for css selectors
而且我认为您的 div 是按钮的一部分,这就是它们消失的原因。如果是这种情况,那么您应该尝试为您的按钮提供“position:relative”,然后为您的 div 元素提供“position:absolute”。它可能会起作用。
已编辑:
这是我尝试过的,它没有吸引力,但看看它,如果它是你想要实现的。
function LoginShow (){
document.getElementById("log").style.display="block";
}
function LoginHide(){
document.getElementById("log").style.display="none";
}
.container{
width:400px;
height:400px;
background:lightgreen;
border:1px red solid;
}
#log{
background:#efefef;
padding:20px;
width:100px;
text-align: center;
display:none;
}
.log>button{
padding:20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="custom.css">
</head>
<body>
<div class="container">
<a href="#" onmouseover="LoginShow()" onmouseout="LoginHide()">Login/Sign Up</a>
<div id="log" onmouseover="LoginShow()" onmouseout="LoginHide()"><button>Sign Up</button></div>
</div>
<script src="main.js"></script>
</body>
</html>
你可以不用任何 js 来做,看看下面的代码片段。
let target = document.getElementById('target');
function showLog() {
target.style.display = 'block';
}
function hideLog() {
target.style.display = 'none';
}
.wrapper {
background: #eee;
}
.wrapper .inner-content {
display: none;
position: absolute;
background: red;
}
<div class="wrapper" onmouseover="showLog()" onmouseout="hideLog()">
I am the wrapper
<div class="inner-content" id="target">
<p>Here is some content inside wrapper element</p>
</div>
</div>
于是我做了一个display: block when the mouse hover over a some , display: none 当光标移开时。 '
A div I have made that displays only when the mouse hovers over a certain link
the div has a display: none when the mouse moves away from the link
这是我用过的代码
HTML:
<a href="#" onmouseover="LoginShow()" onmouseout="LoginHide()">Login/Sign Up</a>
JavaScript:
function LoginShow (){
document.getElementById("log").style.display="block";}
function LoginHide(){
document.getElementById("log").style.display="none";}
但是我无法点击 div,因为一旦我尝试将光标移动到 div 中的按钮,div 就会显示 none 因为我必须将光标从 link.
移开我是JS新手,但是我看到其他网页是这样做的,div鼠标悬停显示的方法是什么,可以点击显示:none只有当我离开 div.
我也试过了
<a href="#" onmouseover="LoginShow()">Login/Sign Up</a>
<div class="login" id="log" onmouseover="LoginShow()"
onmouseout="LoginHide()">
有点解决了问题,但是要让 div 显示 none 我必须将光标从 div 移开,如果将光标移开从锚标签开始,它不会消失。
我认为可以使用 css 选择器来完成,因为您可以将其他 div 作为开关来更改其他元素。 Reference for css selectors
而且我认为您的 div 是按钮的一部分,这就是它们消失的原因。如果是这种情况,那么您应该尝试为您的按钮提供“position:relative”,然后为您的 div 元素提供“position:absolute”。它可能会起作用。
已编辑: 这是我尝试过的,它没有吸引力,但看看它,如果它是你想要实现的。
function LoginShow (){
document.getElementById("log").style.display="block";
}
function LoginHide(){
document.getElementById("log").style.display="none";
}
.container{
width:400px;
height:400px;
background:lightgreen;
border:1px red solid;
}
#log{
background:#efefef;
padding:20px;
width:100px;
text-align: center;
display:none;
}
.log>button{
padding:20px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="custom.css">
</head>
<body>
<div class="container">
<a href="#" onmouseover="LoginShow()" onmouseout="LoginHide()">Login/Sign Up</a>
<div id="log" onmouseover="LoginShow()" onmouseout="LoginHide()"><button>Sign Up</button></div>
</div>
<script src="main.js"></script>
</body>
</html>
你可以不用任何 js 来做,看看下面的代码片段。
let target = document.getElementById('target');
function showLog() {
target.style.display = 'block';
}
function hideLog() {
target.style.display = 'none';
}
.wrapper {
background: #eee;
}
.wrapper .inner-content {
display: none;
position: absolute;
background: red;
}
<div class="wrapper" onmouseover="showLog()" onmouseout="hideLog()">
I am the wrapper
<div class="inner-content" id="target">
<p>Here is some content inside wrapper element</p>
</div>
</div>