@stintikss

Как сделать анимации появления картинок при нажатии на кнопку?

Подскажите пожалуйста, что когда нажимаешь на кнопку - плавно появлялись картинки и оставались там, пока не нажмешь вторую кнопку, и что бы они так же плавно исчезали, но что бы это работало всегда после нажатия

HTML
<div class="knopka">
  <div class="kn">
    <button onclick="showElement()"> 
      Показать больше 
    </button>
  </div>
  
  <div class="kn1">
    <button onclick="hideElement()"> 
      Скрыть
    </button>
  </div>
  
  <div class="container">
    <div class="scr41" id="scrr">
      <img src="/Untitled (5)/Group 10.png">
    </div>
  
    <div class="scr51" id="scrr">
      <img src="/Untitled (5)/Group 11.png">
    </div>

    <div class="scr51" id="scrr">
      <img src="/Untitled (5)/Group 12.png">
    </div>

  </div>
</div>


CSS
.knopka {
    text-align: end;
}

.kn {
    margin-top: -55px;
    margin-right: 350px;
}

.kn button {
    color: #4E4E4E;
    border-radius: 5px;
    background-color: #F7F7F7;
    font-size: 15px;
    border: none;
    width: 200px;
    height: 40px;
}

.container {
    justify-content: center;
    display: flex;
}

.scr41 img {
    
    margin-top: 70px;
    width: 140px;
}

.scr51 img {
    margin-top: 70px;
    width: 140px;   
}


.kn1 {
    margin: -40px 140px;
}

.kn1 button {
    color: #4E4E4E;
    border-radius: 5px;
    background-color: #F7F7F7;
    font-size: 15px;
    border: none;
    width: 200px;
    height: 40px;
}

.kn button:hover {
    background-color: #ffa34857;
    color: rgb(0, 0, 0);
    transition: all 0.6s ease;
}

.kn1 button:hover {
    background-color: #ffa34857;
    color: rgb(0, 0, 0);
    transition: all 0.6s ease;
}


JS
function showElement() {
    element = document.querySelector('.container');
    element.style.visibility = 'visible';
    
}

function hideElement() {
    element = document.querySelector('.container');
    element.style.visibility = 'hidden';
}
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
grantur5707
@grantur5707
Full Stack Web Developer
Для вашей задачи достаточно будет использования свойств opacity и transition вместо visibility.

<div class="knopka">
  <div class="kn">
    <button onclick="showElement()">Показать больше</button>
  </div>
  
  <div class="kn1">
    <button onclick="hideElement()">Скрыть</button>
  </div>
  
  <div class="container" id="imageContainer">
    <div class="scr41">
      <img src="/Untitled (5)/Group 10.png" alt="Image 1">
    </div>
  
    <div class="scr51">
      <img src="/Untitled (5)/Group 11.png" alt="Image 2">
    </div>

    <div class="scr51">
      <img src="/Untitled (5)/Group 12.png" alt="Image 3">
    </div>
  </div>
</div>


.knopka {
    text-align: end;
}

.kn {
    margin-top: -55px;
    margin-right: 350px;
}

.kn button, .kn1 button {
    color: #4E4E4E;
    border-radius: 5px;
    background-color: #F7F7F7;
    font-size: 15px;
    border: none;
    width: 200px;
    height: 40px;
}

.kn button:hover, .kn1 button:hover {
    background-color: #ffa34857;
    color: rgb(0, 0, 0);
    transition: all 0.6s ease;
}

.container {
    justify-content: center;
    display: flex;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    pointer-events: none;
}

.container.show {
    opacity: 1;
    pointer-events: auto;
}

.scr41 img, .scr51 img {
    margin-top: 70px;
    width: 140px;
}


function showElement() {
    const element = document.getElementById('imageContainer');
    element.classList.add('show');
}

function hideElement() {
    const element = document.getElementById('imageContainer');
    element.classList.remove('show');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы