شفیعی
2 روز پیش توسط شفیعی مطرح شد
3 پاسخ

منوی آکاردئونی

سلام
من داخل سایتم یه سری پرسش و پاسخ دارم که حالت آکاردئونی هست
یعنی با کلیک بر روی سوال ، پنجره زیر سوال باز میشه و کاربر جوابش رو می بینه
همانند تصویر زیر
تصویر مربوطه

در این منو که دارم وقتی کاربر پنجره یه سوال رو باز میکنه و وقتی پنجره سوال بعدی رو باز میکنه،
هر دو پنجره باز می مونن
من میخوام وقتی پنجره بعدی رو باز کرد پنجره قبلی بسته بشه
این کد html ش هست

    <div class="container-fluid header bg-primary p-6 mb-5">
        <div class="row g-0 align-items-center flex-column-reverse flex-lg-row">

            <div class="col-md-15 pb-8 wow fadeInUp">
        <div class="rounde container">

        </div>
                    <div class="row2 g-7">
                <button class="accordion">سوال 1</button>
                    <div class="panel">
                        <p class= "title-1 py-7">جواب 1</p>
                        <p class= title-1>.</p>
                        <p class= title-1>.</p>
                    </div>

                <button class="accordion">سوال2</button>
                    <div class="panel">
                        <p class= "title-1 py-7">جواب 2</p>
                        <p class= title-1>.</p>
                        <p class= title-1>.</p>
                    </div>

                <button class="accordion">سوال3</button>
                    <div class="panel">
                        <p class= "title-1 py-7">جواب 3</p>
                        <p class= title-1>.</p>
                        <p class= title-1>.</p>
                    </div>

                </div>
        </div>
            </div>
         </div>
       </div>
   </div>

میدونم از کد جاوای زیر دستور میگیره

<script>
    var acc = document.getElementsByClassName("accordion");
    var i;

    for (i = 0; i < acc.length; i++) {
      acc[i].addEventListener("click", function() {
        this.classList.toggle("activ");
        var panel = this.nextElementSibling;
        if (panel.style.maxHeight) {
          panel.style.maxHeight = null;
        } else {
          panel.style.maxHeight = panel.scrollHeight + "px";
        } 
      });
    }
</script>

فکر میکنم با ویرایش کد جاوا درست بشه و من به منظورم برسم
اما چه ویرایشی؟


ثبت پرسش جدید
شفیعی
تخصص : فرهنگی
@shafiie1366 23 ساعت پیش مطرح شد
0

سپاس فراوان
درست شد
خداوند خیرتان بدهد


محمد حسینی
تخصص : یه ذره لاراول ، یه کمی سئو
@mehdihoseini1362 1 روز پیش مطرح شد
0

کافیه یه شرط بزاری به این صورت که وقتی روی یک آکاردیون کلیک میشه کلاس اکتیو از همه آکاردیون ها بجز اونی که روش کلیک شده برداشته بشه :
یه چیزی شبیه به این :
داخل فور یک فور دیگه میزاریم

   for (var j = 0; j < acc.length; j++) {
                if (acc[j] !== this) {
                    acc[j].classList.remove("activ");
                    acc[j].nextElementSibling.style.maxHeight = null;
                }
            }

شفیعی
تخصص : فرهنگی
@shafiie1366 23 ساعت پیش مطرح شد
0

سپاس فراوان
درست شد
خداوند خیرتان بدهد


شفیعی
تخصص : فرهنگی
@shafiie1366 3 ساعت پیش آپدیت شد
0

@mehdihoseini1362
سلام
متوجه یک چیزی شدم
با استفاده از کد box-shadow: 0 0 0px 1px #000000; یک خط مشکی دور سوال ها برای جلوه بهتر انداخته بودم
اما این خط برای باکس جواب ها نیست
با دادن کد به کلاس .panel { این خط دور باکس جواب ها هم نمایش داده شد و جلوه بهتری نشان داد
اما وقتی باکس سوالی بسته است یک خط مشکی زیر باکس سوال ها هست که ظاهر رو خراب کرده
آیا میشه این خط رو حذف کرد طوری که وقتی باکس بسته هست خط مشکی نباشه اما وقتی باکس جواب باز هست این خط مشکی دور باکس باشه؟
 تصویر


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

ورود یا ثبت‌نام