我有一个非常长的页面。我想将其分成4个迷你页面(div),然后使用文本导航从一个页面div滑动到下一个。还有一个关闭按钮,隐藏所有div并显示下面的原始页面。当下一个滑动div被触发时重置水平滑动div位置
我遇到的问题是,当用户点击链接到下一个div时,以前的div不会重置自己,就好像它从未被点击过。第一次点击“说第2页”时,div从左侧滑入,没问题。但是如果稍后再次点击它,该div就会出现在没有滑动动画的位置。
我以为使用removeAttr(“style”);会做我想要的,但在这种情况下似乎不起作用。
这里是我的jQuery:
$(".page-link").bind("click", function() {
$(".ntc-pages").fadeOut(1000);
// THIS DOESN'T WORK
// $(this).removeAttr('style');
var divId= $(this).attr("divId");
$("#" + divId).animate({
opacity: 1,
left: "0",
height: "toggle"},
500, function() {
});
});
和我的HTML:
<a class="page-link" href="javascript:void(0);" divId="pg1">
<h4>PAGE 1</h4>
</a>
<a class="page-link" href="javascript:void(0);" divId="pg2">
<h4>PAGE 2</h4>
</a>
<a class="page-link" href="javascript:void(0);" divId="pg3">
<h4>PAGE 3</h4>
</a>
<a class="page-link" href="javascript:void(0);" divId="pg4">
<h4>PAGE 4</h4>
</a>
<div class="ntc-pages" id="pg1">PAGE 1<a class="page-link" href="javascript:void(0);" divId="pg2"> PAGE 2</a>
<a class="back-ntc" href="javascript:void(0);">Back</a>
</div>
<div class="ntc-pages" id="pg2">PAGE 2<a class="page-link" href="javascript:void(0);" divId="pg3"> PAGE 3</a>
<a class="back-ntc" href="javascript:void(0);">Back</a>
</div>
<div class="ntc-pages" id="pg3">PAGE 3<a class="page-link" href="javascript:void(0);" divId="pg4"> PAGE 4</a>
<a class="back-ntc" href="javascript:void(0);">Back</a>
</div>
<div class="ntc-pages" id="pg4">PAGE 4<a class="page-link" href="javascript:void(0);" divId="pg1"> PAGE 1</a>
<a class="back-ntc" href="javascript:void(0);">Back</a>
</div>
以及它是如何工作现在JS Fiddle。
我怀疑这一点。任何建议如何返回前面的div到-1200而不会导致当前显示的div也转到-1200? – danzo
如果您有任何问题,请参阅我的编辑并让我知道。我提出了一些关于您的代码的建议,以便稍后改进它。它应该让事情变得容易一点。 –
谢谢瑞恩。这工作正常,但现在的问题是,先前的div立即隐藏,这显示了它下面的页面的闪光。 fadeOut()解决了之前的问题,但现在我怀疑div在淡出之前会返回-1200。无论如何推迟呢? – danzo