[英]Have created a click effect for a single image, but would like to have the other images have the same effect
我正在尝试其他所有选项,但似乎无法解决此问题。 以下是对体验的解释:
当访问该页面时,该人会看到许多图像(带有类标记,例如,其中两个图像标记为img01
和img02
)。 单击图像后,图像将保持其位置( img01
的z索引已升高),而所有其他图像均消失(带有白色填充的DIV逐渐img02
并覆盖img02
),并且说明该片段的文本img02
逐渐消失也是如此(带有img01
的支持文本的DIV标记object-text
文本逐渐淡出)。
当我使img01
功能正常工作时,我似乎无法对img02
做同样的img02
。 我还计划添加更多标签(例如img03
和img04
),并且想知道是否可以使用一种更智能,更有效的方式来构造它。
对于功能参考,这是http://jsfiddle.net/kenhimself/nvwzgus0/4/,下面是html,css和java代码。
提前致谢!
html
<a href="#" id="object" class="img01"> <img class="img01" src="http://media.tumblr.com/tumblr_mcepyv1Qfv1ru82ue.jpg"/></a>
<div id="object-text" class="img01">
<h1>img01 Text<br/>img01 Text</h1>
</div>
<a href="#" id="object" class="img02"> <img class="img02" src="http://media.tumblr.com/tumblr_mcepyv1Qfv1ru82ue.jpg"/></a>
<div id="object-text" class="img02">
<h1>img02 Text<br/>img02 Text</h1>
</div>
<div id="filler"></div>
的CSS
html, body {
width:100%;
height:100%;
}
#object {
top: 100px;
left:100px;
}
#object-text {
display:none;
z-index:100000;
bottom: 0;
left: 0;
}
#filler {
display:none;
width:100%;
height:100%;
position:fixed;
background-color: white;
z-index:1000;
opacity: 0.8;
}
h1 {
font-size:20px;
font-family: sans-serif;
font-weight: 100;
font-style: normal;
color: red;
}
.img01, .img02 {
position:absolute;
}
.img01 img, .img02 img {
width:200px;
height:auto;
}
.img01 {
top: 20px;
left: 20px;
}
.img02 {
top: 20px;
right: 20px;
}
Java脚本
$("#object").click(function (e) {
e.stopPropagation();
});
$("#object").click(function (e) {
e.preventDefault();
e.stopPropagation();
$("#object").css("z-index", "2000");
$("#object-text").fadeIn("slow");
$("#filler").fadeIn("slow");
$("#inner").css("z-index", "2000");
});
$(document).click(function () {
$("#filler").fadeOut("slow");
$("#object-text").fadeOut("slow");
});
我在这里看到的主要问题是您有两个具有相同ID的对象。 更改此设置,您的代码应该可以正常工作。 我建议将您具有的id(对象)的内容切换为类,并将您具有的类(img02和img01)的内容切换为id。
我仔细检查了您的代码,看来您正在做很多事情。 确保在编写代码时从未像以往一样重复使用id。 您的a和您的div都有重复的ID。
并不是说,但这确实需要大量工作。 如果您需要更多帮助,请随时提出任何问题。
您的代码存在一些问题。 您应该为每个DOM元素使用唯一的ID,并按类名定位图像。 我对您的示例进行了一些更改,并对其进行了稍微的重组,以向您展示一种更好的方法。
http://jsfiddle.net/nvwzgus0/6/
将每个图像包装在一个包含标签中,删除重复的ID,并改用类名
<a href="#" class="img img01">
<img class="img01" src="http://media.tumblr.com/tumblr_mcepyv1Qfv1ru82ue.jpg"/>
<div class="object-text">
<h1>img01 Text<br/>img01 Text</h1>
</div>
</a>
<a href="#" class="img img02">
<img class="img02" src="http://media.tumblr.com/tumblr_mcepyv1Qfv1ru82ue.jpg"/>
<div class="object-text">
<h1>img02 Text<br/>img02 Text</h1>
</div>
</a>
<div id="filler"></div>
添加了用于更改z-index而不是手动设置z-index的CSS类,以便更轻松地打开和关闭。
a.top {
z-index: 2000;
}
修改了事件处理以定位新的包含标签:
$("a.img").click(function (e) {
e.preventDefault();
e.stopPropagation();
$(this).addClass("top");
$(this).find(".object-text").fadeIn("slow");
$("#filler").fadeIn("slow");
});
修改了图像z-index的重置方式:
$(document).click(function () {
$("#filler").fadeOut("slow", function() {
$("a.img").removeClass("top");
});
$(".object-text").fadeOut("slow");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.