使用 JavaScript 淡化文本颜色

Posted

技术标签:

【中文标题】使用 JavaScript 淡化文本颜色【英文标题】:Fading text color using JavaScript 【发布时间】:2015-06-05 02:03:59 【问题描述】:

我有一个简单的脚本,可以在鼠标悬停在导航链接上时更改其颜色:

function fadeToNormal(element) 
    element.style.color = "#000000";


function fadeToSelected(element) 
    element.style.color = "#990099";

现在我想尝试“淡化”链接的颜色以获得更好看的过渡效果。有没有办法用纯 javascript 做到这一点?

【问题讨论】:

【参考方案1】:

你应该只用 CSS 来做。

.fade-effect
  transition: color 0.5s;
  color:#000000;

.fade-effect:hover
  color:#990099;
<a href="#" class="fade-effect">link #1</a>
<a href="#" class="fade-effect">link #2</a>

如果您必须使用 javascript 进行此操作,则必须将颜色分解为 RGB 值,手动/以编程方式为它们设置动画,同时将它们应用于相关元素。.

【讨论】:

谢谢,我不知道用 JavaScript 做起来这么难!这既简单又干净,我在这个主题上找不到任何直接的答案。我会把你的标记为答案。【参考方案2】:

这应该回答它: Fade Effect on Link Hover? 展示了几种方法,最常用和最现代的方法是使用第一个答案中发布的 CSS3-transitions:

 a 
   color:blue;
   /* First we need to help some browsers along for this to work.
      Just because a vendor prefix is there, doesn't mean it will
      work in a browser made by that vendor either, it's just for
      future-proofing purposes I guess. */
   -o-transition:.5s;
   -ms-transition:.5s;
   -moz-transition:.5s;
   -webkit-transition:.5s;
   /* ...and now for the proper property */
   transition:.5s;
 
 a:hover  color:red; 

【讨论】:

以上是关于使用 JavaScript 淡化文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

Swift iOS Sprite Kit - 将精灵从一种颜色淡化为另一种颜色[关闭]

如何淡化 UIView 背景颜色 - iOS 5

淡化 UILabel 的背景颜色? (静态展示)[重复]

以编程方式淡化颜色

使用 buttonPress 淡化 UIColor

jQuery:悬停链接时在div中动画(淡化)背景颜色或图像?