Я работаю с HTML и CSS. Помоги сделать анимацию в CSS. Даны блоки, расположенные в один ряд на всю ширину страницы. Нужно сделать так, чтобы при нажатии на кнопку, этот ряд прокручивался. То есть блоки пропадали в одной стороне и появлялись с другой стороны.
html
<div id="block1" class="block">Блок 1</div>
<div id="block2" class="block">Блок 2</div>
<div id="block3" class="block">Блок 3</div>
...
Затем мы определим стили для наших блоков и кнопки в CSS. Наши блоки будут располагаться в ряд, поэтому для них нам понадобится использовать свойство `display: inline-block` или `display: flex`.
css
.block-container {
overflow: hidden; /* скрываем содержимое, выходящее за пределы контейнера */
white-space: nowrap; /* предотвращаем перенос блоков на новую строку */
}
.block {
display: inline-block; /* располагаем блоки в ряд */
padding: 10px;
background-color: #ccc;
margin-right: 10px; /* добавляем небольшой отступ между блоками */
}
.button {
margin-top: 10px;
padding: 5px 10px;
background-color: #333;
color: #fff;
cursor: pointer;
}
Теперь наша разметка создана, и мы готовы перейти к созданию анимации в CSS. Для анимации прокрутки мы будем использовать `@keyframes`. Это правило позволяет определить анимацию, состоящую из нескольких шагов.
css
@keyframes scroll {
0% {
transform: translateX(0); /* начальное положение блоков */
}
100% {
transform: translateX(-100%); /* конечное положение блоков */
}
}
В этом примере мы использовали `transform: translateX(-100%);`, чтобы переместить наши блоки на ширину одного блока влево.
Для активации анимации нам понадобится написать код JavaScript, чтобы добавить класс с анимацией к нашему контейнеру блоков по клику на кнопку. Мы можем использовать метод `classList.add()`, чтобы добавить класс `scroll-animation`:
javascript
const button = document.querySelector('.button');
const blockContainer = document.querySelector('.block-container');
button.addEventListener('click', function() {
blockContainer.classList.add('scroll-animation');
});
В итоге наш полный HTML и CSS код должен выглядеть следующим образом:
html
<!DOCTYPE html>
<html>
<head>
<title>Анимация прокрутки блоков</title>
<style>
.block-container {
overflow: hidden;
white-space: nowrap;
}
.block {
display: inline-block;
padding: 10px;
background-color: #ccc;
margin-right: 10px;
}
.button {
margin-top: 10px;
padding: 5px 10px;
background-color: #333;
color: #fff;
cursor: pointer;
}
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
.scroll-animation {
animation: scroll 5s infinite linear;
}
</style>
</head>
<body>
<div class="block-container">
<div id="block1" class="block">Блок 1</div>
<div id="block2" class="block">Блок 2</div>
<div id="block3" class="block">Блок 3</div>
...
</div>
<div class="button">Прокрутить</div>
<script>
const button = document.querySelector('.button');
const blockContainer = document.querySelector('.block-container');
button.addEventListener('click', function() {
blockContainer.classList.add('scroll-animation');
});
</script>
</body>
</html>
Теперь, когда пользователи нажмут на кнопку "Прокрутить", ряд блоков будет анимированно прокручиваться, и блоки с правого края будут появляться с левой стороны экрана. Прокрутка будет продолжаться в течение 5 секунд и повторяться бесконечно.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет