使用W3Schools静态幻灯片CSS(和W3CSS):https://www.w3schools.com/w3css/w3css_slideshow.asp
然而,我的图像都是不同的高度和宽度,所以我想根据视口的大小将它们设置为相同的高度,所以我修改了幻灯片的javascript(见下文,566和1280)是最短图像的尺寸),但是,当使用这个javascript时幻灯片显示0高度,但当报告“高度”变量时,它出现在正确的(非零)值。
<script>
var slideIndex = 1;
showDivs(slideIndex);
function plusDivs(n) {
showDivs(slideIndex += n);
}
function showDivs(n) {
var i;
var x = document.getElementsByClassName("Gallery");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length} ;
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex-1].style.display = "block";
var height = (document.documentElement.clientWidth*566/1280);
x[slideIndex-1].height = height+"px";
}
</script>
答案 0 :(得分:1)
你的最后一行不正确。它应该是:
x[slideIndex-1].style.height = height+"px";
答案 1 :(得分:1)
均衡所有图像高度的简单方法是使用&#39; vh&#39; CSS中的单位。然后它不需要任何Javascript来检测或设置任何高度。如果所有类别的图像都是myslides&#39;需要,比如50%的视口高度:
img.mySlides {
height: 50vh; width: auto;
}