#javascript #html #css
Вопрос:
Эй, я сделал этот слайд-карусель, и я хочу, чтобы он заполнил всю мою страницу, изменив мой CSS-код, как бы я это сделал??
Это мой Javascript
const carouselSlide = document.querySelector('.carousel-slide');
const carouselImages = document.querySelectorAll('.carousel-slide img');
const prevBtn = document.querySelector('#prevBtn');
const nextBtn = document.querySelector('#nextBtn');
let counter = 1;
const size = carouselImages[0].clientWidth;
carouselSlide.style.transform = 'translateX(' (-size * counter) 'px)';
nextBtn.addEventListener('click',()=>{
if (counter >= carouselImages.length - 1) return;
carouselSlide.style.transition = "transform 0.4s ease-in-out";
counter ;
carouselSlide.style.transform = 'translateX(' (-size * counter) 'px)';
});
prevBtn.addEventListener('click',()=>{
if (counter <= 0) return;
carouselSlide.style.transition = "transform 0.4s ease-in-out";
counter--;
carouselSlide.style.transform = 'translateX(' (-size * counter) 'px)';
});
carouselSlide.addEventListener('transitionend', ()=>{
if (carouselImages[counter].id === 'lastClone'){
carouselSlide.style.transition = "none";
counter = carouselImages.length - 2;
carouselSlide.style.transform = 'translateX(' (-size * counter) 'px)';
}
if (carouselImages[counter].id === 'firstClone'){
carouselSlide.style.transition = "none";
counter = carouselImages.length - counter;
carouselSlide.style.transform = 'translateX(' (-size * counter) 'px)';
}
});
и мой html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css"
integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg p"
crossorigin="anonymous"/>
<title>My Goals</title>
</head>
<body>
<div class="carousel-container">
<i class="fas fa-arrow-left" id="prevBtn"></i>
<i class="fas fa-arrow-right" id="nextBtn"></i>
<div class="carousel-slide">
<img src="img5.jpg" id="lastClone" class="image" alt="">
<img src="img1.jpg" alt="" class="image">
<img src="img2.jpg" alt="" class="image">
<img src="img3.jpg" alt="" class="image">
<img src="img4.jpg" alt="" class="image">
<img src="img5.jpg" alt="" class="image">
<img src="img1.jpg" id="firstClone" class="image" alt="">
</div>
</div>
<script src="app.js"></script>
</body>
</html>
и, наконец, мой css (где «ошибка»):
*{
padding: 0px;
margin: 0px;
box-sizing: border-box;
}
.image {
width: 1000px;
height: 800px;
}
.carousel-container {
width: 1000px;
margin: auto;
overflow: hidden;
position: relative;
}
.carousel-slide {
display: flex;
width: 100%;
height: 800px;
}
#prevBtn {
position: absolute;
top: 50%;
z-index: 10;
left: 5%;
font-size: 60px;
color: white;
cursor: pointer;
}
#nextBtn {
position: absolute;
top: 50%;
z-index: 10;
right: 5%;
font-size: 60px;
color: white;
cursor: pointer;
}
Я пытался поиграть с шириной: 100% или в разных местах в моем css, но, похоже, я не могу заставить это работать. Помните, что с кодом нет никаких проблем. Все, что я хочу, — это сделать его на 100% по ширине и на 100% по высоте, но когда я пытаюсь это сделать, изображения просто выглядят странно и не заполняют весь экран, как должно быть. Моя ручка с кодом здесь, если вы хотите помочь. 🙂
Комментарии:
1. использовать
.image {width: 100%;object-fit: cover;}
2. Не работает. если это работает для вас, не могли бы вы, пожалуйста, сделать кодовую ссылку и показать мне, используя мой js и html-код?
3. неясно.. вы имеете в виду 100% ширину/высоту страницы? если да, то почему вы поместили на него 1000 пикселей?
4. да, я имею в виду, что он должен заполнить весь мой экран, то есть на 100% по высоте и ширине. но изменение класса изображения само по себе не помогает. ширина контейнера карусели установлена на 1000 пикселей, а мой экран шире 1000 пикселей, поэтому первым шагом было бы установить это значение на 100%. Попробуйте перейти на мое кодовое перо и посмотреть, подходит ли .ширина изображения: 100% и объект, подходящий для покрытия, если он заполняет всю страницу/ экран, чтобы не было «белых пятен» (PS. извините, я знаю, что я нуб)