มีวิธีรับความกว้างอุปกรณ์ของผู้ใช้ซึ่งต่างจากความกว้างของวิวพอร์ตโดยใช้จาวาสคริปต์หรือไม่
แบบสอบถามสื่อ CSS เสนอสิ่งนี้อย่างที่ฉันพูดได้
@media screen and (max-width:640px) {
/* ... */
}
และ
@media screen and (max-device-width:960px) {
/* ... */
}
สิ่งนี้มีประโยชน์หากฉันกำหนดเป้าหมายสมาร์ทโฟนในแนวนอน ตัวอย่างเช่นบน iOS การประกาศว่า max-width:640px
จะกำหนดเป้าหมายทั้งโหมดแนวนอนและแนวตั้งแม้ใน iPhone 4 นี่ไม่ใช่กรณีสำหรับ Android เท่าที่ฉันสามารถบอกได้ดังนั้นการใช้ความกว้างของอุปกรณ์ในอินสแตนซ์นี้จะกำหนดเป้าหมายทั้งสองทิศทางได้สำเร็จ โดยไม่กำหนดเป้าหมายอุปกรณ์เดสก์ท็อป
อย่างไรก็ตามหากฉันเรียกใช้การรวมจาวาสคริปต์ตามความกว้างของอุปกรณ์ดูเหมือนว่าฉันจะถูก จำกัด ให้ทดสอบความกว้างของวิวพอร์ตซึ่งหมายถึงการทดสอบเพิ่มเติมดังต่อไปนี้
if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ }
สิ่งนี้ดูไม่สวยสำหรับฉันเนื่องจากคำใบ้ว่าความกว้างของอุปกรณ์พร้อมใช้งานสำหรับ css
Modernizr
สามารถช่วยคุณทำ "วิธีที่สะอาด & ทั่วไป" ได้: stackoverflow.com/questions/25935686/… . เกี่ยวกับความคิดเห็นที่ 1: คุณอาจต้องการ Google "Modernizr vs <otherLib> media query" เพื่อค้นหาสิ่งที่ดีที่สุดสำหรับกรณีการใช้งานของคุณ