无处不在,我的按钮停止工作。我试图将其缩小到导致问题的原因,每当我在css
中添加以下代码时都会发生这种情况 -
#filler{
position:relative;
left:340px;
top:85px
}
它一直在工作,突然变得不起作用,但只有当我试图定位它时。 以下是我的所有参考代码:
function myFunction() {
$('#Asterisk').empty();
for (var i = 0; i < 7; i++) {
for (var a = i; a < 7; a++) {
$('#Asterisk').append("*");
}
$('#Asterisk').append("<br>");
}
}
&#13;
#Obelix {
border: 8px solid black;
width: 400px;
height: 200px;
position: relative;
left: 250px;
top: 100px
}
#Getafix {
width: 400px;
height: 200px;
position: relative;
left: 75px;
bottom: 126px
}
#Asterisk {
position: relative;
right: 325px;
top: 10px;
transform: rotate(180deg)
}
#mainwrapper {
height: 4000px;
width: 4000px;
position: relative
}
#filler {
position: relative;
left: 340px;
top: 85px
}
#filler {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #4CAF50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
#filler:hover {
background-color: #3e8e41
}
#filler:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
&#13;
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/looping.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
<script src="looping.js">
</script>
</head>
<div id="mainwrapper">
<body>
<button id="filler" onclick="myFunction()"> Fill in the box </button>
<div id="imgbox"> </div>
<div id="Obelix">
<div id="Asterisk"> </div>
<div id="Getafix"> </div>
</div>
</div>
</html>
&#13;
答案 0 :(得分:1)
您需要更改按钮的堆叠顺序,我已将z-index:99;
添加到#filler
现在正在工作
function myFunction() {
$('#Asterisk').empty();
for (var i = 0; i < 7; i++) {
for (var a = i; a < 7; a++) {
$('#Asterisk').append("*");
}
$('#Asterisk').append("<br>");
}
}
&#13;
#Obelix {
border: 8px solid black;
width: 400px;
height: 200px;
position: relative;
left: 250px;
top: 100px
}
#Getafix {
width: 400px;
height: 200px;
position: relative;
left: 75px;
bottom: 126px
}
#Asterisk {
position: relative;
right: 325px;
top: 10px;
transform: rotate(180deg)
}
#mainwrapper {
height: 4000px;
width: 4000px;
position: relative
}
#filler {
position: relative;
left: 340px;
top: 85px;
z-index:99;
}
#filler {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #4CAF50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
#filler:hover {
background-color: #3e8e41
}
#filler:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
<div id="mainwrapper">
<body>
<button id="filler" onclick="myFunction()"> Fill in the box </button>
<div id="imgbox"> </div>
<div id="Obelix">
<div id="Asterisk"> </div>
<div id="Getafix"> </div>
</div>
</body>
</div>
&#13;
答案 1 :(得分:1)
问题是,一旦你定位它,你的#Getafix div就在按钮上方。您可以使用z-index更改此顺序。例如。
button {
z-index: 1;
}
编辑:我为#Getafix添加了几乎透明的背景颜色,因此您可以看到它的位置。如果你使用z-index是没有选择的(因为你需要它在视觉上方的按钮上方),你可以在#Getafix div上使用pointer-events: none;
。这会导致#Getafix忽略所有单击事件,而是传递给基础按钮。不幸的是,对poiner事件的更广泛的支持是平庸的(没有ie10或以下支持):http://caniuse.com/#feat=pointer-events
function myFunction(){
$('#Asterisk').empty();
for(var i =0;i<7;i++) {
for(var a=i;a<7;a++) {
$('#Asterisk').append("*");
}
$('#Asterisk').append("<br>");
}
}
&#13;
#Obelix{
border:8px solid black;
width:400px;
height:200px;
position:relative;
left:250px;
top:100px}
#Getafix{
width:400px;
height:200px;
position:relative;
left:75px;
bottom:126px;
background-color: rgba(0,0,0,.1); /* making the #Getafix div position visible */
}
#Asterisk{
position:relative;
right:325px;
top:10px;
transform:rotate(180deg)
}
#mainwrapper{
height:4000px;
width:4000px;
position:relative}
#filler{
position:relative;
z-index: 1;
left:340px;
top:85px
}
#filler {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #4CAF50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
#filler:hover {background-color: #3e8e41}
#filler:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
&#13;
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet"
type="text/css"
href="css/looping.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
<script src="looping.js"> </script>
</head>
<div id="mainwrapper">
<body>
<button id="filler" onclick="myFunction()"> Fill in the box </button>
<div id="imgbox"> </div>
<div id="Obelix">
<div id="Asterisk"> </div>
<div id="Getafix"> </div>
</div>
</div>
</html>
&#13;
答案 2 :(得分:1)
修复div元素(#Getafix)位置或向按钮元素添加z-index(#filler)。
目前div元素(#Getafix)是重叠的宽度按钮元素和div元素捕获点击事件。
答案 3 :(得分:1)
您的按钮位于#Getafix
元素下,因此无法按下。
您可以增加z-index
元素的#Asterisk
或将pointer-events
的{{1}}设置为#Getafix
,如下面的代码段所示。
none
&#13;
function myFunction(){
$('#Asterisk').empty();
for(var i =0;i<7;i++) {
for(var a=i;a<7;a++) {
$('#Asterisk').append("*");
}
$('#Asterisk').append("<br>");
}
}
&#13;
#Obelix{
border:8px solid black;
width:400px;
height:200px;
position:relative;
left:250px;
top:100px}
#Getafix{
width:400px;
height:200px;
position:relative;
left:75px;
bottom:126px;
pointer-events: none;
}
#Asterisk{
position:relative;
right:325px;
top:10px;
transform:rotate(180deg)
}
#mainwrapper{
height:4000px;
width:4000px;
position:relative}
#filler{
position:relative;
left:340px;
top:85px
}
#filler {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #4CAF50;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
#filler:hover {background-color: #3e8e41}
#filler:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
&#13;
答案 4 :(得分:1)
你已经得到了答案。只是一个建议。不要将您的身体元素包裹在其他div
内。 <body></body>
应该是您的文档正文的根。
答案 5 :(得分:1)
在top: 100px;
css中添加bottom: 126px;
并删除#Getafix
。
#Getafix {
width: 400px;
height: 200px;
position: relative;
left: 75px;
/* bottom: 126px; */
top: 100px;
}