2015-11-03 54 views
0


我無法修復我的代碼中的一個錯誤。我創建點擊幻燈片向上/向下div,但是當我點擊它4倍非常快我的CSS頂值是高度和功能停止工作。你能給我建議一些解決方案或其他方式來處理這個問題嗎?jQuery Animate內聯風格問題

這裏是代碼:

$(function() { 
 
    $(".nav li a").click(function(event) { 
 
    var page = $(this).attr("href") 
 
    var topVal = $("#about").css("top") 
 

 
    if (topVal != "-500px") { 
 
     $(page).animate({ 
 
     top: "-=500" 
 
     }, 500).css("top", "-500px") 
 
    } else { 
 
     $(page).animate({ 
 
     top: "+=500" 
 
     }, 500) 
 
     event.preventDefault() 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="nav navbar-nav pull-right"> 
 
    <li><a href="#about">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
</ul> 
 
<!-- About Page--> 
 
<section id="about" class="container-fluid col-md-9" style="top: -500px;">About 
 
</section>

+1

添加HTML代碼。 –

+1

或更好添加一個工作的例子,我們可以看到它發生 – Banana

+0

好的問題很簡單,當我點擊我的導航鏈接之前div完全隱藏和頂部達到-500px腳本考慮如果真實,並添加下一個-500px頂部所以!=「 - 500px」是真的,我不能將它從行'ifo(topVal!=「-500px」)下滑 – Ganga

回答

0

這是你想要的嗎?

$(function() { 
 
    $(".nav li a").click(function(event) { 
 
    var page = $(this).attr("href") 
 
    var topVal = $("#about").css("top") 
 

 
    if (topVal != "-500px") { 
 
     $(page).animate({ 
 
     top: "-=500" 
 
     }, 500).css("top", "-500px") 
 
    } else { 
 
     $(page).animate({ 
 
     top: "+=500" 
 
     }, 500) 
 
     event.preventDefault() 
 
    } 
 
    }); 
 
});
section { position: relative; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="nav navbar-nav pull-right"> 
 
    <li><a href="#about">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
</ul> 
 
<!-- About Page--> 
 
<section id="about" class="container-fluid col-md-9" style="top: -500px;">About 
 
</section>

我覺得這是更好的:

$(function() { 
 
    $(".nav li a").click(function(event) { 
 
    var href=$(this).attr('href'); 
 
    $(href).toggleClass('offscreen'); 
 
    event.preventDefault() 
 
    }); 
 
});
section { position: relative; transition: 0.5s all; top:0 } 
 
.offscreen { top: -500px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="nav navbar-nav pull-right"> 
 
    <li><a href="#about">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
    <li><a href="#">Start</a> 
 
    </li> 
 
</ul> 
 
<!-- About Page--> 
 
<section id="about" class="container-fluid col-md-9 offscreen">About 
 
</section>

+0

解決方案之一,呈現在我的網頁上的這個錯誤exaclly。我已經解決了,但我非常喜歡你的答案。所以我將這個答案標記爲已接受。 – Ganga

+0

啊,我看到了錯誤。這是因爲如果您快速點擊某個項目,則可以在當前正在播放動畫的同時單擊該項目,而您的代碼未考慮該動畫。使用絕對值過渡到將修復它,或取消任何當前正在運行的動畫也將以不同的方式修復它。當然,我的第二個解決方案不會出現此錯誤,因爲它不是屏幕外或不正確,動畫由瀏覽器正確處理。 –