Недостаточно просто использовать CSS для достижения того, что вы хотите. Я вижу, что вы также используете JS для достижения скользящей анимации, поэтому я решил также использовать JS для решения проблемы. Идея состоит в том, чтобы выполнить перевод, используя transform: translate(...)
в сочетании с transition
для анимации скольжения. Мы будем выполнять перевод изображений внутри слайд-шоу.
Вот пример, показывающий, как это можно сделать. Я решил использовать ваниль JS вместо jQuery, так как кажется, что вам не нужно jQuery.
Хотя это не связано, я исправил ваш HTML так, чтобы он меньше вложен, и я также переместил ваши стрелки div, чтобы их было проще настроить с помощью CSS.
const next = document.querySelector('#Next')
const prev = document.querySelector('#Prev')
const slider = document.querySelector('#Slider')
let images = slider.querySelectorAll('img')
let currentImageIndex = 0
let maxImageIndex = images.length - 1
next.addEventListener('click', e => {
updateCurrentImageIndex(1)
slideImage()
})
prev.addEventListener('click', e => {
updateCurrentImageIndex(-1)
slideImage()
})
function updateCurrentImageIndex(value) {
currentImageIndex += value
if (currentImageIndex < 0) currentImageIndex = maxImageIndex
else if (currentImageIndex > maxImageIndex) currentImageIndex = 0
}
function slideImage() {
images.forEach(image => {
image.style.transform = `translateX(${-100 * currentImageIndex}%)`
})
}
* {
box-sizing: border-box;
}
html {
align-items: center;
background-color: #31353D;
display: flex;
justify-content: center;
}
html,
body {
height: 100%;
width: 100%;
margin: 0;
}
#Slider {
position: relative;
display: flex;
width: 100%;
height: 100%;
border: 5px solid #1C1D21;
overflow: hidden;
}
#Slider img {
max-height: 100%;
max-width: 100%;
flex: 0 0 100%;
transition: all 1s;
}
#Arrows {
display: flex;
justify-content: space-between;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
#Arrows i {
position: absolute;
top: 50%;
transform: translateY(-50%);
background-color: rgba(255, 255, 255, .25);
color: #1C1D21;
cursor: pointer;
height: 60px;
padding: 15px;
transition: background-color .5s, color .5s;
}
#Arrows i:last-of-type {
left: 100%;
transform: translate(-100%, -50%);
}
#Arrows i:hover {
background-color: rgba(28, 29, 33, .75);
color: #EEEFF7;
}
<html lang="en" dir="ltr">
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css" integrity="sha256-h20CPZ0QyXlBuAw7A+KluUYx/3pK+c7lYEpqLTlxjYQ=" crossorigin="anonymous" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="css/slideshow.css">
<script src="js/display.js"></script>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="Slider">
<img src="http://via.placeholder.com/1024x568.jpg?text=1">
<img src="http://via.placeholder.com/1024x568.jpg?text=2">
<img src="http://via.placeholder.com/1024x568.jpg?text=3">
<img src="http://via.placeholder.com/1024x568.jpg?text=4">
<img src="http://via.placeholder.com/1024x568.jpg?text=5">
<div id="Arrows">
<i id="Prev" class="fa fa-chevron-left fa-2x" aria-hidden="true"></i>
<i id="Next" class="fa fa-chevron-right fa-2x" aria-hidden="true"></i>
</div>
</div>
<script src="js/slideshow.js"></script>
</body>
</html>