我试图点击链接显示特定的div。像灯箱效应的东西。我设法点击链接加载并使用div
弹出class
动画,但我需要在其中显示特定内容。
<html>
<head>
<style>
.pop{
background-color: rgba(17,17,17,0.50);
position:fixed;
top:0;
right:0;
bottom:0;
left:0;
z-index: 1000;
overflow-x: hidden;
overflow-y: hidden;
display:none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$('.pro a').click(function(event){
event.preventDefault();
$('.pop').fadeIn(function(){
$(this).css({'display':'block'},550);
});
});
});
</script>
</head>
<div class="pro">
<a href="#"></a>
<a href="#"></a>
<a href="#"></a>
</div>
<div class="pop" id="1">
<div class="mem">profile 1</div>
</div>
<div class="pop" id="2">
<div class="mem">profile 2</div>
</div>
</html>
&#13;
我会感激任何帮助。 提前谢谢。
这里是jsfiddle
答案 0 :(得分:2)
您可以使用html5 data-
属性来实现此功能。将其添加到锚标记以跟踪哪个div显示为弹出窗口并在点击事件中使用其ID:
<div class="pro">
<a href="#" data-id="first">first</a>
<a href="#" data-id="second">second</a>
<a href="#" data-id="third">third</a>
</div>
<div class="pop" id="first">
<div class="mem">profile 1</div>
</div>
<div class="pop" id="second">
<div class="mem">profile 1</div>
</div>
<div class="pop" id="third">
<div class="mem">profile 1</div>
</div>
$(document).ready(function () {
$('.pro a').click(function (event) {
event.preventDefault();
$('.pop').hide(); // hide previous popup div
var id = $(this).data("id"); // get the div id which to show
$('#' + id).fadeIn(function () { // show cuurent click link's popup
$(this).css({
'display': 'block'
}, 550);
});
});
});
答案 1 :(得分:0)
试试这个:
$(document).ready(function () {
$('.pro a').click(function (event) {
event.preventDefault();
$('.pop').hide().eq($(this).index()).fadeIn(function () {
$(this).css({
'display': 'block'
}, 550);
});
});
});
<强> jsFiddle example 强>
答案 2 :(得分:0)
您需要隐藏您显示的最后一个div。试试这个:
var lastElement = null;
$(document).ready(function(){
$('.pro a').click(function(event){
event.preventDefault();
$('.pop').fadeIn(function(){
if(lastElement)
$(lastElement).css({'display':'none'},550);
$(this).css({'display':'block'},550);
lastElement = this;
});
});
});
答案 3 :(得分:0)
这是一个仅限CSS的解决方案:http://jsfiddle.net/35qnxome/。如果您希望保留所选内容的状态,则可以使用广播tabindex
和:focus
而不是input
属性和label
伪类组合。 {1}}伪类。
HTML:
:checked
CSS:
<div class="pro">
<a href="#" data-id="first" tabindex = "1">first</a>
<a href="#" data-id="second" tabindex = "2">second</a>
<a href="#" data-id="third" tabindex = "3">third</a>
<div class="pop" id="first">
<div class="mem">profile 1</div>
</div>
<div class="pop" id="second">
<div class="mem">profile 2</div>
</div>
<div class="pop" id="third">
<div class="mem">profile 3</div>
</div>
</div>