JavaScript只迭代前四个元素
JavaScript iterates through only the first four elements
//@*Displaying list of images and names-----------------------*@
@foreach (var item in Model) {
<div class="avatar-container">
<div class="img-thumbnail">
<img class="avatar img-thumbnail" src="@Href("~/Content/Avatars/",item.Name+".jpg")" />
</div>
@Html.DisplayFor(modelItem => item.Name)
</div>
}
//@*JavaScript------------------------------------------------*@
<script>
for (var i = 0; i < $(".avatar").length - 1; i++) {
if ($(".avatar")[i].naturalWidth > $(".avatar")[i].naturalHeight) {
$(".avatar").eq(i).addClass("landscape");
}
}
</script>
//@*CSS-------------------------------------------------------*@
div.avatar-container {
display: inline-block;
position: relative;
width: 70px;
height:70px;
overflow: hidden;
}
div.img-thumbnail{
width:100% !important;
height:100%;
background-color:#e1dada;
}
.img-thumbnail{
padding:1px !important;
}
.avatar {
position: absolute;
top: 50%;
left: 50%;
height: 100%;
width: auto;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
.landscape{
width:100%;
height:auto;
}
结果如下:我想要显示不同大小的头像看起来像这样漂亮。如果图像具有Width <= Height,那么我会将其显示为初始CSS,否则将其显示为"横向"。问题是前四张图片看起来很棒,但我不明白为什么最后两张没有选择风景类(最后两张图片的大小是一样的:3104x1746像素)。会不会是JavaScript出了什么问题?
i < $(".avatar").length - 1
是错误的,因为您省略了数组中的最后一项。数组索引是从0
到length - 1
,因为你在做i < length - 1
,你的循环从0
执行到2
(长度是4,所以i < 4-1
)省略索引3处的最后一个元素。
你可以用
$(".avatar").each(function () {
if (this.naturalWidth > this.naturalHeight) {
$(this).addClass("landscape");
}
})
让你的代码工作
for (var i = 0; i < $(".avatar").length; i++) {
//your code
}
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- Rails/Javascript链接到用于切换多个元素的函数
- 如何使用jquery animate来回移动多个元素
- 如何在jQuery中包装两个元素的组
- 在页面上创建多个元素,而不是一个发生更改的元素
- 无法使以下ng on click outside指令在同一页面上的两个元素上工作
- 在多个元素上使用jquery插件,只需稍作修改
- jQuery body onChange具有多个元素和多个函数
- Small Javascript从动态表单中删除多个元素的问题
- 是否可以在第n个元素处重复启动ng
- 角度指令:指向第二个元素
- 获取两个输入元素的值,并检查第三个元素的值.将值设置为第四个元素
- 如何使用 jquery 选择器获取第三个或第四个元素并设置其 id
- 第二,第三,第四,…使用CSS定位器定位量角器中的第八个元素
- 如何使用jQuery向每个元素添加类,除了每四个元素
- 使用jsp在表的一行中只显示四个元素
- 我只能在二维数组中添加三个元素,而不是四个
- JavaScript只迭代前四个元素
- jQuery每四个元素,除非最后一个
- 四个标签和文本框在同一行中,元素之间有一定的间距