דילוג לתוכן הראשי
<Component />While scrollingsticky-basedירידת דור במובייל

לאיזה תוכןתמונה אחת / שני עימודים (חצי מסך, כרטיס, מילה בכותרת, עיגול, טלפון) / מעט מלל / זורם כשהוא נוחת בעימוד רגיל (טלפון ליד תוכן), פחות כשהוא נגמר במסך מלא

השאלהיש תמונה אחת שעוברת בין שני עימודים (חצי מסך, כרטיס, עיגול, טלפון)?

Morph

תמונה שעפה מעימוד אחד לעימוד אחר בזמן שהמסך עומד. הקומפוננטה לא יודעת מה זה "שמאל" או "מסך מלא": היא מודדת שתי משבצות ומעיפה ביניהן, אז כל וריאציה היא עימוד אחר, לא קוד אחר. הדוגמאות למטה, כולן אותה קומפוננטה, ואחריהן שרשרת, קבוצה וקשת באותה קומפוננטה, ואח אחד: צורה שמשתנה (MorphSVG). בסוף: שרשרת של תחנות.

  1. המסך ננעל. הסקשן נעצר (CSS sticky) ומראה את העימוד הראשון, עם התמונה במשבצת שלה: חצי מ-50-50, כרטיס, מילה בתוך כותרת.
  2. התמונה עפה. העימוד הראשון דוהה, והתמונה עפה למשבצת שלה בעימוד השני: מיקום, גודל ועיגול של כל פינה בנפרד. התמונה בתוכה מתיישבת מ-1.2 ל-1.
  3. העימוד השני נכנס. סביב התמונה שנחתה, עצירה קצרה, והדף ממשיך.
propברירת מחדלמה זה
src-התמונה שעפה
alt''טקסט חלופי
images-קבוצה: כמה תמונות במקום src, משבצת לכל אחת בכל עימוד
swap-תמונה שנייה שמתחלפת עם הראשונה באמצע המעוף הראשון: זום אאוט והחלפה יחד (סנכרון). רק עם src
tightfalseהסקשן שאחרי מתחיל ממש מתחת לתוכן של העימוד האחרון, ולא מסך שלם אחר כך: הרווח הריק נמדד ונלקח בחזרה, והסקשן עולה מעל הקרקע ונעצר בתחתית הכרטיס. בלי מספר קבוע. לסקשן שאחרי צריך רקע משלו
length150svh למעוףכמה גלילה הכול לוקח
ease'power1.inOut'עקומת המעוף (ease של GSAP)
arc0קשת: כמה פיקסלים המעוף מתעקל באמצע (שלילי = למעלה)
stagger0.06קבוצה: ההפרש בין תמונה לתמונה, חלק מהמעוף
className-על העוטף (רקע כהה, למשל)
children-העימודים: data-morph-from, כמה data-morph-step שרוצים, data-morph-to
markupמה זה
data-morph-fromהעימוד בהתחלה. כל HTML ו-CSS
data-morph-stepעימוד באמצע: שרשרת. התמונה עוברת בכולם לפי הסדר, עם עצירה קצרה בכל אחד
data-morph-toהעימוד בסוף
data-morph-slotבתוך כל עימוד: קופסה ריקה שאומרת לתמונה איפה היא ובאיזו צורה. גודל ו-border-radius ב-CSS (עיגול, גלולה, קשת). rotate על המשבצת: התמונה נוחתת עקומה
data-morph-slot="0"קבוצה: מצמיד משבצת לתמונה לפי המספר. בלי מספר, לפי הסדר
data-morph-overעל עימוד שהטקסט שלו יושב על התמונה (כותרת על תמונה במסך מלא): מעלה אותו מעליה
data-morph-shadeמכהה את התמונה מתחת לטקסט, כדי שיהיה קריא: גרדיאנט מלמטה. ="full" לשכבה אחידה. נעלם יחד עם העימוד, אז התמונה נוחתת נקייה בעימוד הבא. עוצמה: --uk-morph-shade
דוגמה למבנה

כל דוגמה היא שני מסכים של אותו מקום: איך הוא נראה בהתחלה, ואיך בסוף. בכל אחד משבצת ריקה לתמונה. הקומפוננטה מודדת את שתי המשבצות, והתמונה עפה מהראשונה לשנייה בזמן שהמסך עומד. זה הכול: כל הדוגמאות למטה הן אותו קוד, רק עימוד אחר.

1 · data-morph-from (start)
הבית

קירות של זכוכית

הסלון והמטבח נפתחים לחצר, והאור נכנס מכל הכיוונים לאורך כל היום.

2 · data-morph-to (end)

האור, בכל חדר

<UkMorph src="/house.jpg" length="160svh">

  {/* the screen at the start */}
  <div data-morph-from>
    <div className="mx-split">
      <div data-morph-slot className="mx-slot-tall" />   ← where the picture starts
      <div className="mx-copy">…</div>
    </div>
  </div>

  {/* the same screen at the end */}
  <div data-morph-to>
    <div data-morph-slot className="mx-slot-full" />     ← where it lands
    <p className="mx-caption">…</p>
  </div>

</UkMorph>
לפני / אחרי

אותו HTML בדיוק, פעמיים. לפני: מה שכתבת, בלי המנגנון: שני מסכים רגילים אחד אחרי השני, והתמונה יושבת במשבצת בכל אחד. אחרי: אותם שני מסכים בתוך UkMorph: הם נערמים למסך אחד שעומד, והתמונה עפה מהמשבצת של הראשון לזו של השני.

data-morph-from
החזית

בית שפונה לשמש

שתי קומות של זכוכית, מרפסת בכל קומה, והבית כולו פונה דרומה.

data-morph-to
החצר

ובריכה לכל האורך

הבריכה צמודה לסלון, ומהמרפסת בקומה השנייה רואים את כולה.

1 · split → full
הבית

קירות של זכוכית

הסלון והמטבח נפתחים לחצר, והאור נכנס מכל הכיוונים לאורך כל היום.

האור, בכל חדר

2 · swap sides
החזית

בית שפונה לשמש

שתי קומות של זכוכית, מרפסת בכל קומה, והבית כולו פונה דרומה.

החצר

ובריכה לכל האורך

הבריכה צמודה לסלון, ומהמרפסת בקומה השנייה רואים את כולה.

3 · full → frame

החוף

5 דק׳הליכה מהבית לחוף
365ימים של חוף פתוח
4 · card → full

שלושה פרויקטים על המים

נווה ים
בתי המרינה
חוף התכלת

בתי המרינה

5 · full → circle
״חיפשנו שקט, ומצאנו אותו כאן. בערב פשוט יושבים במרפסת ומסתכלים על הגלים.״
משפחת לוי, דיירים מ-2022
6 · inline → full

בית מול הים

שלושה חדרי שינה, כולם מול הים

7 · full → corner
מדריך השכונה

שבוע אחד על קו החוף

בבוקר ריצה על הטיילת, בצהריים קפה מול המרינה, ובערב ארוחה בנמל הדייגים. הכול במרחק הליכה מהבית.

אספנו את המקומות שהדיירים שלנו הכי אוהבים, מהמאפייה הקטנה ועד בית הספר לגלישה.

8 · pill → band

הים, לכל הרוחב

חלון פנורמי אחד לאורך כל הסלון, בלי עמודים ובלי מסגרות באמצע.

9 · full → phone
האפליקציה

כל הבניין בכף היד

פתיחת שער, הזמנת חדר כושר ותשלום ועד הבית, מאפליקציה אחת.

10 · arch → full
הנוף

כל חלון הוא נוף

חלון לים, בכל חדר

שרשרת, קבוצה, קשת וצורה

  1. שרשרת. data-morph-step בין from ל-to: תמונה אחת עוברת בכמה עימודים, עם עצירה בכל אחד.
  2. קבוצה. images במקום src, ומשבצת לכל תמונה: כולן עפות יחד, בהפרש קטן.
  3. קשת. arc מעקם את המעוף, ו-rotate על המשבצת מנחית את התמונה עקומה, כמו תמונה שנזרקה על שולחן.
  4. צורה. UkShapeMorph: המסגרת של התמונה משנה צורה בגלילה (כתם, קשת, מלבן). בלי sticky, בלי אורך גלילה.
11 · chain · full → half → card

בית אחד, שלוש נקודות מבט

הסלון

קירות של זכוכית

הסלון נפתח לחצר, והאור נכנס מכל הכיוונים לאורך כל היום.

ועוד שני בתים על המים

בית הזכוכית
נווה ים
חוף התכלת
12 · group · row → bento

שלושה בתים

שלושה בתים, מבט אחד

13 · arc · full → tossed onto the board
מהקיץ

כל תמונה היא יום על החוף

אספנו את הרגעים שהדיירים שלנו שלחו, מהבוקר הראשון ועד השקיעה האחרונה של העונה.

14 · shape · MorphSVG
blob → arch → rect
circle → pill → rounded
leaf → blob → arch
15 · chain of 4 · full → half → half, mirrored → arch

ארבע תחנות, תמונה אחת

תחנה 2

הבית מבחוץ

חזית לבנה, גג שטוח, ומרפסת שפונה לשקיעה.

תחנה 3

אותה תמונה, בצד השני

אותו לייאאוט במראה: הטקסט קודם, המשבצת אחריו.

תחנה 4

ונוחתת בחלון

<Component />While scrollingsticky-basedירידת דור במובייל

לאיזה תוכןתמונה אחת / שני עימודים (חצי מסך, כרטיס, מילה בכותרת, עיגול, טלפון) / מעט מלל / זורם כשהוא נוחת בעימוד רגיל (טלפון ליד תוכן), פחות כשהוא נגמר במסך מלא

השאלהיש תמונה אחת שעוברת בין שני עימודים (חצי מסך, כרטיס, עיגול, טלפון)?