Javascript和W3CSS奇怪的图像行为

时间:2017-09-10 23:44:08

标签: javascript html css

使用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>

2 个答案:

答案 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; 
}