javascript - 随着时间的推移改变链接的颜色(这样它就不会在刷新时开始新的循环)

标签 javascript jquery css

我正在尝试随着时间的推移循环使用彩虹色来更改链接的颜色。当您刷新时,颜色应该仍然与刚才相同,而不是开始新的循环(所以 CSS 动画对我来说也没有用)。

我正在尝试将此计算的颜色应用于链接的悬停功能。

  var h = ( 60 * ( color[0] + time ) % 360 ) / 360;
  materials[i].color.setHSL( h, color[1], color[2] );
  var time = Date.now() * 0.00005;

如有任何帮助,我们将不胜感激。

最佳答案

类似的东西?

var colors = [
  '#FF0000', // Red
  '#FF7F00', // Orange
  '#FFFF00', // Yellow
  '#00FF00', // Green
  '#0000FF', // Blue
  '#4B0082', // Indigo
  '#9400D3', // Violet
];

var link = document.getElementById('link');

function calculateColor() {
  var time = Math.floor(Date.now() / 1000);
  link.style.color = colors[time % colors.length];
}

calculateColor();
setInterval(calculateColor, 100);
<p><a id="link" href="#">Link</a></p>

如果你需要另一个频率而不是 1 秒,你可以将时间戳保留到下一个时间间隔......我不知道我是否说清楚了,因为我不知道如何解释它。它会是这样的:

var colors = [
  '#FF0000', // Red
  '#FF7F00', // Orange
  '#FFFF00', // Yellow
  '#00FF00', // Green
  '#0000FF', // Blue
  '#4B0082', // Indigo
  '#9400D3', // Violet
];

var link = document.getElementById('link');

var freq = 5; // seconds
var time = Math.floor(Date.now() / 1000);

function calculateColor() {
  var now = Math.floor(Date.now() / 1000);
  var offset = now - time;
  time = offset > freq ? now : time;
  link.style.color = colors[time % colors.length];
}

calculateColor();
setInterval(calculateColor, 100);
<p><a id="link" href="#">Link</a></p>

关于javascript - 随着时间的推移改变链接的颜色(这样它就不会在刷新时开始新的循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47608646/

相关文章:

javascript - 如何使用数组元素作为按钮标签动态创建单选按钮

jquery - 使用 Bootstrap 在某些设备上内联显示列表

javascript - 为什么 Node 中的 console.log(this) 返回一个空对象?

javascript - 对 document.documentElement 感到困惑

javascript - 为客户端搜索进行多参数过滤的优雅方法

PHP 似乎没有处理要发布到 MySQL 的脚本

HTML&CSS - 调整我所有图片的大小

CSS 字体仅适用于从同一基础扩展的某些 Django 模板

jquery - 我正在尝试 .load() 只有 1 个 div 但所有内容都已加载

javascript - chrome/safari(webkit?)在通过 Javascript .submit() 提交时不发布值