sticky.js jQuery plugin กำหนดตำแหน่ง menu,sidebar ไม่ให้เลื่อนตาม scroll
🕑 21 เม.ย. 2562
ถ้าใครกำลังหาวิธีทำให้ html tag เช่น menu,sidebar ไม่ให้เลื่อนตาม scroll bar อยู่ล่ะก็ลองใช้ sticky.js jQuery plugin ดูแล้วคุณจะไม่ผิดหวัง
sticky.js ใช้สัญญาอนุญาติแบบ MIT License สามารถนำไปใช้เชิงพาณิชย์ได้ครับ
ตัวอย่างการใช้งาน sticky.js
1.ระบุ path jquery
<script src="http://code.jquery.com/jquery-2.2.4.min.js"></script>
2.ระบุ path sticky.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sticky/1.0.4/jquery.sticky.min.js"></script>
3.เรียกใช้งาน plugin sticky.js
$("#sticker").sticky({topSpacing:0});
ตัวอย่าง code การใช้งาน sticky.js ลองเอาไปรันทดสอบกันดู
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sticky/1.0.4/jquery.sticky.min.js"></script>
<script>
$(document).ready(function(){
$("#sticker").sticky({topSpacing:0,bottomSpacing:20});
$('#sticker').on('sticky-start', function() { console.log("Started"); });
$('#sticker').on('sticky-end', function() { console.log("Ended"); });
$('#sticker').on('sticky-bottom-reached', function() { console.log("Bottom reached"); });
$('#sticker').on('sticky-bottom-unreached', function() { console.log("Bottom unreached"); });
});
</script>
</head>
<body>
<div style="background-color:#0f0;height:100px;" id="sticker">
header
</div>
<div style="background-color:#000;min-height:1280px">
body
</div>
<div style="background-color:#ff0000;height:100px;">
footer
</div>
</body>
</html>
การยกเลิก
<script>
$("#sticker").unstick();
</script>
Options ของ sticky.js
topSpacing
: (default:0
) กำหนดตำแหน่งให้ html element ของเราว่าจะให้อยู่ห่างจากด้านบนของเพจกี่พิกเซลbottomSpacing
: (default:0
) กำหนดตำแหน่งให้ html element ของเราว่าจะให้อยู่ห่างจากด้านล่างของเพจกี่พิกเซลclassName
: (default:'is-sticky'
) CSS class added to the element's wrapper when "sticked".wrapperClassName
: (default:'sticky-wrapper'
) CSS class added to the wrapper.center
: (default:false
) Boolean กำหนดให้ html element อยู่ตรงกลางgetWidthFrom
: (default:''
) กำหนดให้ html element มีความกว้างเท่ากับ html element ตัวอื่นwidthFromWrapper
: (default:true
) อันนี้ไม่แน่ลองไปเล่นกันดูน่ะครับ อิๆresponsiveWidth
: (default:false
) ใช้กำหนด html element ว่าจะให้ย่อขยายตามหน้าจอหรือเปล่าzIndex
: (default:inherit
) ใช้กำหนดตำแหน่ง html element ที่ซ้อนกันว่าจะให้อันไหนอยู่บนอยู่ล่าง คล้ายๆ กับการกำหนด layer ใน photoshop
Methods ของ sticky.js
sticky(options)
: กำหนดค่า Options เพื่อให้ sticky.js เริ่มต้นทำงานsticky('update')
: ใช้อัพเดตตำแหน่ง html element ใหม่
Events ของ sticky.js
sticky-start
: เป็น event เมื่อ html element ที่กำหนดให้ sticky เริ่มอยู่กับที่ไม่เลื่อนตาม scroll bar ( sticky.js เริ่มทำงาน)sticky-end
: เป็น event เมื่อ html element ที่กำหนดให้ sticky ของเรากลับไปอยู่ตำแหน่งเดิมsticky-update
: event นี้จะเกิดขึ้นเมื่อเรากำหนดตำแหน่งใหม่ให้ html element ที่กำหนดให้ stickysticky-bottom-reached
: เมื่อ html element ที่กำหนดให้ sticky อยู่ห่างเกินจากค่า bottomSpacing ที่เราตั้งไว้sticky-bottom-unreached
: เมื่อ html element ที่กำหนดให้ sticky อยู่ห่างไม่เกินจากค่า bottomSpacing ที่เราตั้งไว้
ตัวอย่างการดักจับ event ของ sticky.js
<script> $('#sticker').on('sticky-start', function() { console.log("Started"); }); $('#sticker').on('sticky-end', function() { console.log("Ended"); }); $('#sticker').on('sticky-update', function() { console.log("Update"); }); $('#sticker').on('sticky-bottom-reached', function() { console.log("Bottom reached"); }); $('#sticker').on('sticky-bottom-unreached', function() { console.log("Bottom unreached"); }); </script>
สุดท้ายนี้ก็ขอให้ทุกคนสนุกกับการเขียนโปรแกรมน่ะครับบ๊ายบาย 💋