gpt4 book ai didi

javascript - onclick事件触发另一个overlay div

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:11 25 4
gpt4 key购买 nike

我有一张图片,我想添加一些效果。悬停覆盖 div 我能够添加它。现在我想做的是添加 onclick 事件并更改为另一个覆盖层 div

这是我的代码,或者看CodePen Here

  <div id="box">

<div id="overlay">
<span id="plus">+</span>
</div>

CSS:

body    {  background:#e7e7e7;}
#box { width:300px;
height:200px;
float: left;
box-shadow:inset 1px 1px 40px 0 rgba(0,0,0,.45);
border-bottom:2px solid #fff;
border-right:2px solid #fff;
margin:5% auto 0 auto;
background:url(http://ianfarb.com/wp-content/uploads/2013/10/nicholas-hodag.jpg);
background-size:cover;
border-radius:5px;
overflow:hidden;}

#overlay { background:rgba(0,0,0,.75);
text-align:center;
padding:45px 0 66px 0;
opacity:0;
-webkit-transition: opacity .25s ease;}

#box:hover #overlay {
opacity:1;}

#plus { font-family:Helvetica;
font-weight:900;
color:rgba(255,255,255,.85);
font-size:96px; }

我只有悬停效果,当我点击它时应该将加号 (+) 更改为减号 (-) 并且在图像的底部 div 出现一个小的 div,其中将放置一个小的说明。

当触发第二个覆盖 div 时,我按减号 (-) 返回它应该变回。我将在此处添加一张图片,以便您可以看到我正在尝试做什么。

在下图中,您可以看到应该出现在 onclick 事件中的蓝色 div

enter image description here

最佳答案

首先,图像似乎是内容,因此它应该内联 HTML 而不是背景图像,我已经在此基础上进行了处理。

Forked Codepen Demo

修改后的 HTML

<div class="box">
<img src="http://ianfarb.com/wp-content/uploads/2013/10/nicholas-hodag.jpg" alt="" />
<div class="overlay">
<h1 class="plus"></h1>
</div>
<div class="description">
<p>Lorem ipsum dolor.</p>
</div>
</div>

在 CSS 方面,我利用了绝对定位、伪元素和一点 CSS3 转换来使一切就位。后者允许灵活地更改伪元素(箭头)的 +/- 和边框大小的某些字体大小选择。

CSS

* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

.box {
width:300px;
height:200px;
box-shadow:inset 1px 1px 40px 0 rgba(0,0,0,.45);
border-bottom:2px solid #fff;
border-right:2px solid #fff;
margin:5% auto 0 auto;
border-radius:5px;
overflow:hidden;
position: relative;
}

.box img {
display: block;
}

.overlay {
position: absolute;
width:100%;
height:100%;
top:0;
left:0;
background:rgba(0,0,0,.75);
text-align:center;
opacity:0;
-webkit-transition: opacity .25s ease;
}

.box:hover .overlay {
opacity:1;
}

.overlay .plus:before {
content:"+";
margin: 0;
padding: 0;
position: absolute;
top:50%;
left:50%;
font-family:Helvetica;
font-weight:900;
color:rgba(255,255,255,.85);
font-size:6rem;
-webkit-transform:translate(-50%, -50%);
transform:translate(-50%, -50%);
}


.overlay.clicked .plus:before {
content:"-";
}

.description {
display: block;
position: absolute;
width:100%;
height:30%;
background-color: lightblue;
bottom:-30%;
text-align: center;
transition: bottom 0.25s ease;
}

.description:after {
content:"";
position: absolute;
width:0;
height:0;
left:50%;
border-style:solid;
border-color: transparent transparent lightblue transparent;
border-width: 16px;
top:0;
-webkit-transform:translate(-50%, 100%);

}

.overlay.clicked + .description {
bottom:0%;
}

.overlay.clicked + .description:after {
-webkit-transform:translate(-50%, -100%);
}

最后,使用一点 JQuery 来通过 .toggleClass 添加点击(或事件)交互。

Jquery

(function($) {
$(".plus").click(function () {
$(this).parent().toggleClass("clicked");
});
})(jQuery);

关于javascript - onclick事件触发另一个overlay div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23936959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com