0
我將點擊事件限制爲:after
僞元素使用click-event:auto
,並創建了一個跨度來綁定父元素內的事件。爲什麼跨度不起作用?點擊事件問題:單擊事件時無父母子元素:無
function toggle(){
var button=document.querySelector('.toggle');
var bar=document.querySelector('.slide');
if(bar.className==='slide up'){
bar.className='slide down';
}else{
bar.className='slide up';
}
}
function click(){
document.body.innerHTML+='<div>Hello</div>';
}
span{
position:relative;
top:90px;
background:green;
cursor:pointer;
pointer-event:auto;
}
*{
margin:0px;
padding:0px;
height:100%;
width:100%;
}
.box{
overflow:hidden;
background-image: url('http://tombricker.smugmug.com/Travel/San-Francisco-California/i-jk2Z7D7/0/L/san-francisco-golden-gate-bridge-morning-sun-bricker-L.jpg');
background-size: cover;
background-position:center;
}
.slide{
position: relative;
left:39vw;
width: 55vw;
height: 77vh;
background: red;
pointer-events:none;
}
.slide:before {
pointer-events:auto;
cursor:pointer;
content: '';
position:absolute;
top:-3vh;
width: 0px;
height: 0px;
border-left:27.5vw solid transparent;
border-right:27.5vw solid transparent;
border-bottom:3vh solid white;
}
.slide.down{
transform:translateY(100vh);
}
.slide.up{
transform:translateY(23vh);
}
.slide.up:before{
transform:translateY(3vh) rotateX(180deg);
}
.slide{
transition:transform 0.4s ease-out;
}
<div class='box'>
<div class='slide up' onclick='toggle()'><span onclick='click()'>Hello</span></div>
</div>
白色三角是.slide:前。我使用點擊事件:自動;在上面。我不確定是否應該使用AUTO或ALL。然後我使用點擊事件:無;在.slide類上,它是它下面的紅色矩形。所以現在,我不能點擊紅色的矩形只是白色的三角形,使它上下滑動。但我仍然想點擊紅色矩形的一部分來做其他事情(不一定滑動)。所以我在矩形+三角形的div內添加了一個跨度(綠色的Hello)。然後我寫JS代碼,這樣如果點擊綠色的Hello,一個div就會被添加到HTML的主體中。但它不起作用。
我學會了這個跨度方法here,但我不太明白。
哦。我修改了它。但現在我仍然可以看到光標變爲指針,但沒有任何div添加到任何位置 – user132522
@ user132522處理它......這似乎是一種奇怪的實現方式。我會給你一個更好的解決方法。 –
@ user132522已更新。我認爲這是你想要做的。 –