Transition on change position from absolute in typescript

this.pointer

משתמש רשום
שלום,
אשמח לעזרה.
יש לי div שמכיל כמה divs שה - position שלהם הוא אבסולוטי.
בתחילה הם מוצגים אחד על השני.
בלחיצה על הערימה ה- position הופך ל - relative (ע"י הוספת class ב- Typescript) והם נפתחים - מוצגים אחד ליד השני.
השאלה היא איך עושים את זה עם transition - שתהיה לפתיחה תנועה חלקה?
לפי מה שהבנתי - ל absolute בלתי אפשרי עם transition.
קישור ל- codepen.
קוד:
JavaScript:
function open()
{
  var div = document.getElementsByClassName('outer')[0];
  for(let i=0; i<div.childElementCount; i++)
    {
      div.children[i].classList.add('open');
    }
};

HTML:
<div id="out" class="outer">
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
</div>
CSS:
.outer
{
  transition: all 1s ease-in-out;
  display: flex;
}

.inner
{
   width: 100px;
   height: 100px;
   background-color: #588765;
   margin: 3px;
   position: absolute;
   border: 3px solid #030f10;
   cursor: pointer;
}

.inner:nth-child(2)
{
  transform: rotate(-13deg);
}

.inner:nth-child(3)
{
  transform: rotate(10deg);
}

.open
{
  position: relative;
}
תודה רבה על כל רעיון!
 
הפיתרון
זה לא עוזר, כיון שברגע שה - position משתנה ל - realative - הם כבר לא אחד על השני וזה קורה ב'בום'...
ה- transition משפיע על מה שקורה אחר כך.
עדכנתי את ה - codepen הנ"ל.
אשמח להצצה, אולי לא הבנתי נכון.
תודה!
לא הבנת את התשובה שלי.
אם הופכים את זה לrelative ולכל אחד מהריבועים נותנים margin אחר שהוא כפולה של האינדקס - הם יהיו על אותו מקום.
ומשם אפשר לעשות transition על הmargin לערך הרצוי.

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
זורקת כיוון:
להפוך אותם לrelative עם margin שלילי שתלוי באינדקס של הריבוע (-i*10 לדוגמא)
ולעשות את הtransition לערך הרצוי.
 

this.pointer

משתמש רשום
זורקת כיוון:
להפוך אותם לrelative עם margin שלילי שתלוי באינדקס של הריבוע (-i*10 לדוגמא)
ולעשות את הtransition לערך הרצוי.
זה לא עוזר, כיון שברגע שה - position משתנה ל - realative - הם כבר לא אחד על השני וזה קורה ב'בום'...
ה- transition משפיע על מה שקורה אחר כך.
עדכנתי את ה - codepen הנ"ל.
אשמח להצצה, אולי לא הבנתי נכון.
תודה!
 

java

משתמש סופר מקצוען
מנוי פרימיום
הנדסת תוכנה
זה לא עוזר, כיון שברגע שה - position משתנה ל - realative - הם כבר לא אחד על השני וזה קורה ב'בום'...
ה- transition משפיע על מה שקורה אחר כך.
עדכנתי את ה - codepen הנ"ל.
אשמח להצצה, אולי לא הבנתי נכון.
תודה!
לא הבנת את התשובה שלי.
אם הופכים את זה לrelative ולכל אחד מהריבועים נותנים margin אחר שהוא כפולה של האינדקס - הם יהיו על אותו מקום.
ומשם אפשר לעשות transition על הmargin לערך הרצוי.
 
הפיתרון

this.pointer

משתמש רשום
לא הבנת את התשובה שלי.
אם הופכים את זה לrelative ולכל אחד מהריבועים נותנים margin אחר שהוא כפולה של האינדקס - הם יהיו על אותו מקום.
ומשם אפשר לעשות transition על הmargin לערך הרצוי.
סורי, באמת לא הבנתי. חשבתי שהתכוונת לעשות את זה בפונקציה.
עכשיו הבנתי שהכוונה לעשות את זה מלכתחילה.
אבדוק את זה.
תודה.
 

this.pointer

משתמש רשום
זה עובד מהמם ב"ה תודה.
היה לי כל הזמן בראש להתייחס ל margin אבל לא רציתי להתחיל להסתבך עם המספרים.
גם ברספונסיביות זה דורש תשומת לב.
בעז"ה גם זה יסתדר.
תודה רבה!
 

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קל

א שִׁיר הַמַּעֲלוֹת מִמַּעֲמַקִּים קְרָאתִיךָ יְהוָה:ב אֲדֹנָי שִׁמְעָה בְקוֹלִי תִּהְיֶינָה אָזְנֶיךָ קַשֻּׁבוֹת לְקוֹל תַּחֲנוּנָי:ג אִם עֲוֹנוֹת תִּשְׁמָר יָהּ אֲדֹנָי מִי יַעֲמֹד:ד כִּי עִמְּךָ הַסְּלִיחָה לְמַעַן תִּוָּרֵא:ה קִוִּיתִי יְהוָה קִוְּתָה נַפְשִׁי וְלִדְבָרוֹ הוֹחָלְתִּי:ו נַפְשִׁי לַאדֹנָי מִשֹּׁמְרִים לַבֹּקֶר שֹׁמְרִים לַבֹּקֶר:ז יַחֵל יִשְׂרָאֵל אֶל יְהוָה כִּי עִם יְהוָה הַחֶסֶד וְהַרְבֵּה עִמּוֹ פְדוּת:ח וְהוּא יִפְדֶּה אֶת יִשְׂרָאֵל מִכֹּל עֲוֹנֹתָיו:
נקרא  19  פעמים

אתגר AI

ממה זה עשוי...? • אתגר 16

לוח מודעות

למעלה