Я пытаюсь добавить 3 слайд слайдера в верхней части страницы.Каждое изображение является ссылкой и имеет два текстовых поля, относящихся к нему.Один, который отображается в верхней части изображения, а другой в синем поле, прямо под ним.У меня две проблемы:
- Слайды должны быть абсолютными, поэтому все они отображаются в одном и том же месте.Я обернул абсолютные слайды в относительном div, думая, что это поместит остальную часть страницы после слайдов, но она все еще идет позади нее, а не под ней.Я понимаю, почему это происходит (абсолютное позиционирование изображения означает, что относительный div не имеет высоты), но не знаю, как я мог бы добавить соответствующие отступы, которые соответствуют высоте thr изображения на всех размерах экрана.
- Поскольку изображение установлено в соответствии с размером объекта: содержать, изображение не всегда занимает всю ширину экрана, но два текстовых поля позволяют, то есть они часто не содержатся в пропорциях изображения.Мне нужно как-то связать ширину изображения с шириной текстового поля, чтобы оно отображалось точно с той же шириной, что и изображение.
Вот мой код.
jQuery(document).ready(function($) {
var current = 0,
slides = document.getElementsByClassName("feature-slide");
copy = document.getElementsByClassName("feature-copy");
setInterval(function() {
for (var i = 0; i < slides.length; i++) {
slides[i].style.opacity = 0;
$(slides[i]).css('pointer-events', 'none');
copy[i].style.display = "none";
}
current = (current != slides.length - 1) ? current + 1 : 0;
slides[current].style.opacity = 1;
$(slides[current]).css('pointer-events', 'auto');
copy[current].style.display = "block";
}, 1000);
});
#slideshow {
position: relative;
max-height: 80vh;
}
.slider-image {
position: relative;
}
img {
object-fit: contain;
width: 100vw;
max-height: 80vh;
}
.feature-slide {
position: absolute;
}
.feature-copy {
z-index: 700;
position: absolute;
top: 5em;
left: 10em;
}
.feature-text {
background-color: #1d9cd9;
width: 100vw;
position: absolute;
top: 100%;
;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="slideshow">
<div class="feature-slide">
<a href="#">
<img src="https://via.placeholder.com/600x300" alt="">
</a>
<div class="feature-copy">
<p>Attention Grabber 1</p>
</div>
<div class="feature-text">
<p>product one</p>
</div>
</div>
<div class="feature-slide">
<a href="#">
<img src="https://placeimg.com/600/300/tech" alt="">
</a>
<div class="feature-copy">
<p>Attention Grabber 2</p>
</div>
<div class="feature-text">
<p>product two</p>
</div>
</div>
<div class="feature-slide">
<a href="#">
<img src="https://placeimg.com/600/300/arch" />
</a>
<div class="feature-copy">
<p>Attention Grabber 3</p>
</div>
<div class="feature-text">
<p>product three</p>
</div>
</div>
</div>
<div class="main-body">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quaerat exercitationem culpa velit illo amet fugit reprehenderit fugiat animi beatae voluptatem dolorum repellat, voluptatum inventore hic maiores minima tempore facilis aliquam.
</div>