ترفند فوری فوتی bootstrap collapse و fontawesome
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 3 دقیقه

ترفند فوری فوتی bootstrap collapse و fontawesome

شاید شما هم تو پروژه فرانتی که در حال توسعش هستید به طراحی بر بخورید که منو های زیر هم داره و به صورت کشویی باز و بسته میشه
و دوباره ممکنه زیر منو های دیگه ای داشته باشه ک باهاش کاری نداریم

اما برای زیبایی کار اغلب این منو ها یه ایکون arrow داره که به کاربر کمک میکنه متوجه بشه این لیست حالت کشویی داره و با بازو بسته شدنش هم اون Arrow به ستمت هایی حرکت میکنه ، اغلب میان این کار رو با جاوا اسکریپت انجام میدن ک راه رو طولانی میکنه
توضیح تصویر رو وارد کنید

من بهتون میگم فقط تو یک دقیقه چطوری راحت ترین نوع رو بدون یک خط کد js هم بسازین

برییم سراغ کد :

برای اینکه ما لیستی از collapse هایی داشته باشیم من از bootstrap collapse استفاده میکنم (طراحی های دیگش با خودتون )


      <ul class="list-unstyled">
        <li>
            <div class="w-100 btn-secondary btn collapser " data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
                <span> this is a collapse div as a btn</span>
                <i class="fa fa-chevron-left"></i>
            </div>
            <div class="collapse" id="collapseExample">
                <div class="card card-body">
                    Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
                </div>
            </div>
        </li>
        <!-- .../ other list items -->
    </ul>

خوب تا اینجا که کار خاصی انجام ندادیم فقط اومدیم یه ایتم از یه لیست رو به صورت collapse ایجاد کردیم و بجای استفاده از btn از div استفاده کردیم

حالا با زدن روی div اول کولپس اجرا میشه اما فعلا اون تگ i که با کلاس های fontawesome یک arrow ایجاد کردیم از جاش تکون نخورده

حالا باید برای div اول که نقش btn رو برامون بازی میکنه یک کلاس خاص استفاده کنیم من اینجا یک کلاس بهش اضافه کردم به نام collapser که تو قطعه کد بالا هم مشهوده
دقت کنید که شما هر کلاس نام دیگه ای بخواید میتونید بزارید

اگر خوب به قطعه کد بالا دقت کنید و ازش اجرا بگیرید و تو inspect مررورگر زمان کلیک نگاه کنید div.collapser یک attribute داره به نام aria-expanded="false" که مقدار اولیش هم false این زمانی false هست که collapse ما بسته باشه و این همون نکته ای هست که ما میتونیم ازش استفاده کنیم !

حالا میایم و از css بهره میبریم :

div.collapser[aria-expanded="true"]>i.fa{
  transform: rotate(180deg);
}

خوب من تو قطعه کد بالا با Css مشخص کردم که اگر المنت div دارای کلاس collapser بود و attribute aria-expanded برابر با true بود (یعنی کولپس ما باز بود - زمانی aria-expanded برابر true میشه که روی دکمه کولپس کلیک بشه و کولپس باز بشه ) بیا و تگ i که دارای کلاس fa هست رو 90 درجه بچرخون

و حالا اگر روی کولپس کلیک کنید خواهید دید که تگ i ما 90 درجه میچرخه و بسته به کاربردش که فلش اولیه به سمت چه جهتی باشه میتونید مقدار چرخشش رو خودتون شخصی سازی کنید و اگر یک چرخش نرم میخواید میتونید بهش transation بدید

نکته و خطم کلام : میدونم که چه نویسنده داغونی هستم و فقط هدفم کمک بوده اما ، اینجا کار اصلی رو جاوا اسکریپت توی بوت استرپ انجام میده که یک اتریبیوت رو در دکمه کولپس تغییر میده و ما از این تغییر استفاده میکنیم و با css یک حالتی به شکل یک شرط رو براش در نظر میگیریم

لایکم کنید D:

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
4.6 از 5 رای

/@fariborz0015
فریبرز شالقونی پور
طراح و برنامه نویس حوضه وب

قصه از اونجایی شروع شد که من برای اولین بار ماوس رو تو دستم گرفتم و فلش رو توی صفحه به حرکت در اوردم و در یک نگاه عاشق کامپیوتر شدم و در برخورد دوم که یکی از فامیل های گرامی hello world رو در html بهم در 13 سالگی اموخت این مسیر رو پیش گرفتم و هروز بیشتر در این حرفه غرق میشم تا به راز های اعماق این اقیانوس وسیع پی ببرم

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید