Javascript 如何根据多个图像的外观顺序更改其宽度百分比?

Javascript 如何根据多个图像的外观顺序更改其宽度百分比?,javascript,jquery,css,Javascript,Jquery,Css,假设页面上有三个9*图像: <img src="..."> <img src="..."> <img src="..."> <img src="..."> <img src="..."> <img src="..."> <img src="..."> <img src="..."> <img src="..."> *举个例子,不会总是有9张图片,可能是5张或6张,等等 如何使图像的百

假设页面上有三个9*图像:

<img src="...">
<img src="...">
<img src="...">
<img src="...">
<img src="...">
<img src="...">
<img src="...">
<img src="...">
<img src="...">

*举个例子,不会总是有9张图片,可能是5张或6张,等等

如何使图像的百分比宽度符合以下顺序:

第一张图片:宽度:100%

第二幅图像:宽度:70%

第三幅图像:宽度:30%

重复


与此处所做的类似:

总的来说,对于页面上的每个图像,宽度必须为:

第一张图片100%,
70%用于第二张图像,
第三张图像的30%,
按此顺序对其他图像重复,例如:
第四张图片为100%,
70%用于第五张图像,
第六张图片30%,

我相信脚本将需要使用,虽然我不知道如何做到这一点

基本实施:

    <!DOCTYPE html>
    <html>
    <head>
    <style>
    img:nth-of-type(3n+0) { width: 100%; }
    img:nth-of-type(3n+1) { width: 70%; }
    img:nth-of-type(3n+2) { width: 30%; }

    </style>
    </head>
    <body>

<div class="page">

    <div class="i">
    <img src="http://e794d552b4c822b8205c-27b9cc3fb8731a4a7598943b8a8a6a91.r73.cf1.rackcdn.com/1/1/large.jpg">
    </div>
    <div class="i">
    <img src="http://e794d552b4c822b8205c-27b9cc3fb8731a4a7598943b8a8a6a91.r73.cf1.rackcdn.com/1/1/large.jpg">
    </div>
    <div class="i">
    <img src="http://e794d552b4c822b8205c-27b9cc3fb8731a4a7598943b8a8a6a91.r73.cf1.rackcdn.com/1/1/large.jpg">
    </div>

</div>
    </body>
    </html>

img:n类型(3n+0){宽度:100%;}
img:n类型(3n+1){宽度:70%;}
img:n类型(3n+2){宽度:30%;}

一些花哨的CSS3选择器应该可以做到这一点:

img:nth-of-type(3n+0) { width: 100%; }
img:nth-of-type(3n+1) { width: 70%; }
img:nth-of-type(3n+2) { width: 30%; }


请注意,这在IE8或更早版本中不起作用,为此,您可能需要使用JavaScript解决方案。

一些花哨的CSS3选择器应该可以做到这一点:

img:nth-of-type(3n+0) { width: 100%; }
img:nth-of-type(3n+1) { width: 70%; }
img:nth-of-type(3n+2) { width: 30%; }


请注意,这在IE8或更早版本中不起作用,为此,您可能需要使用JavaScript解决方案。

一些花哨的CSS3选择器应该可以做到这一点:

img:nth-of-type(3n+0) { width: 100%; }
img:nth-of-type(3n+1) { width: 70%; }
img:nth-of-type(3n+2) { width: 30%; }


请注意,这在IE8或更早版本中不起作用,为此,您可能需要使用JavaScript解决方案。

一些花哨的CSS3选择器应该可以做到这一点:

img:nth-of-type(3n+0) { width: 100%; }
img:nth-of-type(3n+1) { width: 70%; }
img:nth-of-type(3n+2) { width: 30%; }


请注意,这在IE8或更早版本中不起作用,您可能需要使用JavaScript解决方案。

这将为页面中的所有图像设置相应的宽度,因此调整
$(“img”)
中的查询以仅匹配所需的图像

var sizes = ["100%", "70%", "30%"];
$("img").each(function (idx, elem) {
  elem.width = sizes[idx % sizes.length];
});

这将相应地设置页面中所有图像的宽度,因此调整
$(“img”)
中的查询以仅匹配所需的图像

var sizes = ["100%", "70%", "30%"];
$("img").each(function (idx, elem) {
  elem.width = sizes[idx % sizes.length];
});

这将相应地设置页面中所有图像的宽度,因此调整
$(“img”)
中的查询以仅匹配所需的图像

var sizes = ["100%", "70%", "30%"];
$("img").each(function (idx, elem) {
  elem.width = sizes[idx % sizes.length];
});

这将相应地设置页面中所有图像的宽度,因此调整
$(“img”)
中的查询以仅匹配所需的图像

var sizes = ["100%", "70%", "30%"];
$("img").each(function (idx, elem) {
  elem.width = sizes[idx % sizes.length];
});

这将在IE8中起作用,尽管它的可维护性较差,也不是很性感。这假设您的图像是元素(例如DIV)中的唯一项目:


这将在IE8中起作用,尽管它的可维护性较差,也不是很性感。这假设您的图像是元素(例如DIV)中的唯一项目:


这将在IE8中起作用,尽管它的可维护性较差,也不是很性感。这假设您的图像是元素(例如DIV)中的唯一项目:


这将在IE8中起作用,尽管它的可维护性较差,也不是很性感。这假设您的图像是元素(例如DIV)中的唯一项目:



你能显示自己做这件事的尝试吗?你能显示自己做这件事的尝试吗?你能显示自己做这件事的尝试吗?你能显示自己做这件事的尝试吗?谢谢,但这似乎使每个图像的宽度都达到了70%@Osman你是如何使用它的?您是将其放置在
元素中还是从
中删除的CSS文件中?你能提供一个简单的工作示例来说明这个问题吗?我已经编辑了这个问题的描述,我发现只有当所有图像都放在同一个div中时(因此描述中的代码就不起作用了)@Osman尝试类似于
div.I:nth of type(…)img
的方法来代替选择器。(很抱歉回复太晚;我现在有点忙,正在移动中)
。post:nth类型(3n+0)img{width:30%;}
-效果非常好!谢谢,但这似乎让每一张图片都有70%的宽度@Osman你怎么用这个?您是将其放置在
元素中还是从
中删除的CSS文件中?你能提供一个简单的工作示例来说明这个问题吗?我已经编辑了这个问题的描述,我发现只有当所有图像都放在同一个div中时(因此描述中的代码就不起作用了)@Osman尝试类似于
div.I:nth of type(…)img
的方法来代替选择器。(很抱歉回复太晚;我现在有点忙,正在移动中)
。post:nth类型(3n+0)img{width:30%;}
-效果非常好!谢谢,但这似乎让每一张图片都有70%的宽度@Osman你怎么用这个?您是将其放置在
元素中还是从
中删除的CSS文件中?你能提供一个简单的工作示例来说明这个问题吗?我已经编辑了这个问题的描述,我发现只有当所有图像都放在同一个div中时(因此描述中的代码就不起作用了)@Osman尝试类似于
div.I:nth of type(…)img
的方法来代替选择器。(很抱歉回复太晚;我现在有点忙,正在移动中)
。post:nth类型(3n+0)img{width:30%;}
-效果非常好!谢谢,但这似乎让每一张图片都有70%的宽度@Osman你怎么用这个?您是将其放置在
元素中还是从
中删除的CSS文件中?你能提供一个简单的工作示例来说明这个问题吗?我已经编辑了这个问题的描述,我发现只有当所有图像都放在同一个div中时(因此描述中的代码就不起作用了)@Osman尝试类似于
div.I:nth of type(…)img
的方法来代替选择器。(很抱歉回信晚了,我有点忙