ก่อนอื่น สิ่งที่ฉันอยากจะพูดก็คือ ฉันเป็น และบทความเหล่านี้จัดทำขึ้นสำหรับผู้ที่ต้องการเรียนรู้เช่นฉัน เพื่อนหลายคนในฟอรัมได้โพสต์เอฟเฟกต์การบัฟเฟอร์ แต่มันเจ็บปวดมากสำหรับฉันที่จะอ่านโค้ดของพวกเขา เนื่องจากมันไม่ได้อยู่ในระดับเดียวกัน ผมจึงใช้โค้ดที่ซ้ำซ้อนที่สุดในการเขียนเอฟเฟกต์นี้ จุดประสงค์คือเพื่อหวังว่าคุณจะเข้าใจมัน เมื่อเราไม่เก่ง เราจะกลับไปดูเรื่องของ ท่านอาจารย์ ในที่สุด โปรดเชื่อประโยคนี้:
วันหนึ่งคุณจะกลายเป็นผู้เชี่ยวชาญ (ถ้าคุณทำงานหนัก ฮ่าๆ^^)
เรียกใช้กล่องรหัส
[Ctrl+A เคล็ดลับการเลือกทั้งหมด: คุณสามารถแก้ไขบางส่วนของโค้ดก่อน จากนั้นจึงกด Run]
โปรดดูโค้ดสำคัญทั้งสองนี้:
ฟังก์ชัน f_s(){
var obj=document.getElementById("box");//รับวัตถุที่มีกล่อง ID
obj.style.display="block";//ตั้งค่าวัตถุ obj ที่จะแสดง
obj.style.width="1px"; //กำหนดความกว้างของวัตถุ obj เป็น 1px
var changeW=function(){ //(เกี่ยวกับฟังก์ชั่น, ปิดอะไร, คลาสไหน, ต้นแบบอะไร ทำให้หัวโต คราวหน้าจะเข้าใจอย่างช้าๆ สิ่งที่ผมเข้าใจตรงนี้คือสร้างฟังก์ชั่นมาวัดและ วางไว้ในตัวแปร changeW)
var obj_w=parseInt(obj.style.width);//แปลงความกว้างของวัตถุให้เป็นค่าตัวเลขและเก็บไว้ในตัวแปร obj_w;
if(obj_w<600){ //ตัดสิน ถ้าค่าความกว้างน้อยกว่า 600
obj.style.width=(obj_w+Math.ceil((600-obj_w)/15))+"px";//คำนวณความกว้างของวัตถุ - - เมื่อความกว้างยาวขึ้น การเพิ่มขึ้นก็จะน้อยลงเรื่อยๆ
-
อื่น{
clearInterval(bw);//หากมากกว่าหรือเท่ากับ 600 setInterval จะไม่ถูกดำเนินการอีกต่อไป ซึ่งหมายความว่าความกว้างจะหยุดเพิ่มขึ้นในขณะนี้
-
-
var bw=window.setInterval(changeW,1)//เรียก changeW ทุก ๆ 0.001 วินาที
}
// ช้าไปเร็ว จากช้าไปเร็ว
//ประกาศฟังก์ชัน s_f()
ฟังก์ชั่น s_f(){
var obj=document.getElementById("box2");
var e_add=1;//การเพิ่มการเริ่มต้น
obj.style.display="บล็อก";
obj.style.width="1px";
var changeW=function(){//สิ่งที่ฉันเข้าใจคือการสร้างฟังก์ชันลิเทอรัลและเก็บไว้ในตัวแปร changeW
var obj_w;e_add
obj_w=parseInt(obj.style.width);
e_add*=1.05;//ค่าของการเพิ่มขึ้นแต่ละครั้งคือ
ถ้า(obj_w<600){
obj.style.width=(obj_w+e_add)+"px";//เมื่อความกว้างยาวขึ้น การเพิ่มขึ้นก็จะมากขึ้นเรื่อยๆ
-
อื่น{
ชัดเจนช่วง(bw);
obj.style.width="600px";//เนื่องจาก (obj_w+e_add) วิธีการคำนวณนี้จะเกินความกว้างที่กำหนดไว้ล่วงหน้า ความกว้างจึงถูกรีเซ็ตหลังจากการบัฟเฟอร์ สิ่งนี้ทำให้เกิดภาพลวงตา 555
-
-
var bw=window.setInterval(changeW,1)
-