我知道有大约一千个线程有同样的问题。如果我告诉你我读了所有这些,我会撒谎,但我肯定读了很多。
我目前的问题是:我目前有一个 div 可以根据浏览器的大小调整大小,并且底部有一个带有“菜单”的页脚。现在,我在 div 中放置了一些淡入淡出的“背景”图像(我使用引号是因为它们没有设置为 css 属性背景图像,因为你不能使用 jquery 转换和 css3 转换是IE 中不支持)。我用$(window).resize
为了实现这一点(这样我还解决了图像过度拉伸 div 到菜单不会显示的点的问题)。到目前为止一切顺利,当图像不适合浏览器的宽度/高度比例时,问题就出现了。当然,我尝试根据屏幕的像素动态使用最大宽度、高度等来解决这个问题,并且在某种程度上它起作用了。我说在某种程度上是因为某些图像的纵横比是“错误的”,当我调整它们的大小时(一些在高度,一些在宽度),它们会在屏幕边缘留下空白。如果它只是一张图像,我会手动剪切该图像并使其适合。问题是我有很多。
我解决这个问题的想法是:当调整到浏览器的宽度或浏览器的高度时,每个图像都会留下空白。我想将图像调整为不会留下空白的大小,并裁剪(或剪切)超出屏幕高度/宽度的图像的其他部分。
我不知道如何实现这一点。我在 jquery 中搜索了一些图像裁剪,发现了我不想要的东西。选择图片的一部分很麻烦……我不知道。
有任何想法吗?我可以回答任何问题或提供有关我的代码的更多详细信息。
非常感谢!
我改变图像的功能:
$(function() {
$imgs = $('.bgChange'),
imgAmount = $imgs.length;
$($imgs.css('position', 'absolute').hide().get(0)).show();
window.setInterval(swapImages, tiempo);
function swapImages() {
var $currentImg = $($imgs[current]);
if(current == imgAmount-1) current = -1;
var $nextImg = $($imgs[++current]),
speed = 1500;
$currentImg.fadeOut(speed,function(){$nextImg.fadeIn(speed);});
}
});
我的 .bgChange 课程
.bgChange
{
margin:0;
border:0;
padding:0;
z-index:-1;
position:absolute;
}
我的 div 与图像(它使用一些我不理解的 css 属性来适应屏幕的大小,并且在一个单独的文件中。如果有人需要它,我可以粘贴它们):
<div id="DummyFondo">
<img class='bgChange' src="img/bg03.jpg" alt="" />
<img class='bgChange' src="img/foto_2.jpg" alt="" />
<img class='bgChange' src="img/Semillas2.jpg" alt="" />
....goes on
</div>
我的调整大小功能:
$(window).resize(function()
{
ResizeImages();
});
resizeImages 方法不起作用,这是我想要更改的方法。我尝试过类似的方法
function ResizeImages()
{
$imgs = $('.bgChange'),
imgAmount = $imgs.length;
for(a = 0; a < imgAmount; a = a + 1)
{
var $currentImg = $($imgs[a]);
$currentImg.css("max-width", $(window).width() + "px" + " !important;");
$currentImg.css("max-height", $(window).height() + "px" + " !important;");
}
}
并将这些内容更改为高度、宽度、最小宽度等。这里是我想放置“裁剪”逻辑的地方:我决定裁剪哪一侧(以及裁剪本身)的计算