我想在事件中顯示div。當用戶點擊添加到購物車時,屏幕頂部會出現一個小格子,表明任務已成功完成。Javascript setTimeout失火
這裏是我的代碼
function display(){
var target = document.getElementById('atc');
var start = -35;
target.style.top = $j(document).scrollTop() + 'px';
var topVal = parseInt(target.style.top);
var top = 0;
var id = setInterval(show,0.5);
function show(){
if(top == 20)
{
clearInterval(id);
setTimeout(function(){
jQuery('#atc').fadeOut().delay(2000);
jQuery('#atc').css("top",start).show()
},1000);
}
else
{
top = top + 2;
target.style.top = (topVal + top) + 'px';
}
}
}
.signifier
{
position:absolute;
top:-35px;
left:50%;
transform: translateX(-50%);
z-index: 1000;
background-color:#3e3e3e;
padding:0.5em;
color:white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="add-to-cart" onclick = "display()">Add to cart</button>
<div class="signifier>
<p>successfully completed</p>
</div>
但如果按下按鈕,一旦它工作正常,但如果按鈕被反覆按下然後分工停止顯示出來或者用一些顯示出來discrepency
你不使用jQuery進行動畫的原因嗎? –
你已經在使用jQuery。改用jQuery方法。 –
試試jQuery。爲什麼試圖獲得專業?當你可以用lib來完成任務時! – Deadpool