ฉันใช้.show
เพื่อแสดงข้อความที่ซ่อนอยู่หลังจากส่งแบบฟอร์มที่ประสบความสำเร็จ
จะแสดงข้อความเป็นเวลา 5 วินาทีแล้วซ่อนได้อย่างไร
ฉันใช้.show
เพื่อแสดงข้อความที่ซ่อนอยู่หลังจากส่งแบบฟอร์มที่ประสบความสำเร็จ
จะแสดงข้อความเป็นเวลา 5 วินาทีแล้วซ่อนได้อย่างไร
คำตอบ:
คุณสามารถใช้.delay()
ก่อนภาพเคลื่อนไหวเช่นนี้:
$("#myElem").show().delay(5000).fadeOut();
หากไม่ใช่ภาพเคลื่อนไหวให้ใช้setTimeout()
โดยตรงเช่นนี้:
$("#myElem").show();
setTimeout(function() { $("#myElem").hide(); }, 5000);
คุณทำสิ่งที่สองเพราะ.hide()
ปกติจะไม่อยู่ในfx
คิวภาพเคลื่อนไหว ( ) โดยไม่มีระยะเวลามันเป็นเพียงเอฟเฟกต์ทันที
หรือตัวเลือกอื่นคือการใช้.delay()
และ.queue()
ตัวคุณเองเช่นนี้:
$("#myElem").show().delay(5000).queue(function(n) {
$(this).hide(); n();
});
.delay()
จะไม่ทำงานกับ.hide()
องค์ประกอบที่จะถูกแสดงแล้วซ่อนทันที ดูjsFiddle นี้นี่คือเหตุผลที่นิคกล่าวว่า "ถ้ามันไม่ได้เป็นภาพเคลื่อนไหวที่ใช้ setTimeout () โดยตรงเช่นนี้ ...."
คุณสามารถใช้เอฟเฟกต์ด้านล่างเพื่อเคลื่อนไหวคุณสามารถเปลี่ยนค่าได้ตามความต้องการของคุณ
$("#myElem").fadeIn('slow').animate({opacity: 1.0}, 1500).effect("pulsate", { times: 2 }, 800).fadeOut('slow');
เรียบง่ายอย่างนี้:
$("#myElem").show("slow").delay(5000).hide("slow");