Mari kita lihat kod gerakan seragam sebelumnya dan lihat jenis pepijat yang akan berlaku selepas mengubah suai kelajuan. Dua penanda aras ditambah di sini untuk ujian
Malah, jika kelajuan kod sedemikian ditukar kepada nombor ganjil seperti 7, tetapi titik sasaran ketibaan adalah integer, maka akan ada pepijat yang gagal mencapai titik sasaran atau kegelisahan ke sana ke mari. titik sasaran
Lalu mengapa ini berlaku?
Malah, apabila dia mencapai titik sasaran, dia tidak dapat mencapai titik sasaran dengan tepat Jika titik sasaran ialah 100, dan dia berjalan 7 kali setiap kali, dia akan melepasi titik sasaran pada masa ini, atau dia akan. tidak lulus.
Jangan sekali-kali mencapai titik sasaran. Malah, ia agak serupa dengan penimbal sebelumnya.
Jadi bagaimana anda mengira bahawa anda telah mencapai titik sasaran?
Contohnya: Apabila anda menaiki teksi ke tempat tertentu, pemandu mesti berhenti kira-kira 10 atau 20 meter dari tempat anda berada, dan anda telah tiba. Tidak mustahil untuk meminta kereta berhenti di tempat itu.
Jadi, sebenarnya, prosedurnya adalah sama asalkan jarak antara objek dan titik sasaran dekat dengan tahap tertentu, tidak perlu mendekat, dan kami fikir ia sudah selesai.
Mari kita lihat kod yang diubah suai:
var masa = null;
kelajuan var = 0;
Jika (oDiv.offsetLeft < iTarget) {
Kelajuan = 7;
} lain {
Kelajuan = -7;
}
Jika (Math.abs(iTarget - oDiv.offsetLeft) <= 7) {
oDiv.style.left=iTarget 'px';
} lain {
oDiv.style.left = oDiv.offsetKelajuan kiri 'px';
}
}, 30)
}
Terangkan: Mengapa kita menggunakan Math.abs untuk mendapatkan nilai mutlak di sini?
Alasannya mudah, kerana kelajuannya mungkin positif atau negatif.
Sekarang kita biarkan jarak antara sasaran dan objek kurang daripada 7, itu sahaja. Kenapa 7? Kerana senaman seterusnya akan kurang daripada 7. Pada masa ini kita akan menganggap bahawa dia telah mencapai titik sasaran.
Kemudian masalah datang lagi menulis begini, dia tidak berhenti tepat pada titik sasaran. Jadi kami menambah ayat mudah dan terus dibuat kiri sama dengan titik sasaran. oDiv.style.left=iTarget 'px';
Malah lepas tak sampai 7 orang lagi tapi semua tahu program berjalan terlalu laju dan tidak dapat dilihat oleh mata manusia. Senyuman hangat
Tiada masalah pada masa ini. kejap
Ini adalah keadaan berhenti untuk gerakan seragam. Kemudian beberapa rakan bertanya, mengapa senaman penimbal tidak begitu menyusahkan?
Sebab kelajuannya berubah, semakin mengecil, hingga akhirnya mencecah 1. Kalau maju setapak demi setapak, pasti tiada masalah sebegitu.