Как сделать заменяющиеся картинку в выпадающем блоке?

необходимо сделать выпадающее меню, после того как меню выпало картинка со стрелкой должна заменяться на другую.

        let coll = document.getElementsByClassName('collapsible');
        for(let i = 0; i < coll.length; i++) {
            coll[i].addEventListener('click',function() {
                this.classList.toggle('active');
                let content = this.nextElementSibling;
                if (content.style.maxHeight) {
                    content.style.maxHeight = null
                } else {
                    content.style.maxHeight = content.scrollHeight + 'px'
                }
            })
        }
.portfolio {
    height: 100vh;
    margin-top: 50px;
    &-textm {
        margin: 0;
        text-align: center;
        font-size: 72px;
        margin-bottom: 50px;
    }
    &-item {
        width: 1110px;
        height: 250px;
        box-shadow: 0px 0px 25px 0px rgba($color: #000000, $alpha: .2);
        border-radius: 25px;
        margin: 15px;
        margin-left: 0px;
    }
    &-img {
        border-radius: 25px;
        float: left;
        margin: 25px;
        box-shadow: 0px 0px 25px 0px rgba($color: #000000, $alpha: .2);
    }
    &-text {
        margin: 0;
        padding: 25px 0px 20px;
        font-size: 24px;
    }
    &-description {
        margin: 0;
        margin-right: 25px;
        font-size: 17px;
    }
    &-btn {
        float: left;
        margin-top: 20px;
        padding-top: 5px;
        padding-bottom: 6px;
        padding-left: 17px;
        padding-right: 14px;
        background-image: url('/img/btn2.png');
        background-repeat: no-repeat;
        font-size: 16px;
        color: rgb(255, 255, 255);
        :hover {
            transition: 0.5s;
            color: #f3f3f3;
            text-shadow: 0px 0px 25px rgb(0, 0, 0);
        }
    }
}

.collapsible {
    display: block;
    cursor: pointer;
    margin-left: auto;
    margin-right: auto;
    background-color: transparent;
    border: none;
    outline: none;
}

.active,
.collapsible:hover {
    overflow: hidden;
}

.content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease-out;
}
     <div class="portfolio">
        <a name="portfolio"></a>
         <div class="wrapper">
             <h2 class="portfolio-textm">Портфолио</h2>
             <div class="portfolio-items">
                 <div class="portfolio-item">
                     <img src="/img/Porsche 912.png" alt="" class="portfolio-img">
                     <h3 class="portfolio-text">Landing page для Porsche</h3>
                     <p class="portfolio-description">Porsche 911 - спортивный автомобиль производства немецкой компании Porsche AG в кузове двухдверное купе или кабриолет.<br>Сайт был разработан в качестве примера для портфолио и не является официальным сайтом Porsche.</p>
                     <a class="portfolio-btn" href=""><span>Подробнее</span></a>
                 </div>
                 <div class="portfolio-item">
                    <img src="/img/Car repair.png" alt="" class="portfolio-img">
                    <h3 class="portfolio-text">Landing page для Autosimple</h3>
                    <p class="portfolio-description">Autosimple - это небольшая станция технического обслуживания (СТО) в городе Златоуст, Челябинской области. Она занимается обслуживанием автомобилей и предлагает различный спектр услуг.</p>
                    <a class="portfolio-btn" href=""><span>Подробнее</span></a>
                </div>
                <div class="portfolio-item">
                    <img src="/img/Detail.png" alt="" class="portfolio-img">
                    <h3 class="portfolio-text">Landing page для детейлинг центра</h3>
                    <p class="portfolio-description">Детейлинг центр - это комплекс услуг, который включает в себя работы по тщательному профессиональному уходу за интерьером и экстерьером автомобиля.<br>Данный сайт не принадлежит никакой компании.</p>
                    <a class="portfolio-btn" href=""><span>Подробнее</span></a>
                </div>
                <button class="collapsible"><img src="http://svgur.com/i/d7Y.svg" alt=""></button>
                <button class="collapsible"><img src="http://svgur.com/i/d7F.svg" alt=""></button>
                <div class="content">
                    <div class="portfolio-item">
                        <img src="/img/Detail.png" alt="" class="portfolio-img">
                        <h3 class="portfolio-text">Landing page для детейлинг центра</h3>
                        <p class="portfolio-description">Детейлинг центр - это комплекс услуг, который включает в себя работы по тщательному профессиональному уходу за интерьером и экстерьером автомобиля.<br>Данный сайт не принадлежит никакой компании.</p>
                        <a class="portfolio-btn" href=""><span>Подробнее</span></a>
                    </div>
                </div>
             </div>
         </div>
     </div>


Ответы (1 шт):

Автор решения: Alexandr_Yakovlev

Необязательно менять картинки, можно просто изменять класс элементу <button class="collapsible"><img src="http://svgur.com/i/d7Y.svg" alt=""></button> при клике

  1. css
.collapsible {
 /* по желанию (для плавности изменений) */
 transition: transform .5s;
}
/* Этот класс будем добавлять */
.rotate-x {
  transform: rotateX(180deg);
}
  1. html

Тут я только удалил элемент <button class="collapsible"><img src="http://svgur.com/i/d7F.svg" alt=""></button>

  1. js
let coll = document.querySelector('.collapsible');

coll.addEventListener('click', function () {
  // Добавляем класс, который разворачивает кнопку
  this.classList.toggle('rotate-x');
  this.classList.toggle('active');

  let content = this.nextElementSibling;

  if (content.style.maxHeight) {
    content.style.maxHeight = null
  } else {
    content.style.maxHeight = content.scrollHeight + 'px'
  }
});
→ Ссылка