【问题标题】:Dynamic width of image for specific container width only仅针对特定容器宽度的图像动态宽度
【发布时间】:2013-07-14 07:24:41
【问题描述】:

图像容器 div "imagebox" 包含带有图像的列表项。

CSS:

   ul.imagebox {
    width =100%;
    min-height:1000px;
    margin:0
    }

    li.image{
    float:left;
}

html

<ul class="imagebox"> 
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
<li class="image"><a><img src ="Images/Image1.jpg"/></a></li>
</ul>

实际图片尺寸为 400 像素 x 300 像素。现在我想使用 jQuery 动态设置 img src 的宽度和高度,因此 imagebox div 仅包含 5 个图像/行。我只想为超过 1024 的窗口宽度动态设置它。因此,即使窗口宽度为 1600 并且窗口大小调整为 1024,图像宽度和高度也会调整大小以保持每行的图像数量。

jQuery

$(window).ready (function(){
var imagebox = $("ul#imagebox").width();
var image_width = (imagebox/5);
var image_height = (image_width * 0.75);

});

我使用 jQuery 获得了 img src 所需的宽度和高度。指导我为img scr 设置此窗口宽度超过 1024(最初是文档加载或在窗口调整大小之后)。 在小于 1024 的窗口宽度以下(对于响应式设计),我希望每行有任意数量的图像(可能是 4、3 或 2),没有任何间隙。

所以我想实现

  1. 动态宽度和高度参数仅适用于宽度大于 1024 的窗口。
  2. 对于窗口宽度小于 1024 的图像宽度和高度,使用 css3 媒体查询

【问题讨论】:

  • 试试这个jsfiddle.net/BkLfK/1
  • 您可以将 width: 20% 添加到图像
  • 20% 时我可以得到 5 张图像/行,但我想设置 5 张图像/行,窗口宽度仅为 1024 像素。在这个宽度之下,我想使用 css3 为不同屏幕宽度的图像设置静态宽度高度
  • @Fags --> 感谢您的帮助。但是您已经设置了静态宽度和高度,因此仍然存在间隙。我想占据整个图像框,这就是我要设置动态宽度和高度的原因,所以即使调整窗口大小后也不会出现间隙。

标签: jquery html css responsive-design


【解决方案1】:

我认为这会有所帮助。如果window size is &gt; 1024,下面的代码将更改your_images 的高度和宽度,并在调整窗口大小和准备好文档时运行。

$(document).ready(function() {
   changeSize();
});
$(window).resize(function() {
    changeSize();
});

function changeSize() {
   var docw = $(document).width();

   var imagebox = $(".imagebox").width();
   var image_width = (imagebox / 5);
   var image_height = (image_width * 0.75);

   if(docw >= 1024){
     $("your_images").width(image_width);
     $("your_images").height(image_height);
   }
}

【讨论】:

  • @galexy 检查我的编辑。每次调整窗口大小时都会运行第二组代码。查看我提供的链接以获取更多信息。如果你想使用我提供的代码,你需要合适的选择器。
  • 只要确保您使用正确的选择器,一切顺利。如果您遇到问题,请发表评论。
  • @galexy 我做了一些改变。将您的代码从 var imagebox = $("ul#imagebox").width(); 更改为 var imagebox = $(".imagebox").width(); 我编辑了我的答案。顺便说一句,将您的 css width =100%; 更改为 width:100%;
  • 我做到了,您的代码仅在调整窗口大小时工作正常。只想知道最初如何设置宽度高度。最初我得到的图像具有原始尺寸(400 x 300)和 jquery 宽度和高度仅在调整大小后设置。
  • @galexy 您是否也包含了第一段代码?因为你需要both blocks 的代码才能工作。第一个代码块在page ready 期间,第二个代码块在page resize 期间。我前一阵子都试过了,它对我有用。
猜你喜欢
  • 1970-01-01
  • 2013-02-21
  • 2018-01-13
  • 1970-01-01
  • 2020-10-29
  • 2010-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多