javascript - 根据具有数据属性的类更改宽度/高度

标签 javascript jquery html css custom-data-attribute

我有以下 JS 代码,它根据 data-percentage HTML 属性的值更改 width:

var addRule = (function (sheet) {
  if(!sheet) return;
  return function (selector, styles) {
    if (sheet.insertRule) return sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length);
    if (sheet.addRule) return sheet.addRule(selector, styles);
  }
}(document.styleSheets[document.styleSheets.length - 1]));

var i = 101;
while (i--) {
  addRule("[data-percentage='" + i + "%']", "width:" + i + "%");
}

查看演示:http://jsfiddle.net/YYF35/

对于某些元素,我想更改它们的高度,而不是宽度

如何更改代码,以便根据 div 的类更改元素的高度或宽度(当然取决于 data-percentage 属性号) )?

我不想为它创建不同的 HTML 属性,如下所示:

while (i--) {
  addRule("[data-percentage-width='" + i + "%']", "width:" + i + "%");
  addRule("[data-percentage-height='" + i + "%']", "height:" + i + "%");
}

也可以使用 jQuery。有什么想法吗?

最佳答案

您的代码正在添加规则。如果您确实想这样做,只需添加更多规则:

var i = 101;
while (i--) {
  addRule("[data-percentage='" + i + "%'].change-width", "width:" + i + "%");
  addRule("[data-percentage='" + i + "%'].change-height", "height:" + i + "%");
}

现在,具有 change-width 类的元素将修改其 width,并且具有 change-height 类的元素将修改其 width height 已修改(如果您愿意,您可以同时使用两者)。

关于javascript - 根据具有数据属性的类更改宽度/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139479/

相关文章:

javascript - 如何从 jQuery 触发鼠标移动事件

JavaScript fullCalendar 插件读取 'applyAll' 在 gcal.js 中未定义

javascript - onclick 打开带有预设 html 的颜色框

MVC3 中的 jQuery Ajax POST

javascript - 如何在弹出警报中创建下拉按钮?

javascript - 如何使用 google gear 从 javascript 将 blob 数据存储在 sqlite 数据库中?

javascript - 我可以使用哪些方法来重新排列 javascript 函数的执行顺序?

html - 当内容框大小改变时换行 Div?

javascript - JQmodal 焦点不起作用

javascript - 为什么在javascript中将 '1'添加到变量中会添加 '3'