如何增加十六进制数

时间:2018-04-18 18:50:02

标签: javascript pseudo-element css-counter

我正在尝试在javascript中实现css计数器。 直到现在我已经看到大多数计数器具有一些初始十六进制值并相应地增加1。 对于循环计数器,它会重复。 但是cjk-decimal也是数字计数器的类型,它具有低于十六进制值。

.bat

那么有没有办法在javascript中将“\ 3007”增加到“\ 4E00”到n,以便按顺序生成相同的字符。

提前致谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,我不认为有直接的方法可以做到这一点。

看起来<ul><li>支持cjk-decimal符号集。

&#13;
&#13;
ul {
  list-style-type: cjk-decimal;
}
&#13;
<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>
&#13;
&#13;
&#13;

但是,如果您想在列表之外使用它,我认为您必须直接将符号映射到数字。也许是这样的:

&#13;
&#13;
const mappings = [
  "zero",
  "one",
  "two",
  "three",
  "four",
  "five",
  "six",
  "seven",
  "eight",
  "nine"
];

setInterval(() => {
  const cjk = document.querySelectorAll("[data-cjk]");
  for (let el of cjk) {
    let i = el.dataset.cjk;
    el.className = `cjk ${mappings[i++]}`;
    if (i >= mappings.length) {
      i = 0;
    }
    el.dataset.cjk = i;
  }
}, 1000);
&#13;
.cjk:after {
  display: inline-block;
}

.zero:after {
  content: "\3007";
}

.one:after {
  content: "\4E00";
}

.two:after {
  content: "\4E8C";
}

.three:after {
  content: "\4E09";
}

.four:after {
  content: "\56DB";
}

.five:after {
  content: "\4E94";
}

.six:after {
  content: "\516D";
}

.seven:after {
  content: "\4E03";
}

.eight:after {
  content: "\516B";
}

.nine:after {
  content: "\4E5D";
}
&#13;
<span data-cjk="1"></span>
&#13;
&#13;
&#13;