เป็นไปได้ไหมที่จะปิดการใช้งานแถบเลื่อนแนวตั้งและแนวนอนของเบราว์เซอร์โดยใช้ jQuery หรือ javascript
เป็นไปได้ไหมที่จะปิดการใช้งานแถบเลื่อนแนวตั้งและแนวนอนของเบราว์เซอร์โดยใช้ jQuery หรือ javascript
คำตอบ:
ในกรณีที่คุณต้องการความเป็นไปได้ในการซ่อนและแสดงแถบเลื่อนแบบไดนามิกที่คุณสามารถใช้ได้
$("body").css("overflow", "hidden");
และ
$("body").css("overflow", "auto");
ที่ไหนสักแห่งในรหัสของคุณ
oveflow: hidden
จะไม่ป้องกันสิ่งใดบนสมาร์ทโฟน
function reloadScrollBars() {
document.documentElement.style.overflow = 'auto'; // firefox, chrome
document.body.scroll = "yes"; // ie only
}
function unloadScrollBars() {
document.documentElement.style.overflow = 'hidden'; // firefox, chrome
document.body.scroll = "no"; // ie only
}
ลองใช้ CSS
<body style="overflow: hidden">
จนถึงตอนนี้เรามีล้น: ซ่อนอยู่ในร่างกาย อย่างไรก็ตาม IE ไม่ให้เกียรติสิ่งนั้นเสมอไปและคุณต้องใส่ scroll = "no" ไว้ในองค์ประกอบเนื้อหาด้วยและ / หรือวาง overflow: ซ่อนไว้ในองค์ประกอบ html ด้วย
คุณสามารถดำเนินการต่อไปได้เมื่อคุณต้องการ 'ควบคุม' พอร์ตมุมมองที่คุณสามารถทำได้: -
<style>
body {width:100%; height:100%; overflow:hidden; margin:0; }
html {width:100%; height:100%; overflow:hidden; }
</style>
องค์ประกอบที่ได้รับความสูง 100% ในร่างกายมีความสูงเต็มของวิวพอร์ตของหน้าต่างและองค์ประกอบที่อยู่ในตำแหน่งที่แน่นอนโดยใช้ด้านล่าง: nnPX จะตั้งค่าพิกเซล nn เหนือขอบด้านล่างของหน้าต่างเป็นต้น
ลองใช้ CSS
หากคุณต้องการลบแนวนอน
overflow-x: hidden;
และถ้าคุณต้องการลบแนวตั้ง
overflow-y: hidden;
ในรุ่นที่ทันสมัยของ IE (IE10 และสูงกว่า), เลื่อนสามารถที่ซ่อนอยู่โดยใช้สถานที่ให้บริการ-ms-overflow-style
html {
-ms-overflow-style: none;
}
ใน Chrome สามารถกำหนดสไตล์แถบเลื่อนได้:
::-webkit-scrollbar {
display: none;
}
สิ่งนี้มีประโยชน์มากหากคุณต้องการใช้การเลื่อนเนื้อหา "ค่าเริ่มต้น" ในเว็บแอปพลิเคชันซึ่งเร็วกว่าoverflow-y: scroll
มาก
ในกรณีที่คุณต้องการการสนับสนุนสำหรับ Internet Explorer 6 เพียงแค่ล้นhtml
$("html").css("overflow", "hidden");
และ
$("html").css("overflow", "auto");
IE มีข้อบกพร่องบางอย่างกับแถบเลื่อน ดังนั้นหากคุณต้องการอย่างใดอย่างหนึ่งคุณต้องรวมสิ่งต่อไปนี้เพื่อซ่อนแถบเลื่อนแนวนอน:
overflow-x: hidden;
overflow-y:scroll;
และซ่อนแนวตั้ง:
overflow-y: hidden;
overflow-x: scroll;
(ฉันยังไม่สามารถแสดงความคิดเห็นได้ แต่ต้องการแบ่งปันสิ่งนี้):
รหัสของ Lyncee ใช้ได้กับฉันในเบราว์เซอร์เดสก์ท็อป อย่างไรก็ตามบน iPad (Chrome, iOS 9) แอปพลิเคชันขัดข้อง เพื่อแก้ไขฉันเปลี่ยนไป
document.documentElement.style.overflow = ...
ถึง
document.body.style.overflow = ...
ซึ่งช่วยแก้ปัญหาของฉันได้
เพราะ Firefox มีลูกศรตัดสั้นที่สำคัญคุณอาจต้องการที่จะนำ<div>
ไปรอบ ๆ ด้วยสไตล์ overflow:hidden;
CSS:
การใช้ JQuery คุณสามารถปิดการใช้งานแถบเลื่อนด้วยรหัสนี้:
$('body').on({
'mousewheel': function(e) {
if (e.target.id == 'el') return;
e.preventDefault();
e.stopPropagation();
}
});
นอกจากนี้คุณสามารถเปิดใช้งานได้อีกครั้งด้วยรหัสนี้:
$('body').unbind('mousewheel');