อะไรคือความแตกต่างระหว่าง offsetHeight และ scrollHeight ขององค์ประกอบใน DOM?

ใน DOM อะไรคือความแตกต่างระหว่าง offsetHeight ขององค์ประกอบและ scrollHeight ของมัน? รูปภาพประกอบคำอธิบายจะช่วยได้มาก


person user2943607    schedule 01.11.2013    source แหล่งที่มา
comment
คำตอบที่ยอดเยี่ยมอยู่ที่นี่... stackoverflow.com/questions/ 4106538/   -  person Human Being    schedule 02.04.2014
comment
ที่จริงแล้ว @HumanBeing นั้นเกี่ยวกับองค์ประกอบคู่ที่แตกต่างกัน   -  person Dave    schedule 25.01.2015


คำตอบ (2)


HTMLElement.offsetHeight คือการวัดซึ่งรวมถึงเส้นขอบขององค์ประกอบ ช่องว่างภายในแนวตั้งขององค์ประกอบ แถบเลื่อนแนวนอนขององค์ประกอบ (หากมีอยู่ หากแสดงผล) และความสูงของ CSS ขององค์ประกอบ HTMLElement.scrollHeight คือการวัดความสูงของเนื้อหาขององค์ประกอบ รวมถึงเนื้อหาที่ไม่สามารถมองเห็นได้บนหน้าจอเนื่องจากการล้น ค่าที่ส่งคืนโดย HTMLElement.scrollHeight จะรวม padding-top และ padding-bottom แต่จะไม่รวมเส้นขอบองค์ประกอบหรือแถบเลื่อนแนวนอนขององค์ประกอบ

นี้เพจและหน้านี้เป็นแหล่งที่มาของฉัน

เอกสาร MDN ยังมีรูปภาพเพื่อสาธิตอีกด้วย

person Csarsam    schedule 01.11.2013

ดังที่ @Csarsam พูด ความสูงออฟเซ็ตคือความสูงของเส้นขอบกล่อง (ฉันกำลังเขียนคำใหม่) ความสูงของการเลื่อน คือความสูงของเนื้อหาที่เลื่อนได้ ซึ่งโดยทั่วไปจะประกอบด้วยองค์ประกอบหลายรายการ แต่ความสูงของการเลื่อนยังกำหนดไว้บนองค์ประกอบที่ไม่ได้เลื่อนด้วย ดังนั้นจึงไม่มีเนื้อหาที่เลื่อนได้ ในกรณีนี้ (ฉันได้ตรวจสอบแล้ว แต่ฉันไม่มีการอ้างอิงถึงการสำรองข้อมูล) ความสูงของการเลื่อนคือความสูงของเนื้อหา นั่นคือ ไม่รวมระยะขอบและเส้นขอบ แต่เมื่อองค์ประกอบเป็นส่วนหนึ่งของเนื้อหาที่เลื่อนได้ ขอบจะถูกนำมาพิจารณาเพื่อคำนวณความสูงของการเลื่อนของพาเรนต์

ความสูงของการเลื่อนถูกกำหนดไว้ทั้งบนเนื้อหาที่เลื่อนได้และเนื้อหาที่ไม่สามารถเลื่อนได้ นั่นคือสิ่งที่อาจทำให้สับสน

อัปเดต

นี่คือข้อมูลอ้างอิงที่ยืนยันสิ่งที่ฉันได้ตรวจสอบ: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight

person Hibou57    schedule 06.09.2017