因此,我目前正在学习jquery和一些tweenlite动画(我想使其保持基本状态)。所以我目前正在构建一个投资组合网格,但是我想添加一个其他元素正在淡入的元素的点击(从右边滑动没关系)。
但是我找不到一种方法来使一个元素具有一个显示框,而另一个元素具有不同的显示框,而不用一遍又一遍地处理代码并每次都更改一个简单的数字,所以必须找到一种方法使它工作而不必一遍又一遍地重复代码。
我创建了一个Codepen来显示我的挣扎所在。
我希望我能很清楚地描述这个问题:)
的HTML
<div class="box">
<div class="show">Show 1</div>
</div>
<div class="bigbox">
<div class="removeit">
<div class="bigshow">Bigshow 1</div>
</div>
</div>
<div class="box">
<div class="show">Show 2</div>
</div>
<div class="bigbox">
<div class="removeit">
<div class="bigshow">Bigshow 2</div>
</div>
</div>
</div>
的CSS
.container {
overflow: auto;
margin: 0 auto;
width:500px;
}
.box {
height:200px;
width:200px;
background:yellow;
text-align:center;
cursor:pointer;
margin:0 auto;
float:left;
margin-right:50px;
}
.bigbox {
height:100%;
width:100%;
background-color: grey;
z-index:100;
left:0;
opacity: 0;
position: fixed;
display:none;
top:0;
.removeit {
height:100px;
width: 100px;
top: 0;
right:0;
background-color: blue;
margin:0 auto;
cursor:pointer;
}
}
.show {
display:block;
}
.noscroll {
overflow:hidden;
}
Java脚本
$(".box").click(function(){
$(".bigbox").addClass("show");
TweenLite.to($('.bigbox'), 0.5, {
opacity:1,
autoAlpha:1
});
});
$(".removeit").click(function(){
TweenLite.to($('.bigbox'), 0.5, {
autoAlpha:0,
opacity:0
});
});
Codepen
http://codepen.io/denniswegereef/pen/MwjOXP
最佳答案
正如我在评论中提到的那样,我认为有可能通过找到框和 bigbox 之间的共同点,以及是否要不修改HTML来达成共识。该共同点应该是各自类中的索引值。
像这样:
var clickedIndex=$('.box').index($(this));
。 varbigbox=$(".bigbox").eq(clickedIndex);
。 这是修改后的JavaScript:
var bigbox = null;
var clickedIndex = -1;
var boxElements=$(".box");
var bigboxElements=$(".bigbox");
var removeItElements=$(".removeit");
boxElements.click(function() {
clickedIndex = boxElements.index($(this));
bigbox = bigboxElements.eq(clickedIndex);
bigbox.addClass("show");
TweenLite.to(bigbox, 0.5, {opacity: 1,autoAlpha: 1});
});
removeItElements.click(function() {
clickedIndex = removeItElements.index($(this));
bigbox = bigboxElements.eq(clickedIndex);
TweenLite.to(bigbox, 0.5, {autoAlpha: 0,opacity: 0});
});
这种方法的唯一问题是,它非常依赖于HTML的布局顺序。