Jquery có nhiều hàm tạo hiệu ứng rất hay. Các hiệu ứng làm cho trang web sống động hơn, như: show, hide, slideToggle, toggle, slideUp, slideDown, animation…
Method | Description |
animate() | Runs a custom animation on the selected elements |
clearQueue() | Removes all remaining queued functions from the selected elements |
delay() | Sets a delay for all queued functions on the selected elements |
dequeue() | Removes the next function from the queue, and then executes the function |
fadeIn() | Fades in the selected elements |
fadeOut() | Fades out the selected elements |
fadeTo() | Fades in/out the selected elements to a given opacity |
fadeToggle() | Toggles between the fadeIn() and fadeOut() methods |
finish() | Stops, removes and completes all queued animations for the selected elements |
hide() | Hides the selected elements |
queue() | Shows the queued functions on the selected elements |
show() | Shows the selected elements |
slideDown() | Slides-down (shows) the selected elements |
slideToggle() | Toggles between the slideUp() and slideDown() methods |
slideUp() | Slides-up (hides) the selected elements |
stop() | Stops the currently running animation for the selected elements |
toggle() | Toggles between the hide() and show() methods |
Hàm hide trong jquery
Hàm hide trong jquery giúp bạn tạo ra hiệu ứng ẩn các tag. Cú pháp:
$(selector).hide(speed,callback);
speed : tốc độ diễn ra hiệu ứng, có thể có các giá trị slow, fast, hoặc 1 giá trị số (tính bằng milli giây)
callback : là hàm xử lý khi hiệu ứng chạy xong, có thể bỏ qua tham số này nếu không cần dùng
<script>
$(document).ready(function(){
$("#lamgon").click(function(){ $("p[ct]").hide(3000); })
})
</script>
Nếu có dùng callback:
<script>
$(document).ready(function(){
$("#lamgon").click(function(){ $("p[ct]").hide(3000, xong); })
})
function xong() { $("h3.vt").css("color","red"); }
</script>
Hàm show trong jquery
Hàm show trong jquery giúp bạn tạo ra hiệu ứng hiện các tag đang bị ẩn. Các tham số giống hàm hide. Cú pháp:
$(selector).show(speed,callback);
Ví dụ:
<script>
$(document).ready(function(){
$("#daydu").click(function(){ $("p[ct]").show(3000); })
})
</script>
Hàm toggle trong jquery
Hàm toggle đảo trạng thái ẩn hiện của tag được chọn. Các tham số giống hàm hide. Cú pháp:
$(selector).toggle(speed,callback);
Ví dụ:
<script>
$(document).ready(function(){
$("#tp").click(function(){ $("p[ct]").toggle(3000); })
})
</script>
Hàm slideUp trong jquery
Hàm slideUp cuộn lên tag được chọn và biến mất, chiều cuộn là thẳng đứng. Các tham số giống hàm hide. Cú pháp:
$(selector).slideUp(speed,callback);
Ví dụ:
<script>
$(document).ready(function(){
$("#lamgon").click(function(){ $("img:first").slideUp(3000); })
})
</script>
Hàm slideDown trong jquery
Hàm slideDown cuộn xuống tag được chọn và hiện ra, chiều cuộn là thẳng đứng. Các tham số giống hàm hide. Cú pháp:
$(selector).slideDown(speed,callback);
Ví dụ:
<script> $(document).ready(function(){ $("#daydu").click(function() { $("img:first").slideDown(3000); }) }) </script>
Hàm slideToggle trong jquery
Hàm slideToggle đảo trạng trái cuộn ẩn hiện của tag được chọn. Các tham số giống hàm hide. Cú pháp:
$(selector).slideToggle(speed,callback);
Ví dụ:
<script> $(document).ready(function(){ $("#hinhdep").click(function(){ $("img:first").slideToggle(3000); }) }) </script>
Hàm fadeOut trong jquery
Hàm faceOut làm mờ dần đối tượng được chọn và ẩn đi. Các tham số giống hàm hide. Cú pháp:
$(selector).fadeOut(speed,callback);
Ví dụ:
<script> $(document).ready(function(){ $("#hinhdep").click(function({ $("img:first").fadeOut(3000); }) }) </script>
Hàm fadeIn trong jquery
Hàm faceIn làm rõ dần đối tượng được chọn và hiện ra. Các tham số giống hàm hide. Cú pháp:
$(selector).fadeIn(speed,callback);
Ví dụ:
<script>
$(document).ready(function(){
$("#hinhdep").click(function(){
$("img:first").hide(); $("img:first").fadeIn(3000);
})
})
</script>
Hàm fadeToggle trong jquery
Hàm fadeToggle chuyển đổi giữa faceIn và fadeOut. Các tham số giống hàm hide. Cú pháp:
$(selector).fadeToggle(speed,callback);
Ví dụ:
<script>
$(document).ready(function(){
$("#hinhdep").click(function({$("img:first").fadeToggle(3000); })
})
</script>
Hàm fadeTo trong jquery
Hàm fadeTo()giúp bạn làm trong suốt đến 1 mức nào đó (giá trị giữa 0 và 1). Cú pháp:
$(selector).fadeTo(speed,opacity,callback);
Ví dụ:
https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_fadeto
Hàm animate trong jquery
Hàm animate trong jquery chỉnh giá trị của các thuộc tính css trong 1 khoảng thời gian
$(selector).animate({params},speed,callback);
param: là tham số css mưuốn chỉnh.
Ví dụ:
<script>
$(document).ready(function(){
$("#hinhdep").click(function(){
$("img:eq(1)").animate({left: '250px'},1500);
});
});
</script>
Ví dụ:
<script>
$(document).ready(function(){
$("#hinhdep").click(function(){
$("img:eq(1)").animate({left: '250px'},1500).animate({top: '-100px'},1500);
});
});
</script>
Ví dụ:
<script>
$(document).ready(function(){
$("#hinhdep").click(function(){
$("img:eq(1)").animate(
{left: '100px', top:'-150px', opacity:0.6, width:'280px', height:'200px' },
1500);
});
});
</script>
Tham khảo: https://www.w3schools.com/jquery/jquery_animate.asp
Hàm Delay trong jquery
Hàm delay giúp làm trễ 1 khoảng thời gian (slow, fast, hoặc số mili giây) trước khi thực hiện hiệu ứng tiếp theo
$(selector).delay(speed)
https://www.w3schools.com/jquery/eff_delay.asp
Callback Function
- Trong jquery, hàm callback là các hàm thực thi sau khi 1 hiệu ứng hay 1 hàm chính đã thực thi xong 100%. Do đó bạn dùng hàm callback khi muốn làm thêm 1 việc gì đó khi hiệu ứng/hàm trước kết thúc.
- Các lệnh JavaScript thực thi tuần tự từ trên xuống, với các hiệu ứng chạy theo thời gian chỉ định, có thể code ở hàng dưới đã chạy trong khi lệnh phía trên chạy chưa xong, có thể gây ra lỗi. Trường hợp như thế, bạn dùng hàm callback.
- Trong jquery, đa phần các hàm là có tham số callback, đó là điểm mạnh mà jquery hỗ trợ bạn để thực thi các hiệu ứng/hàm 1 cách có thứ lớp.
- Ví dụ :
$(selector).hide(speed, callback);
Ví dụ:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"> </script>
<link rel="stylesheet" href= "https://stackpath.bootstrapcdn.com/bootstrap/4.4.0/css/bootstrap.min.css">
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("#k1").hide().show(2000,
function(){ $("#k1").css("font-size","150%");}
);
//aa
});
});
</script>
<div class="col-6 mx-auto mt-4 text-center"> <h4>LỤC VÂN TIÊN</h4>
<button id="btn1" class="h5">></button>
<p class="khotho bg-info p-2" id="k1">
Trước đèn xem truyện Tây-minh<br>Gẫm cười hai chữ nhân tình éo le,<br>
Hỡi ai lẳng lặng mà nghe,<br>Dữ răn việc trước, lành dè thân sau .
</p></div>
Trong ví dụ trên, hàm callback chỉ chạy sau khi hiệu ứng show thực hiện xong. Bạn sẽ thấy khác biệt khi di chuyển lệnh trong hàm callback xuống sau dòng chữ //aa. Hai cách viết là khác nhau, xem phân tích sau:
Dùng callback: cỡ chữ lớn lên sau khi hàm show chạy xong
$("#btn1").click(function(){
$("#k1").hide().show(2000,
function(){ $("#k1").css("font-size","150%");}
);
//aa
});
Và không dùng callback: cỡ chữ lớn lên ngay, trước khi hiệu ứng show kết thúc
$("#btn1").click(function(){
$("#k1").hide().show(2000);
//aa
$("#k1").css("font-size","150%");
});
Code html thực tập hiệu ứng jquery
<meta charset="utf-8"> <style> img {position: relative;}</style> <div id="menu"><a href=#>Trang chủ</a> | <a href=#>Tin tức</a> | <a href=#>Liên hệ</a> <a href="#" id="làmgon">Làm gọn</a> | <a href="#" id="daydu">Đầy đủ</a> </div> <hr> <div id="main"> <h2 id="tp" ><a href='#'>THƠ HAY</a></h2> <div class="tho"> <h3 class="vt">CHA ĐÓ</h3> <p ct="1">Đường xa heo hút dặm ngàn<br>Đời cha vất vả gian nan thác ghềnh.</p> <p ct="23">Sông dài biển rộng trời cao. <br>Công Cha tôi cũng không sao sánh bằng. </p> </div> <div class="tho"> <h3 class="vt">MẸ ĐÂY</h3> <p ct="3"> Mẹ tôi hai tiếng thân thươnng<br/>Ôi hai tiếng ấy quý dường ngọc châu</p> <p ct="34"> Mẹ ơi con chịu bao điều<br/> Nhưng không chịu nổi thân diều đứt dây</p> </div> <hr> <div id="dv"> <h5 id="hinhdep" style="margin:0">HÌNH ĐẸP</h5> <img src="ga1.jpg" width="200" height="150" border="1" title="Gà mẹ ấp con"> <img src="ga2.jpg"width="200" height="150" border="1" title="Gà mẹ và các con"> </div> <img src="me.jpg" title="Thuyền Mẹ" width="410"> </div>