gpt4 book ai didi

jquery - 根据浏览器的窗口大小调整边距

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:22 26 4
gpt4 key购买 nike

我有一系列水平滚动布局的图像。图像之间有一个边距。我正在使用一个 jQuery 脚本,它负责根据浏览器的窗口大小调整图像大小。我的问题是,如何调整图像之间的边距?

我需要设计完全流畅,因此在这种情况下媒体查询不是解决方案。

HTML:

<div id="page">
<div id="header">
</div>
<div id="slides">
<div class="slide"><img src="image01.jpg" /></div>
<div class="slide"><img src="image02.jpg" /></div>
<div class="slide"><img src="image03.jpg" /></div>
....
<div class="slide"><img src="imageN.jpg" /></div>
</div>
<div id="footer">
</div>
</div>

CSS:

#slides {
width: 100%;
white-space: nowrap;
}

.slide {
display: inline-block;
margin-right: 20px;
vertical-align: top;
}

jQuery:

jQuery(document).ready(function($){

var $window = $(window),
$header = $('#header'),
$footer = $('#footer');

var getHorizontalPageHeight = function () {
return $window.height() - $header.outerHeight() - $footer.outerHeight();
};

var $slides = $('#slides'),
$items = $slides.find('img, iframe');

$items.each(function () {
var $item = $(this),
width = $item.data('width') || $item.attr('width') || 1,
height = $item.data('height') || $item.attr('height') || 1;
$item.data({
height: height,
ratio: width / height
});
});

var resizer = function () {

var contentHeight = getHorizontalPageHeight(),
windowWidth = $window.width(),
windowHeight = $window.height();

$items.each(function () {

var $item = $(this),
originalHeight = $item.data('height'),
height = contentHeight > originalHeight ? originalHeight : contentHeight,
width,
ratio = $item.data('ratio');

width = height * ratio;

$item.css({
width: width,
maxWidth: 'none',
height: width / ratio
});

});

};

$window.on('resize', resizer);
resizer();

});

提前致谢

最佳答案

如果您不想使用 mediaQ,您可以将百分比用作 margin-right:2%2% 取决于调整窗口大小(它会随着窗口变小而变小)

看这里 jsfiddle width percentage

代码:

 .slide {
display: inline-block;
margin-right: 2%;
vertical-align: top;
height:100px;
background:red;
width:20%
}

或者您可以使用 vw 表示视口(viewport)(窗口)宽度。其中 100vw 是最大值,0vw 是最小值。同样,margin-right:2vw 将根据窗口的宽度增加或减少。

看这里 jsfiddle with vw

代码:

.slide {
display: inline-block;
margin-right: 2vw;
vertical-align: top;
height:100px;
background:red;
width:20%
}

如果这 2 种解决方案中的一种适合您,请告诉我。

附言:我已将 widthheight 放入 .slide 中,仅供示例使用/p>

关于jquery - 根据浏览器的窗口大小调整边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38653353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com