កម្ពស់៖ ០ ដល់កម្ពស់៖ ធ្វើចលនាដោយស្វ័យប្រវត្តិជាមួយ CSS

ការផ្លាស់ប្តូរ CSS គឺជាវិធីដ៏ល្អមួយដើម្បីបង្កើតអន្តរកម្ម។ វាគ្រប់គ្រាន់ហើយ។, transition ទៅស្ថានភាពដំបូងនៃធាតុមួយ ហើយកម្មវិធីរុករកមានចលនាការផ្លាស់ប្តូររវាងរដ្ឋទាំងពីរ។ ការផ្លាស់ប្តូរសម្រាប់ទំហំធាតុខាងក្នុងដូចជា auto ទោះយ៉ាងណាក៏ដោយ វាជាបញ្ហាសម្រាប់អ្នកអភិវឌ្ឍន៍គេហទំព័រអស់ជាច្រើនទសវត្សរ៍មកហើយ ហើយជម្រើសតែមួយគត់គឺការគណនាកម្ពស់ដោយថាមវន្តដោយប្រើ JavaScript ។


បញ្ហា​ប្រឈម​មួយ​ទៀត​គឺ​ការ​ចាប់​ផ្តើម​ដំណើរ​ផ្លាស់ប្តូរ​នៅ​ពេល​ដែល​ធាតុ​មួយ​ទទួល​បាន​រចនាប័ទ្ម​ដំបូង​របស់​វា ដូចជា​ពេល​ដែល​វា​ត្រូវ​បាន​បន្ថែម​ទៅ DOM ឬ​ពេល​ដែល display- តម្លៃនៃ none ការផ្លាស់ប្តូរ។ អត្ថបទនេះពន្យល់ពីរបៀបដោះស្រាយបញ្ហានេះជាមួយនឹងមុខងារ CSS ថ្មីដូចជា calc-size(), interpolate-size, @starting-style និង transition-behavior អាចត្រូវបានគ្រប់គ្រង។

ដំណោះស្រាយជាមួយ calc-size()

ប្រសិនបើនរណាម្នាក់មានធាតុ DOM ដែលមកពីស្ថានភាពបិទ (height: 0) ទៅរដ្ឋបើកចំហ (height: auto) លើសពីនេះ គំនូរជីវចលជាធម្មតាមិនត្រូវបានប្រតិបត្តិទេ បើទោះបីជា transitionទ្រព្យសម្បត្តិត្រូវបានកំណត់។ នេះគឺដោយសារតែកម្មវិធីរុករកមិនគាំទ្រការផ្លាស់ប្តូរទៅទំហំខាងក្នុងដូច auto គាំទ្រ។ ថ្មី។ calc-size()ទោះយ៉ាងណាក៏ដោយ មុខងារអាចឱ្យការគណនាលើបរិមាណខាងក្នុងទាំងនេះ ហើយដូច្នេះក៏មានការផ្លាស់ប្តូរផងដែរ។:

f95f6dcb193aa903adc84ce47bc4a296

នេះ។ calc-size()-Function មិនទាន់មាននៅក្នុង browser ទាំងអស់ទេ។ ការថយក្រោយអាចសម្រេចបានដោយរក្សាភាពដើម height: auto- សេចក្តីប្រកាសអាចសម្រេចបាន។

ដំណោះស្រាយជាមួយ interpolate-size

នេះ។ interpolate-sizeលក្ខណសម្បត្តិអនុញ្ញាតឱ្យអ្នកកំណត់ឥរិយាបថ interpolation នៃកម្មវិធីរុករក និងសម្រេចចិត្តថាតើត្រូវបែងចែករវាងពាក្យគន្លឹះដូចជា auto គួរតែ interpolate ។ តាមលំនាំដើម អន្តរប៉ូលកើតឡើងតែរវាងតម្លៃលេខប៉ុណ្ណោះ។ ជាមួយ allow-keywords ទោះយ៉ាងណាក៏ដោយ អ្នកអាចបើកដំណើរការផ្លាស់ប្តូររវាងពាក្យគន្លឹះ:

f95f6dcb193aa903adc84ce47bc4a296

ដោយអ្នក។ interpolate-size: allow-keywords នៅលើ :rootធាតុ អ្នកធ្វើឱ្យឥរិយាបថថ្មីសម្រាប់ទំព័រទាំងមូល។

ការផ្លាស់ប្តូរពី display:none

បញ្ហាមួយទៀតកើតឡើងនៅពេលដែលធាតុនៃ display:none ការផ្លាស់ប្តូរទៅជារដ្ឋដែលអាចមើលឃើញ។ នៅទីនោះ display មិន​មែន​ជា​កម្មសិទ្ធិ​ដែល​អាច​ធ្វើ​ចលនា​បាន​ទេ គ្មាន​ចលនា​កើតឡើង​ទេ។ មុខងារ CSS ថ្មីជួយនៅទីនេះ @starting-style និង transition-behavior:

f95f6dcb193aa903adc84ce47bc4a296

ជាមួយ transition-behavior: allow-discrete ធានាថាចលនាដំណើរការមុនពេល display- តម្លៃនៃ block នៅលើ none ត្រូវបានប្តូរ។ ច្បាប់ទាំងនេះអនុញ្ញាតឱ្យដំណើរផ្លាស់ប្តូរត្រូវបានប្រតិបត្តិសូម្បីតែក្នុងអំឡុងពេលធ្វើបច្ចុប្បន្នភាពរចនាប័ទ្មដំបូងក៏ដោយ។ នេះ។ @starting-styleច្បាប់ធានាថាចលនាដំណើរការបានត្រឹមត្រូវនៅពេលធ្វើបច្ចុប្បន្នភាពរចនាប័ទ្មដំបូង។

ការគាំទ្រកម្មវិធីរុករក

បច្ចុប្បន្នអចលនទ្រព្យថ្មី។ calc-size() និង interpolate-size មិន​ទាន់​បាន​គាំទ្រ​ដោយ​កម្មវិធីរុករក​តាម​អ៊ីនធឺណិត​ទាំងអស់​នៅឡើយ​ទេ។ នៅក្នុង Chrome ពួកវាមាននៅខាងក្រោយទង់ពិសោធន៍ ប៉ុន្តែមិនទាន់មាននៅក្នុង Safari និង Firefox ទេ។ ដូចគ្នានេះដែរការគាំទ្រសម្រាប់ transition-behavior បង្ហាញនៅក្នុង Chrome និង Edge ប៉ុន្តែមិនមែននៅក្នុង Safari និង Firefox ទេ។ សង្ឃឹមថាវានឹងផ្លាស់ប្តូរនៅពេលអនាគត។

ថយក្រោយ