Есть ли какой-нибудь способ заставить div входить/выходить с помощью чистого CSS

#html #css #animation #css-animations

Вопрос:

Я пытаюсь использовать CSS-анимацию, чтобы заставить div входить/выходить со страницы при нажатии кнопки. Я знаю, как анимировать с помощью CSS, но моя проблема: если я попытаюсь сделать позицию div равной -1000%, появится горизонтальная полоса прокрутки. Я не хочу, чтобы это отображалось, но я также не хочу отключать полосу прокрутки.

Комментарии:

1. Не все так просто. Пожалуйста, приведите нам пример структуры html. И что должно спровоцировать»вылететь»?

Ответ №1:

используйте ключевые кадры. Например:

 .fly{
    animation: superman-fly-right ease-in-out 0.5s forwards;
}

@keyframes superman-fly-right {
        from {
            transform: translateX(0);
        }
        to {
            transform: translateX(100vw);
        }
    }
 

Ответ №2:

Используя положение элемента в CSS, вы можете использовать animation и @keyframes править. Установите для элемента значение относительное или абсолютное в соответствии с тем, как вы хотите управлять расположением элемента в родительском элементе, и используйте положение left или top в своем правиле анимации css. @ 0% установите левую позицию на странице и введите ее в 100% => 0

 body {
  overflow-x:hidden;
}

#main {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  position: relative;
}

#header {
  position: absolute; 
  left: 37%;
  z-index: 10;
  font-size: 3rem;
  animation: slideup 1.2s ease-in-out;
  text-shadow: 1px 1px white;
  font-family: sans-serif;
}

#image {
  position: absolute;
  left: 0px;
  top: 0px;
  animation: slidein 1s ease-in-out;
  z-index: 1;
}

@keyframes slidein {
  0% {
    top: -1900px;
  }
  100% {
    top: 0px;
  }
} 
 <div id="main">
  <img id='image' src="https://assets3.thrillist.com/v1/image/1679696/size/tmg-facebook_social.jpg">
  <h2 id="header">My Vacation</h2>
</div> 

Комментарии:

1. Ну, у него есть полоса прокрутки, которая тянется вправо и влево… Мне не нужна полоса прокрутки… (У меня полноэкранное фоновое изображение без прокрутки).

2. @ublec вы можете добавить overflow: hidden; в свое тело, и это устранит проблему со прокруткой.

3. Да, я это сделал. Но что, если я хочу, чтобы на моем сайте была прокрутка?

4. Мое предложение состояло бы в том, чтобы использовать боковое скольжение, и overflow-x:hidden; таким образом вы все еще можете использовать прокрутку y