显然,上述解决方案对我不起作用(我不知道为什么?)但我发现了另一种使用 javascript 的解决方法。
基本上,这是一种更乏味的方法,但也有效。您使用 jQuery 将轮播高度设置为宽度除以某个纵横比。
这是我的代码:
var aspectRatio = 2.5; //Width to Height!!!
var imageWidth;
var imageHeight;
//bind the window resize event to the method -
//change in carousel width is only triggered when size of viewport changes
$(window).on("resize", methodToFixLayout);
//updates the carousel width when the window is resized
function methodToFixLayout(e){
imageWidth = carousel.width();
console.log("");
console.log("Method width" + imageWidth);
console.log("");
imageHeight = imageWidth / aspectRatio;
carouselContainer.height(imageHeight);
carousel.height(imageHeight);
carouselPic.height(imageHeight);
//solve the carousel glitch for small viewports - delete the carousel
windowWidth = $(window).width();
if (windowWidth < 840){
carousel.hide();
$("#side-navbar").hide();
} else {
carousel.show();
$("#side-navbar").show();
}
}
它似乎对我有用。
希望它也适合你。
您可以自己设置纵横比,也可以使用其他方法。首先,将窗口宽度和高度设置为图片格式正确的视图尺寸。查询宽高,计算出比例。将窗口恢复为原始宽度和高度。用户根本不会注意到变化,但会记录尺寸。