我有一個非常長的頁面。我想將其分成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