javascript - 基于来自 JSON 的图像数组设置图像样式

标签 javascript jquery html css json

我正在尝试编写代码以在 JSON 文件中显示来自 CMS 的图像。

JSON 文件应该是这样的

{  
 "images": [
  {"title": "Image One", "url": "image1.jpg"},
  {"title": "Image Two", "url": "image2.jpg"},
  {"title": "Image Three", "url": "image3.jpg"},
  {"title": "Image Four", "url": "image4.jpg"},
  {"title": "Image Five", "url": "image5.jpg"}
 ]
}

HTML 应该是这样的

<ul id="mylist"></ul>

正在加载的图像数量是动态的。它可以是 3、4 或 5 中的任何一个。以下是每个布局的外观。

  • 对于三张图片,每张图片应占宽度的 33% enter image description here
  • 对于四张图片,每张图片应占宽度的 50%,分两行 enter image description here
  • 五张图片,上面三张,每张占33%,第二行剩下两张分别占33%和33%。 enter image description here

有谁知道如何使用 JavaScript、jQuery、mustache 等实现这一点???

最佳答案

这听起来像是基础数学,如果你有偶数个图像,你需要两列,如果你有奇数个图像,你需要三列。

一旦知道了列数,得到行数就是除法和四舍五入的问题了

var numb = obj.images.length;

var cols = numb % 2 === 0 ? 2 : 3;
var rows = Math.ceil(numb / cols);

FIDDLE

将其更改为宽度很容易

var numb = obj.images.length;

var width = numb % 2 === 0 ? '50%' : '33%';

$('.images').css('width', width)

关于javascript - 基于来自 JSON 的图像数组设置图像样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35168775/

相关文章:

javascript - 未捕获的类型错误 : undefined is not a function

javascript - jQuery Accordion DOM

javascript - 如何制作 Jquery 菜单生成器

jQuery:在 jqGrid 中是否可以重新排序工具栏按钮

底部的 HTML/CSS 菜单与中间的图像冲突

javascript - 主干 Json View 模板

javascript - 使单词跳动并随机改变位置

javascript - 对于两个重叠的 Canvas ,我可以将鼠标事件传递给底部的 Canvas 吗?

javascript - JS 类型错误 : Cannot read property 'style' of null - Chrome

java - 从 servlet 更新数据