സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പിന്റെ ശക്തി ഉപയോഗിച്ച് ആപ്പ് പോലുള്ള സ്ക്രോളിംഗ് അനുഭവങ്ങൾ സൃഷ്ടിക്കാം. ഈ സമഗ്രമായ ഗൈഡ് scroll-snap-align, scroll-snap-type, ആധുനിക വെബ് ഡിസൈനിനായുള്ള നൂതന സാങ്കേതിക വിദ്യകൾ എന്നിവയെക്കുറിച്ച് പ്രതിപാദിക്കുന്നു.
സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ്: മികച്ച ഉപയോക്തൃ അനുഭവത്തിനായി സ്ക്രോളിംഗിൽ കൃത്യമായ നിയന്ത്രണം നേടാം
വെബ് ഡിസൈനിന്റെ ചലനാത്മക ലോകത്ത്, ഉപയോക്തൃ അനുഭവം (UX) പരമപ്രധാനമാണ്. പ്രവർത്തനക്ഷമമായത് മാത്രമല്ല, ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതും സുഗമവും ആനന്ദകരവുമായ ഇന്റർഫേസുകൾ നിർമ്മിക്കാൻ ഞങ്ങൾ ശ്രമിക്കുന്നു. ഏറ്റവും അടിസ്ഥാനപരമായ ഉപയോക്തൃ ഇടപെടലുകളിൽ ഒന്നാണ് സ്ക്രോളിംഗ്. വർഷങ്ങളായി, ഡെവലപ്പർമാർ ഈ സ്വഭാവം നിയന്ത്രിക്കാൻ പാടുപെടുകയായിരുന്നു, ഇമേജ് കറൗസലുകൾ, ഫുൾ-പേജ് സ്ലൈഡറുകൾ, അല്ലെങ്കിൽ വിഭാഗം അടിസ്ഥാനമാക്കിയുള്ള നാവിഗേഷൻ പോലുള്ള ഇഫക്റ്റുകൾ ഉണ്ടാക്കാൻ പലപ്പോഴും സങ്കീർണ്ണവും പ്രകടനത്തെ ബാധിക്കുന്നതുമായ ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറികളെ ആശ്രയിച്ചിരുന്നു. ഇതിന്റെ ഫലം പലപ്പോഴും ഉപയോക്താവിന്റെ ഉപകരണത്തിലെ സ്വാഭാവിക പെരുമാറ്റത്തിൽ നിന്ന് വേറിട്ടുനിൽക്കുന്ന, ഒരു വിചിത്രവും അപ്രാപ്യവുമായ അനുഭവമായിരുന്നു.
ഇവിടെയാണ് സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് കടന്നുവരുന്നത്. ഇത് സ്ക്രോളിംഗ് നിയന്ത്രിക്കുന്നതിന് ശക്തവും ഭാരം കുറഞ്ഞതും മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നതുമായ ഒരു ആധുനിക സിഎസ്എസ് മൊഡ്യൂളാണ്. ഒരു സ്ക്രോൾ ചെയ്യാവുന്ന കണ്ടെയ്നറിനുള്ളിൽ പ്രത്യേക "സ്നാപ്പ് പോയിന്റുകൾ" നിർവചിച്ച്, ആകർഷകമായ, ആപ്ലിക്കേഷനുകൾക്ക് സമാനമായ ഇന്റർഫേസുകൾ നിർമ്മിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു ഉപയോക്താവ് സ്ക്രോൾ ചെയ്യുമ്പോൾ, ബ്രൗസർ ഈ പോയിന്റുകളിലേക്ക് വ്യൂപോർട്ടിനെ മനോഹരമായി സ്നാപ്പ് ചെയ്യുന്നു, ഇത് ഉള്ളടക്കം ഓരോ തവണയും കൃത്യമായി വിന്യസിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുന്നു. ഇത് രണ്ട് ഇനങ്ങൾക്കിടയിൽ ഒരു കറൗസൽ വിചിത്രമായി നിർത്തുന്നതോ അല്ലെങ്കിൽ ഒരു വിഭാഗം ഭാഗികമായി മാത്രം ദൃശ്യമാകുന്നതോ ആയ നിരാശാജനകമായ അനുഭവം ഇല്ലാതാക്കുന്നു.
ഈ സമഗ്രമായ ഗൈഡ് നിങ്ങളെ സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പിന്റെ ലോകത്തേക്ക് ആഴത്തിൽ കൊണ്ടുപോകും. ഞങ്ങൾ പ്രധാന ആശയങ്ങൾ പര്യവേക്ഷണം ചെയ്യും, scroll-snap-align
പോലുള്ള പ്രധാന പ്രോപ്പർട്ടികൾ വിശദീകരിക്കും, പ്രായോഗിക ഉദാഹരണങ്ങളിലൂടെ കടന്നുപോകും, കൂടാതെ ലോകമെമ്പാടുമുള്ള പ്രേക്ഷകർക്കായി പ്രൊഫഷണൽ, ആക്സസ് ചെയ്യാവുന്ന, ഉയർന്ന പ്രകടനമുള്ള വെബ് അനുഭവങ്ങൾ സൃഷ്ടിക്കുന്നതിനുള്ള നൂതന സാങ്കേതിക വിദ്യകളും മികച്ച രീതികളും ചർച്ച ചെയ്യും.
എന്താണ് സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ്?
ചുരുക്കത്തിൽ, ഒരു സ്ക്രോളിംഗ് പ്രവർത്തനം പൂർത്തിയായതിന് ശേഷം ഒരു സ്ക്രോൾ കണ്ടെയ്നറിന്റെ വ്യൂപോർട്ടിന്റെ അവസാന സ്ഥാനം നിയന്ത്രിക്കുന്നതിനുള്ള ഒരു ഡിക്ലറേറ്റീവ് മാർഗമാണ് സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ്. സ്ക്രോളിന്റെ വേഗത ഒരു നിശ്ചിതമല്ലാത്ത പോയിന്റിൽ നിർത്താൻ അനുവദിക്കുന്നതിനുപകരം, നിങ്ങൾ ബ്രൗസറിനോട് പറയുന്നു, "ഉപയോക്താവ് സ്ക്രോൾ ചെയ്യുന്നത് നിർത്തുമ്പോൾ, വ്യൂപോർട്ട് ഈ പ്രത്യേക ഘടകങ്ങളിൽ ഒന്നുമായി കൃത്യമായി യോജിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക."
പരമ്പരാഗത ജാവാസ്ക്രിപ്റ്റ് അടിസ്ഥാനമാക്കിയുള്ള പരിഹാരങ്ങളേക്കാൾ ഈ സമീപനം നിരവധി പ്രധാന നേട്ടങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു:
- പ്രകടനം: ഇതൊരു നേറ്റീവ് ബ്രൗസർ ഫീച്ചർ ആയതുകൊണ്ട്, സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് വളരെ കാര്യക്ഷമമാണ്. ഇത് ബ്രൗസറിന്റെ കമ്പോസിറ്റർ ത്രെഡിൽ പ്രവർത്തിക്കുന്നു, പ്രധാന ത്രെഡിനെ തടസ്സപ്പെടുത്താത്ത സുഗമമായ ആനിമേഷനുകൾ ഉറപ്പാക്കുന്നു. ഇത് കുറഞ്ഞ ശക്തിയുള്ള ഉപകരണങ്ങളിൽ പോലും ഇടർച്ചയോ തടസ്സമോ ഉണ്ടാകില്ലെന്ന് അർത്ഥമാക്കുന്നു.
- ലാളിത്യം: ഇതിന്റെ സിന്റാക്സ് നേരായതും പഠിക്കാൻ എളുപ്പമുള്ളതുമാണ്. കുറച്ച് വരി സിഎസ്എസ് കോഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് സങ്കീർണ്ണമായ സ്ക്രോളിംഗ് സ്വഭാവങ്ങൾ കൈവരിക്കാൻ കഴിയും, ഇത് ഒരു ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറിയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ നിങ്ങൾ എഴുതുകയും പരിപാലിക്കുകയും ചെയ്യേണ്ട കോഡിന്റെ അളവ് ഗണ്യമായി കുറയ്ക്കുന്നു.
- ലഭ്യത (A11y): സ്ക്രോൾ സ്നാപ്പ് ബ്രൗസറിന്റെ നേറ്റീവ് സ്ക്രോളിംഗ് മെക്കാനിസത്തിന് മുകളിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്. ഇതിനർത്ഥം ഇത് ഉപയോക്താവിന്റെ മുൻഗണനകളെ മാനിക്കുകയും സ്ക്രീൻ റീഡറുകൾ, കീബോർഡ് നാവിഗേഷൻ തുടങ്ങിയ സഹായ സാങ്കേതികവിദ്യകളുമായി തടസ്സമില്ലാതെ പ്രവർത്തിക്കുകയും ചെയ്യുന്നു. ജാവാസ്ക്രിപ്റ്റ് പരിഹാരങ്ങൾ പലപ്പോഴും ഈ നേറ്റീവ് സ്വഭാവങ്ങളെ തകർക്കുകയും ലഭ്യത കുറഞ്ഞ അനുഭവം സൃഷ്ടിക്കുകയും ചെയ്യുന്നു.
- പുരോഗമനപരമായ മെച്ചപ്പെടുത്തൽ: സ്ക്രോൾ സ്നാപ്പിനെ പിന്തുണയ്ക്കാത്ത ബ്രൗസറുകളിൽ, ഉള്ളടക്കം ഒരു സാധാരണ സ്ക്രോൾ ചെയ്യാവുന്ന ഏരിയയായി പ്രവർത്തിക്കുന്നു. ഉപയോക്തൃ അനുഭവം തകർക്കാതെ തന്നെ പ്രവർത്തനം ഭംഗിയായി നിലവാരത്തകർച്ച നേരിടുന്നു, ഇത് ആധുനിക വെബ് ഡെവലപ്മെന്റിന്റെ ഒരു അടിസ്ഥാന ശിലയാണ്.
പ്രധാന ഘടകങ്ങൾ: കണ്ടെയ്നറും ഇനങ്ങളും
സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് നടപ്പിലാക്കാൻ, നിങ്ങൾ അതിന്റെ രണ്ട് അടിസ്ഥാന ഭാഗങ്ങൾ മനസ്സിലാക്കേണ്ടതുണ്ട്: സ്ക്രോൾ കണ്ടെയ്നർ, സ്നാപ്പ് ഇനങ്ങൾ.
- സ്ക്രോൾ കണ്ടെയ്നർ: ഒരു സ്ക്രോൾബാർ ഉള്ള പാരന്റ് എലമെന്റാണിത് (അതായത്, അതിന്റെ ഉള്ളടക്കം ഓവർഫ്ലോ ചെയ്യുന്നു). സ്നാപ്പിംഗ് സ്വഭാവം പ്രവർത്തനക്ഷമമാക്കാനും കോൺഫിഗർ ചെയ്യാനും നിങ്ങൾ ഈ കണ്ടെയ്നറിൽ പ്രോപ്പർട്ടികൾ പ്രയോഗിക്കുന്നു. ഇതിന്
overflow
പ്രോപ്പർട്ടിauto
അല്ലെങ്കിൽscroll
ആയി സജ്ജീകരിച്ചിരിക്കണം. - സ്നാപ്പ് ഇനങ്ങൾ: ഇവ സ്ക്രോൾ കണ്ടെയ്നറിന്റെ നേരിട്ടുള്ള ചിൽഡ്രൻ ആണ്. വ്യൂപോർട്ട് സ്നാപ്പ് ചെയ്യുന്ന ഘടകങ്ങൾ ഇവയാണ്. അവ സ്നാപ്പ് ചെയ്യുമ്പോൾ കണ്ടെയ്നറുമായി *എങ്ങനെ* വിന്യസിക്കണം എന്ന് നിർവചിക്കാൻ നിങ്ങൾ ഈ ഇനങ്ങളിൽ ഒരു പ്രോപ്പർട്ടി പ്രയോഗിക്കുന്നു.
കണ്ടെയ്നറിനും ഇനങ്ങൾക്കുമിടയിൽ ഒരു അധിക റാപ്പിംഗ് ഘടകം ഉണ്ടായിരിക്കുന്നത് ഒരു സാധാരണ തെറ്റാണ്. ഓർക്കുക: ഇഫക്റ്റ് പ്രവർത്തിക്കുന്നതിന് സ്നാപ്പ് ഇനങ്ങൾ സ്ക്രോൾ കണ്ടെയ്നറിന്റെ നേരിട്ടുള്ള ചിൽഡ്രൻ ആയിരിക്കണം.
ആരംഭിക്കാം: കണ്ടെയ്നർ പ്രോപ്പർട്ടികൾ
സ്ക്രോൾ സ്നാപ്പിംഗിലേക്കുള്ള യാത്ര കണ്ടെയ്നറിൽ നിന്ന് ആരംഭിക്കുന്നു. കുറച്ച് പ്രധാന പ്രോപ്പർട്ടികൾ മുഴുവൻ സ്നാപ്പിംഗ് സിസ്റ്റവും എങ്ങനെ പ്രവർത്തിക്കണമെന്ന് നിർണ്ണയിക്കുന്നു.
scroll-snap-type
ഇതാണ് കണ്ടെയ്നറിനുള്ള ഏറ്റവും പ്രധാനപ്പെട്ട പ്രോപ്പർട്ടി. ഇത് സ്നാപ്പിംഗ് സ്വഭാവം പ്രവർത്തനക്ഷമമാക്കുകയും അതിന്റെ അക്ഷവും (axis) കാഠിന്യവും (strictness) നിർവചിക്കുകയും ചെയ്യുന്നു. ഇതിന് രണ്ട് മൂല്യങ്ങൾ എടുക്കാം:
1. അക്ഷം (The Axis): ഇത് സ്ക്രോളിന്റെ ദിശ വ്യക്തമാക്കുന്നു.
x
: തിരശ്ചീന അക്ഷത്തിൽ സ്നാപ്പിംഗ് സംഭവിക്കുന്നു.y
: ലംബ അക്ഷത്തിൽ സ്നാപ്പിംഗ് സംഭവിക്കുന്നു.both
: രണ്ട് അക്ഷങ്ങളിലും സ്വതന്ത്രമായി സ്നാപ്പിംഗ് സംഭവിക്കാം.block
: ബ്ലോക്ക് അക്ഷത്തിൽ സ്നാപ്പിംഗ് സംഭവിക്കുന്നു (തിരശ്ചീന എഴുത്ത് രീതിയിൽ ലംബമായി).inline
: ഇൻലൈൻ അക്ഷത്തിൽ സ്നാപ്പിംഗ് സംഭവിക്കുന്നു (തിരശ്ചീന എഴുത്ത് രീതിയിൽ തിരശ്ചീനമായി).
2. കാഠിന്യം (The Strictness): ബ്രൗസർ എത്ര കർശനമായി സ്നാപ്പിംഗ് നടപ്പിലാക്കുന്നു എന്ന് ഇത് നിർവചിക്കുന്നു.
mandatory
: ഉപയോക്താവ് സ്ക്രോൾ ചെയ്യുന്നത് പൂർത്തിയാക്കുമ്പോൾ ബ്രൗസർ ഒരു സ്നാപ്പ് പോയിന്റിലേക്ക് സ്നാപ്പ് ചെയ്യണം. ഫോട്ടോ ഗാലറി പോലുള്ള ഇനം അടിസ്ഥാനമാക്കിയുള്ള ഇന്റർഫേസുകൾക്ക് ഇത് വളരെ നല്ലതാണ്, അവിടെ നിങ്ങൾ എല്ലായ്പ്പോഴും ഒരു ഫോട്ടോ പൂർണ്ണമായി കാണാൻ ആഗ്രഹിക്കുന്നു. എന്നിരുന്നാലും, ശ്രദ്ധിക്കുക: ഒരു സ്നാപ്പ് ഇനം വ്യൂപോർട്ടിനേക്കാൾ വലുതാണെങ്കിൽ, ആ ഇനത്തിന്റെ തുടക്കത്തിലോ അവസാനത്തിലോ ഉള്ള ഉള്ളടക്കം ഉപയോക്താവിന് കാണാൻ കഴിയാതെ വന്നേക്കാം.proximity
: ഇത് കൂടുതൽ അയവുള്ള ഒരു ഓപ്ഷനാണ്. ഉപയോക്താവ് ഒരു സ്നാപ്പ് പോയിന്റിന് സമീപം സ്ക്രോൾ ചെയ്യുന്നത് നിർത്തിയാൽ മാത്രം ബ്രൗസർ അതിലേക്ക് സ്നാപ്പ് ചെയ്യും. ഇത് കൂടുതൽ സ്വാഭാവികമായ ഒരു അനുഭവം നൽകുന്നു, കൂടാതെ ഉപയോക്താക്കൾ "കുടുങ്ങിപ്പോകുന്നത്" തടയുന്നതിനാൽ സുരക്ഷിതവുമാണ്. ഇതൊരു മികച്ച ഡിഫോൾട്ട് ചോയിസാണ്.
ഉദാഹരണം:
.container { scroll-snap-type: y mandatory; } /* നിർബന്ധിതമായ ലംബ സ്ക്രോളർ */
.carousel { scroll-snap-type: x proximity; } /* അയഞ്ഞ തിരശ്ചീന സ്ക്രോളർ */
scroll-padding
നിങ്ങളുടെ പേജിന്റെ മുകളിൽ ഒരു ഫിക്സഡ് ഹെഡർ ഉണ്ടെന്ന് സങ്കൽപ്പിക്കുക. നിങ്ങൾ ഒരു ലംബ വിഭാഗത്തിലേക്ക് സ്നാപ്പ് ചെയ്യുമ്പോൾ, ആ വിഭാഗത്തിന്റെ മുകൾഭാഗം ഹെഡറിന് താഴെ മറഞ്ഞിരിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല. ഇവിടെയാണ് scroll-padding
വരുന്നത്. ഇത് സാധാരണ പാഡിംഗ് പോലെയാണ്, പക്ഷേ ഇത് സ്ക്രോൾ കണ്ടെയ്നറിന്റെ ഒപ്റ്റിമൽ വ്യൂവിംഗ് ഏരിയയ്ക്കായി ഒരു ഓഫ്സെറ്റ് ഉണ്ടാക്കുന്നു.
സ്നാപ്പ് പോയിന്റുകൾ കണ്ടെയ്നറിന്റെ യഥാർത്ഥ അരികിലേക്കല്ല, ഈ പുതിയ, പാഡ് ചെയ്ത വ്യൂവിംഗ് ഏരിയയുടെ അരികിലേക്ക് വിന്യസിക്കും. ഇത് സാധാരണ പാഡിംഗ് മൂല്യങ്ങൾ സ്വീകരിക്കുന്നു.
ഉദാഹരണം (60px ഫിക്സഡ് ഹെഡറിനായി):
.container { scroll-snap-type: y mandatory; scroll-padding-top: 60px; }
scroll-margin
scroll-padding
കണ്ടെയ്നറിൽ പ്രയോഗിക്കുമ്പോൾ, scroll-margin
സ്നാപ്പ് ഇനങ്ങളിൽ പ്രയോഗിക്കുന്നു. ഇത് ഒരു മാർജിൻ പോലെ പ്രവർത്തിക്കുന്നു, ഇനത്തിന് ചുറ്റും ഒരു "ഔട്ട്സെറ്റ്" ഉണ്ടാക്കുന്നു, ഇത് സ്നാപ്പ് വിന്യാസം ക്രമീകരിക്കുന്നു. യഥാർത്ഥ എലമെന്റ് അതിർത്തിക്ക് അല്പം മുമ്പോ ശേഷമോ സ്നാപ്പിംഗ് സംഭവിക്കണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്. ഇത് scroll-padding
-നേക്കാൾ കുറവായി ഉപയോഗിക്കുന്നുണ്ടെങ്കിലും വിന്യാസം സൂക്ഷ്മമായി ക്രമീകരിക്കുന്നതിനുള്ള ഒരു ശക്തമായ ഉപകരണമാണിത്.
ഉദാഹരണം:
.snap-item { scroll-margin: 20px; }
ഇതിലെ താരം: `scroll-snap-align`
ഇപ്പോൾ നമ്മൾ ഈ ലേഖനത്തിന് പേര് നൽകിയ പ്രോപ്പർട്ടിയിലേക്ക് വരുന്നു. കണ്ടെയ്നർ പ്രോപ്പർട്ടികൾ വേദി ഒരുക്കുമ്പോൾ, സ്നാപ്പ് ഇനങ്ങളിൽ പ്രയോഗിക്കുന്ന scroll-snap-align
ആണ് പ്രകടനം നിർവചിക്കുന്നത്. സ്നാപ്പ് ഇനത്തിന്റെ ഏത് ഭാഗമാണ് കണ്ടെയ്നറിന്റെ സ്നാപ്പ് പോർട്ടുമായി (ദൃശ്യമായ ഏരിയ) വിന്യസിക്കേണ്ടതെന്ന് ഇത് വ്യക്തമാക്കുന്നു.
ഈ പ്രോപ്പർട്ടി none
, start
, center
, end
എന്നീ സെറ്റിൽ നിന്ന് ഒന്നോ രണ്ടോ മൂല്യങ്ങൾ സ്വീകരിക്കുന്നു. ഒരു മൂല്യം നൽകിയാൽ, അത് രണ്ട് അക്ഷങ്ങളിലും പ്രയോഗിക്കുന്നു. രണ്ടെണ്ണം നൽകിയാൽ, ആദ്യത്തേത് ബ്ലോക്ക് അക്ഷത്തിനും (ലംബം) രണ്ടാമത്തേത് ഇൻലൈൻ അക്ഷത്തിനും (തിരശ്ചീനം) വേണ്ടിയുള്ളതാണ്.
scroll-snap-align: start;
ഇതാണ് ഏറ്റവും സാധാരണമായ മൂല്യം. ഇത് സ്നാപ്പ് ഇനത്തിന്റെ ആരംഭിക്കുന്ന അറ്റം സ്ക്രോൾ കണ്ടെയ്നറിന്റെ ദൃശ്യമായ ഏരിയയുടെ ആരംഭിക്കുന്ന അറ്റവുമായി വിന്യസിക്കുന്നു. ഇംഗ്ലീഷിലുള്ള ഒരു ലംബ സ്ക്രോളറിന്, ഇതിനർത്ഥം ഇനത്തിന്റെ മുകൾഭാഗം കണ്ടെയ്നറിന്റെ മുകൾഭാഗവുമായി വിന്യസിക്കുന്നു എന്നാണ്. ഒരു തിരശ്ചീന സ്ക്രോളറിന്, ഇനത്തിന്റെ ഇടത് അറ്റം കണ്ടെയ്നറിന്റെ ഇടത് അറ്റവുമായി വിന്യസിക്കുന്നു.
ഉപയോഗം: ഒരു ലാൻഡിംഗ് പേജിലെ പൂർണ്ണ-സ്ക്രീൻ വിഭാഗം സ്ക്രോൾ ചെയ്യുന്നതിനോ അല്ലെങ്കിൽ ഓരോ ലേഖനത്തിന്റെയും തലക്കെട്ട് വ്യൂപോർട്ടിന്റെ മുകളിൽ കൃത്യമായി ദൃശ്യമാകണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്ന ലേഖനങ്ങളുടെ ഒരു ലിസ്റ്റിനോ അനുയോജ്യമാണ്.
ഉദാഹരണം:
.snap-item { scroll-snap-align: start; }
scroll-snap-align: center;
ഈ മൂല്യം സ്നാപ്പ് ഇനത്തിന്റെ കേന്ദ്രം സ്ക്രോൾ കണ്ടെയ്നറിന്റെ കേന്ദ്രവുമായി വിന്യസിക്കുന്നു. ഇത് കാഴ്ചയിൽ വളരെ ആകർഷകമാണ്, ഒപ്പം ഉള്ളടക്കത്തിന്റെ മധ്യഭാഗത്ത് നേരിട്ട് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു.
ഉപയോഗം: ഇമേജ് കറൗസലുകൾ, ഉൽപ്പന്ന ഗാലറികൾ, അല്ലെങ്കിൽ ടെസ്റ്റിമോണിയൽ സ്ലൈഡറുകൾക്ക് അനുയോജ്യമാണ്. ഇനം മധ്യത്തിലാക്കുന്നതിലൂടെ, ഇനത്തിന്റെ വീതിയോ ഉയരമോ പരിഗണിക്കാതെ പ്രധാന വിഷയം എല്ലായ്പ്പോഴും ശ്രദ്ധാകേന്ദ്രത്തിലാണെന്ന് നിങ്ങൾ ഉറപ്പാക്കുന്നു.
ഉദാഹരണം:
.carousel-image { scroll-snap-align: center; }
scroll-snap-align: end;
നിങ്ങൾ ഊഹിക്കുന്നതുപോലെ, ഇത് സ്നാപ്പ് ഇനത്തിന്റെ അവസാനിക്കുന്ന അറ്റം സ്ക്രോൾ കണ്ടെയ്നറിന്റെ അവസാനിക്കുന്ന അറ്റവുമായി വിന്യസിക്കുന്നു. ഒരു ലംബ സ്ക്രോളറിന്, ഇനത്തിന്റെ താഴത്തെ ഭാഗം കണ്ടെയ്നറിന്റെ താഴത്തെ ഭാഗവുമായി വിന്യസിക്കുന്നു. ഇത് അത്ര സാധാരണമല്ല, പക്ഷേ ചില പ്രത്യേക ലേഔട്ടുകൾക്ക് ഉപയോഗപ്രദമാകും, ഉദാഹരണത്തിന് ഏറ്റവും പുതിയ സന്ദേശം താഴെ സ്നാപ്പ് ചെയ്യണമെന്ന് നിങ്ങൾ ആഗ്രഹിക്കുന്ന ഒരു ചാറ്റ് ഇന്റർഫേസ്.
ഉപയോഗം: ചാറ്റ് ആപ്ലിക്കേഷനുകൾ, താഴെ നിന്ന് മുകളിലേക്ക് വായിക്കുന്ന ടൈംലൈനുകൾ, അല്ലെങ്കിൽ ഉള്ളടക്കത്തിന്റെ അവസാനം ശ്രദ്ധാകേന്ദ്രമായ ഏതൊരു ഇന്റർഫേസും.
ഉദാഹരണം:
.chat-message { scroll-snap-align: end; }
പ്രായോഗിക ഉപയോഗങ്ങളും ഉദാഹരണങ്ങളും
ചില സാധാരണ യഥാർത്ഥ സാഹചര്യങ്ങളുമായി ഈ സിദ്ധാന്തം പ്രായോഗികമാക്കാം.
1. ഫുൾ-പേജ് സെക്ഷൻ സ്ക്രോളർ
ലാൻഡിംഗ് പേജുകൾക്കുള്ള ഒരു ജനപ്രിയ ഡിസൈൻ ട്രെൻഡ്, ഉപയോക്താവ് ഒന്നൊന്നായി സ്ക്രോൾ ചെയ്യുന്ന പൂർണ്ണ-ഉയരമുള്ള വിഭാഗങ്ങൾ ഉണ്ടായിരിക്കുക എന്നതാണ്. സ്ക്രോൾ സ്നാപ്പ് ഉപയോഗിച്ച് ഇത് നേടാൻ അവിശ്വസനീയമാംവിധം എളുപ്പമാണ്.
HTML ഘടന:
<main>
<section class="section-1">Content for Section 1</section>
<section class="section-2">Content for Section 2</section>
<section class="section-3">Content for Section 3</section>
</main>
CSS:
html, body {
margin: 0;
padding: 0;
}
main {
height: 100vh; /* vh = viewport height */
overflow-y: scroll;
scroll-snap-type: y mandatory;
}
section {
height: 100vh;
width: 100%;
scroll-snap-align: start;
/* Add some colors and centering for demonstration */
display: flex;
justify-content: center;
align-items: center;
font-size: 2em;
}
ഈ ഉദാഹരണത്തിൽ, `main` എലമെന്റിനെ നമ്മുടെ സ്ക്രോൾ കണ്ടെയ്നറായി ഞങ്ങൾ സജ്ജമാക്കുന്നു. അതിന്റെ ഉയരം `100vh` ആയും `overflow-y: scroll` ആയും സജ്ജീകരിക്കുന്നതിലൂടെ, ഞങ്ങൾ അതിനെ പേജിന്റെ പ്രാഥമിക സ്ക്രോൾ ചെയ്യാവുന്ന ഏരിയയാക്കുന്നു. തുടർന്ന് ഞങ്ങൾ `scroll-snap-type: y mandatory` പ്രയോഗിക്കുന്നു. ഓരോ `section`-നും `100vh` ഉയരമുണ്ട്, കൂടാതെ `scroll-snap-align: start` ആയി സജ്ജീകരിച്ചിരിക്കുന്നു. ഇപ്പോൾ, ഉപയോക്താവ് സ്ക്രോൾ ചെയ്യുമ്പോൾ, പേജ് എല്ലായ്പ്പോഴും ഒരു വിഭാഗത്തിന്റെ മുകളിലായി കൃത്യമായി ലോക്ക് ചെയ്യും.
2. തിരശ്ചീന ഇമേജ് കറൗസൽ
ഇ-കൊമേഴ്സ് സൈറ്റുകളിലും പോർട്ട്ഫോളിയോകളിലും വാർത്താ വെബ്സൈറ്റുകളിലും ഇമേജ് കറൗസലുകൾ സർവ്വവ്യാപിയാണ്. സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് അവ നിർമ്മിക്കുന്നതിന് മികച്ച പ്രകടനമുള്ള, ജാവാസ്ക്രിപ്റ്റ് രഹിത മാർഗ്ഗം നൽകുന്നു.
HTML ഘടന:
<div class="carousel-container">
<div class="carousel">
<img src="image1.jpg" alt="Description 1">
<img src="image2.jpg" alt="Description 2">
<img src="image3.jpg" alt="Description 3">
<img src="image4.jpg" alt="Description 4">
</div>
</div>
CSS:
.carousel-container {
max-width: 800px;
margin: auto;
}
.carousel {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
/* Hide the scrollbar for a cleaner look */
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
.carousel::-webkit-scrollbar { /* Chrome, Safari, and Opera */
display: none;
}
.carousel img {
width: 100%;
flex-shrink: 0;
scroll-snap-align: center;
object-fit: cover;
}
ഇവിടെ, `.carousel` div ആണ് നമ്മുടെ സ്ക്രോൾ കണ്ടെയ്നർ. ചിത്രങ്ങൾ തിരശ്ചീനമായി ക്രമീകരിക്കുന്നതിന് ഞങ്ങൾ അതിൽ `display: flex` ഉപയോഗിക്കുന്നു. `overflow-x: auto` തിരശ്ചീന സ്ക്രോളിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു, കൂടാതെ `scroll-snap-type: x mandatory` സ്നാപ്പിംഗ് ഓണാക്കുന്നു. ചിത്രങ്ങൾക്കായി, ഞങ്ങൾ `scroll-snap-align: center` ഉപയോഗിക്കുന്നു. ഇത് മധ്യഭാഗത്തോട് ഏറ്റവും അടുത്തുള്ള ചിത്രം കണ്ടെയ്നറിൽ കേന്ദ്രീകരിക്കുമെന്ന് ഉറപ്പാക്കുന്നു, ഇത് ഒരു ഗാലറിക്ക് വളരെ ആകർഷകമായ ഒരു ഇഫക്റ്റാണ്. `mandatory`-ക്ക് പകരം `proximity` ഉപയോഗിക്കുന്നത് ഉപയോക്താവിനെ ചിത്രങ്ങൾക്കിടയിൽ താൽക്കാലികമായി നിർത്താൻ അനുവദിക്കും, ഇത് ചില സാഹചര്യങ്ങളിൽ അഭികാമ്യമായേക്കാം.
നൂതന സാങ്കേതിക വിദ്യകളും പരിഗണനകളും
അടിസ്ഥാനകാര്യങ്ങൾ പഠിച്ചുകഴിഞ്ഞാൽ, നിങ്ങൾക്ക് ചില നൂതന ഫീച്ചറുകളും പ്രധാനപ്പെട്ട പരിഗണനകളും പര്യവേക്ഷണം ചെയ്യാവുന്നതാണ്.
scroll-snap-stop
നിങ്ങൾ എപ്പോഴെങ്കിലും ഒരു കറൗസൽ വേഗത്തിൽ സ്ക്രോൾ ചെയ്യുകയും അത് നിർത്തുന്നതിന് മുമ്പ് മൂന്നോ നാലോ ചിത്രങ്ങൾ കടന്നുപോകുകയും ചെയ്തിട്ടുണ്ടോ? scroll-snap-stop
പ്രോപ്പർട്ടിക്ക് ഇത് തടയാൻ കഴിയും. സ്നാപ്പ് ഇനങ്ങളിൽ പ്രയോഗിക്കുമ്പോൾ, സ്ക്രോളിംഗ് ആ എലമെന്റിൽ നിർത്തണമോ എന്ന് ഇത് നിയന്ത്രിക്കുന്നു.
normal
(ഡിഫോൾട്ട്): ഉപയോക്താവിന്റെ സ്ക്രോൾ വേഗതയേറിയതാണെങ്കിൽ ബ്രൗസറിന് ഈ സ്നാപ്പ് പോയിന്റ് കടന്നുപോകാൻ കഴിയും.always
: തുടർന്നുള്ള ഏതെങ്കിലും പോയിന്റുകൾ പരിഗണിക്കുന്നതിന് മുമ്പ് ബ്രൗസർ ഈ സ്നാപ്പ് പോയിന്റിൽ നിർത്തണം.
ഘട്ടം ഘട്ടമായുള്ള ഗൈഡുകൾ, ഫോമുകൾ, അല്ലെങ്കിൽ ഉപയോക്താവ് അബദ്ധത്തിൽ ഒരു വിഭാഗം ഒഴിവാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കാത്ത ഏതൊരു ഉള്ളടക്കത്തിനും ഇത് ഉപയോഗപ്രദമാണ്.
ഉദാഹരണം:
.step { scroll-snap-align: start; scroll-snap-stop: always; }
ലഭ്യത (A11y) നിർണായകമാണ്
ജാവാസ്ക്രിപ്റ്റ് ബദലുകളേക്കാൾ സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് സ്വാഭാവികമായും കൂടുതൽ പ്രാപ്യമാണെങ്കിലും, ഇപ്പോഴും പ്രധാനപ്പെട്ട പരിഗണനകളുണ്ട്:
- ഉപയോക്താക്കളെ കുടുക്കുന്നത് ഒഴിവാക്കുക: `scroll-snap-type: mandatory` ഉപയോഗിക്കുമ്പോൾ വളരെ ശ്രദ്ധിക്കുക. ഒരു ഇനം വ്യൂപോർട്ടിനേക്കാൾ വലുതാണെങ്കിൽ, ഒരു കീബോർഡ് അല്ലെങ്കിൽ സ്ക്രീൻ റീഡർ ഉപയോക്താവ് കാഴ്ചയിൽ നിന്ന് പുറത്തുള്ള ഉള്ളടക്കത്തിലേക്ക് സ്ക്രോൾ ചെയ്യാൻ കഴിയാതെ കുടുങ്ങിപ്പോയേക്കാം. അത്തരം സന്ദർഭങ്ങളിൽ, `proximity` വളരെ സുരക്ഷിതമായ ഒരു തിരഞ്ഞെടുപ്പാണ്.
- ദൃശ്യ സൂചനകൾ നൽകുക: ഉള്ളടക്കം സ്ക്രോൾ ചെയ്യാവുന്നതാണെന്ന് വ്യക്തമാക്കുക. കൂടുതൽ ഉള്ളടക്കം ലഭ്യമാണെന്ന് ഉപയോക്താവിന് സൂചന നൽകാൻ അമ്പടയാളങ്ങൾ, സ്ക്രോൾബാറുകൾ (എല്ലായ്പ്പോഴും അവ മറയ്ക്കരുത്), അല്ലെങ്കിൽ ഭാഗികമായി ദൃശ്യമാകുന്ന ഇനങ്ങൾ പോലുള്ള ദൃശ്യ സൂചകങ്ങൾ ഉപയോഗിക്കുക.
- ഫോക്കസ് ഓർഡർ ഉറപ്പാക്കുക: HTML ഡോക്യുമെന്റിലെ നിങ്ങളുടെ ഉള്ളടക്കത്തിന്റെ ലോജിക്കൽ ഓർഡർ അർത്ഥവത്തായിരിക്കണം. കീബോർഡ് ഉപയോക്താക്കൾ ഈ ക്രമത്തിൽ ഘടകങ്ങളിലൂടെ ടാബ് ചെയ്യും, അത് പ്രവചിക്കാവുന്നതായിരിക്കണം.
ബ്രൗസർ പിന്തുണയും പുരോഗമനപരമായ മെച്ചപ്പെടുത്തലും
ഇന്നത്തെ കണക്കനുസരിച്ച്, ക്രോം, ഫയർഫോക്സ്, സഫാരി, എഡ്ജ് എന്നിവയുൾപ്പെടെ എല്ലാ പ്രധാന ആധുനിക ബ്രൗസറുകളിലും സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പിന് മികച്ച പിന്തുണയുണ്ട്. വളരെ പഴയ ബ്രൗസറുകൾക്കായി, പ്രോപ്പർട്ടികൾ അവഗണിക്കപ്പെടുകയും കണ്ടെയ്നർ ഒരു സാധാരണ സ്ക്രോൾ ചെയ്യാവുന്ന ഘടകമായി മാറുകയും ചെയ്യുന്നു. ഇത് പുരോഗമനപരമായ മെച്ചപ്പെടുത്തലിന്റെ ഒരു മികച്ച ഉദാഹരണമാണ് - ആധുനിക ബ്രൗസറുകളുള്ള ഉപയോക്താക്കൾക്ക് അനുഭവം മെച്ചപ്പെടുത്തുന്നു, പക്ഷേ ഇത് മറ്റെല്ലാവർക്കും പൂർണ്ണമായി പ്രവർത്തനക്ഷമമായി തുടരുന്നു.
സാധാരണ അപകടങ്ങളും അവ എങ്ങനെ ഒഴിവാക്കാം
ഏതൊരു സാങ്കേതികവിദ്യയെയും പോലെ, സ്ക്രോൾ സ്നാപ്പ് ആദ്യമായി ഉപയോഗിക്കുമ്പോൾ ഡെവലപ്പർമാർ നേരിടുന്ന ചില സാധാരണ പ്രശ്നങ്ങളുണ്ട്.
- നേരിട്ടുള്ള ചൈൽഡ് അല്ലാതിരിക്കുന്നത്: ഇതാണ് ഏറ്റവും സാധാരണമായ തെറ്റ്. സ്നാപ്പ് ഇനങ്ങൾ (ഉദാഹരണത്തിന്, `
`) സ്ക്രോൾ കണ്ടെയ്നറിന്റെ ( `overflow`, `scroll-snap-type` ഉള്ള എലമെന്റ്) നേരിട്ടുള്ള ചിൽഡ്രൻ ആയിരിക്കണം. നിങ്ങൾ അവയെ മറ്റൊരു `
`-ൽ പൊതിഞ്ഞാൽ, സ്നാപ്പിംഗ് പരാജയപ്പെടും.- `overflow` മറന്നുപോകുന്നത്: സ്ക്രോൾ കണ്ടെയ്നറിന് അതിന്റെ `overflow` പ്രോപ്പർട്ടി നിർദ്ദിഷ്ട അക്ഷത്തിനായി `auto` അല്ലെങ്കിൽ `scroll` ആയി സജ്ജീകരിച്ചിരിക്കണം. ഇത് കൂടാതെ, സ്ക്രോൾബാർ ഉണ്ടാകില്ല, അതിനാൽ സ്നാപ്പ് ചെയ്യാൻ ഒന്നുമില്ല.
- മറ്റ് ലൈബ്രറികളുമായി പോരാടുന്നത്: സ്ക്രോളിംഗ് നിയന്ത്രിക്കാൻ ശ്രമിക്കുന്ന ഒരു ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറി (ചില പാരലാക്സ് അല്ലെങ്കിൽ സ്മൂത്ത്-സ്ക്രോളിംഗ് സ്ക്രിപ്റ്റുകൾ പോലെ) നിങ്ങൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, അവ സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പുമായി പൊരുത്തക്കേടുണ്ടാക്കാം. സ്ക്രോൾ സ്വഭാവം നിയന്ത്രിക്കുന്നതിന് ഒരു രീതി തിരഞ്ഞെടുക്കുന്നതാണ് നല്ലത്.
- ഫിക്സഡ് എലമെന്റുകൾ അവഗണിക്കുന്നത്: നിങ്ങൾക്ക് ഒരു ഫിക്സഡ് ഹെഡറോ സൈഡ്ബാറോ ഉണ്ടെങ്കിൽ, ഉള്ളടക്കം അതിനടിയിൽ സ്നാപ്പ് ചെയ്യും. ആവശ്യമായ ഓഫ്സെറ്റ് ഉണ്ടാക്കാൻ കണ്ടെയ്നറിൽ `scroll-padding` ഉപയോഗിക്കാൻ എപ്പോഴും ഓർക്കുക.
ഉപസംഹാരം: ഭാവി സ്നാപ്പിയാണ്
സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പ് ഒരു പുതുമ മാത്രമല്ല; കൂടുതൽ നിയന്ത്രിതവും അവബോധജന്യവും പ്രകടനക്ഷമവുമായ ഉപയോക്തൃ ഇന്റർഫേസുകൾ നിർമ്മിക്കാൻ ഡിസൈനർമാരെയും ഡെവലപ്പർമാരെയും ശാക്തീകരിക്കുന്ന ആധുനിക വെബ് ഡെവലപ്മെന്റിന്റെ ഒരു അടിസ്ഥാന ഉപകരണമാണിത്. സ്ക്രോൾ നിയന്ത്രണം സങ്കീർണ്ണമായ ജാവാസ്ക്രിപ്റ്റിൽ നിന്ന് ലളിതവും ഡിക്ലറേറ്റീവുമായ സിഎസ്എസിലേക്ക് മാറ്റുന്നതിലൂടെ, നമുക്ക് നേറ്റീവ് ആയും, പ്രാപ്യമായും, ഉപയോഗിക്കാൻ ശരിക്കും ആനന്ദകരമായും തോന്നുന്ന അനുഭവങ്ങൾ നിർമ്മിക്കാൻ കഴിയും.
ഫുൾ-പേജ് അവതരണങ്ങൾ മുതൽ മനോഹരമായ ഉൽപ്പന്ന കറൗസലുകൾ വരെ, സാധ്യതകൾ വളരെ വലുതാണ്. സ്ക്രോൾ കണ്ടെയ്നർ, സ്നാപ്പ് ഇനങ്ങൾ, നിർണ്ണായകമായ `scroll-snap-align` പ്രോപ്പർട്ടി എന്നിവയുടെ പ്രധാന ആശയങ്ങൾ പഠിക്കുന്നതിലൂടെ, നിങ്ങളുടെ വെബ് പ്രോജക്റ്റുകളെ ലളിതമായ ഡോക്യുമെന്റുകളിൽ നിന്ന് ആകർഷകമായ, ആപ്പ് പോലുള്ള അനുഭവങ്ങളിലേക്ക് ഉയർത്താൻ നിങ്ങൾക്ക് കഴിയും. വിചിത്രവും ജാവാസ്ക്രിപ്റ്റ് ഭാരമേറിയതുമായ സ്ക്രോളറുകളോട് വിടപറയാനും സിഎസ്എസ് സ്ക്രോൾ സ്നാപ്പിന്റെ വൃത്തിയുള്ളതും കാര്യക്ഷമവുമായ ശക്തിയെ സ്വീകരിക്കാനുമുള്ള സമയമാണിത്.