【发布时间】:2015-08-03 15:48:17
【问题描述】:
所以我目前正在学习 jquery 和一点点 tweenlite 动画(我想保持基本)。所以我目前正在构建一个投资组合网格,但我想单击一个元素,而另一个元素正在淡入(从右侧滑动没关系)。
但是我找不到一种方法来让它工作,即 1 个元素有 1 个要显示的框,而另一个元素有不同的框要显示,而无需一遍又一遍地处理代码并且每次都更改一个简单的数字,必须有一种使其工作而无需一遍又一遍地重复代码的方法。
我创建了一个 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;
}
Javascript
$(".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
});
});
密码笔
【问题讨论】:
-
您担心 HTML 中的代码重复?在 JavaScript 中没有看到任何重复的内容?请详细说明一下?
-
好的,嗯,你在 HTML 中得到了一个类似于 box1 的内容,当你点击那个 box1 时,必须有一个包含一些内容的 div 显示(html 中的 bigbox)。但这对于我拥有的代码是可行的。但现在我也想让框 2 以与框 1 相同的方式打开,但由于我在 javascript 中定位框 1,我需要复制 javascript 并将框 1 更改为框 2 以对框 2 执行相同的操作。这似乎毫无用处,因为您不断重复代码。我找不到一种方法来创建执行类似“box1 已链接 bigbox1(它们同时打开)box2 已链接到 bigbox2(就像那样)”之类的代码行
-
我希望这比我在楼上写的更清楚一点。 :)
-
当然。解决它的一种方法是找到 box 和 bigbox 之间的共同点,那就是它们在每个中的 index 数量他们的课。所以通过这种方式,你可以得到一个box的点击索引,并通过将这个点击索引提供给它来获得相关的bigbox。得到?
-
您在寻找这样的东西吗? jsfiddle.net/XwN2L
标签: javascript jquery html gsap