แม้แต่วิธีที่ง่ายกว่า (ยังมี [จาวาสคริปต์หนึ่งบรรทัด]):
ใช้สิ่งนี้เป็นแท็กเนื้อหา: โปรดทราบว่าbody.
หรือใช้งานthis.
ไม่ได้สำหรับฉัน ยาวเท่านั้น querySelector
อนุญาตให้ใช้classList.remove
(Linux Chromium)
<body class="onload" onload="document.querySelector('body').classList.remove('onload')">
และเพิ่มบรรทัดนี้ที่ด้านบนของกฎ CSS อื่น ๆ ของคุณ
body.onload *{ transform: none !important; }
โปรดทราบว่าสิ่งนี้สามารถนำไปใช้กับความทึบ (ตามที่ร้องขอโดย OP [โปสเตอร์อื่น ๆ ]) เพียงแค่ใช้ความทึบแสงเป็นทริกเกอร์การเปลี่ยนแทน (อาจทำงานกับการพิจารณาของ css อื่น ๆ ในลักษณะเดียวกันและคุณสามารถใช้หลายคลาสสำหรับการอธิบายล่าช้าระหว่างการเรียกใช้)
ตรรกะเหมือนกัน บังคับใช้การแปลง (ด้วย:none !important
อิลิเมนต์ลูกทั้งหมดของbody.onload
และเมื่อเอกสารถูกโหลดลบคลาสเพื่อทริกเกอร์การเปลี่ยนแปลงทั้งหมดบนอิลิเมนต์ทั้งหมดตามที่ระบุใน css ของคุณ
คำตอบแรกข้างล่าง (ดูการแก้ไขข้างต้นสำหรับคำตอบสั้น ๆ )
นี่คือวิธีแก้ปัญหาย้อนกลับ:
- สร้างเลย์เอาต์ html ของคุณและตั้งค่า css ตามผลลัพธ์สุดท้ายของคุณ (พร้อมการแปลงทั้งหมดที่คุณต้องการ)
- ตั้งค่าคุณสมบัติการเปลี่ยนแปลงตามความชอบของคุณ
- เพิ่มคลาส (เช่น: waitload) ให้กับองค์ประกอบที่คุณต้องการแปลงโหลดหลัง คำหลัก CSS ! สำคัญคือคำสำคัญที่นี่
- เมื่อโหลดเอกสารแล้วให้ใช้ JS เพื่อลบคลาสออกจากอิลิเมนต์เป็นเพื่อเริ่มการแปลง (และลบการเปลี่ยนแปลง: ไม่มีการแทนที่)
ทำงานร่วมกับการเปลี่ยนแปลงหลายครั้งในหลายองค์ประกอบ ไม่ลองใช้การทำงานร่วมกันข้ามเบราว์เซอร์
#rotated{
transform : rotate(90deg) /* any other transformation */;
transition 3s;
}
#translated{
transform : translate(90px) /* any other transformation */;
transition 3s;
}
.waitload{
transform: none !important;
}
<div id='rotated' class='waitload'>
rotate after load
</div>
<div id='translated' class='waitload'>
trasnlate after load
</div>
<script type="text/javascript">
// or body onload ?
[...document.querySelectorAll('.waitload')]
.map(e => e.classList.remove('waitload'));
</script>