【问题标题】:How to use Jquery animate function with links that are styled in a class?如何将 Jquery animate 函数与类中样式的链接一起使用?
【发布时间】:2013-12-20 06:48:54
【问题描述】:

我正在寻找正确的语法来完成这项工作。 事情很简单,只需根据网页的颜色主题为链接(链接、悬停、访问和活动)选择不同的颜色。

让我们看看:

CSS

.DarkTheme a
{
    color: #66cccc;
}

.DarkTheme a:visited
{
    color: #66FF99;
}

.DarkTheme a:hover
{
    color: #AAFFCC;
}

.DarkTheme a:active
{
    color: #FFFFFF;
}

JQUERY(我也在使用 JqueryColor,因为我使用的是颜色过渡,但这只是为了澄清这个问题不是问题):

正确的语法如何!!?

function ChangeLinkColors()
{
    $("a.DarkTheme:link").animate({"color":"#00FF0F"}, 2000);
    $("a.DarkTheme:visited").animate({"color":"#0F00FF"}, 2000);
    $("a.DarkTheme:hover").animate({"color":"#F0FF0F"}, 2000);
    $("a.DarkTheme:active").animate({"color":"#00FFFF"}, 2000);
}

这不起作用。

function ChangeLinkColors()
{
    $(".DarkTheme a:link").animate({"color":"#00FF0F"}, 2000);
    $(".DarkTheme a:visited").animate({"color":"#0F00FF"}, 2000);
    $(".DarkTheme a:hover").animate({"color":"#F0FF0F"}, 2000);
    $(".DarkTheme a:active").animate({"color":"#00FFFF"}, 2000);
}

这不起作用!。

上面这两个相同,但“颜色”字没有引号,都不起作用。

function ChangeLinkColors()
{
    $("a:link", $(".DarkTheme")).animate({"color":"#0000FF"}, 2000);
    $("a:visited", $(".DarkTheme")).animate({"color":"#0F00FF"}, 2000);
    $("a:hover", $(".DarkTheme")).animate({"color":"#F0FF0F"}, 2000);
    $("a:active", $(".DarkTheme")).animate({"color":"#00FFFF"}, 2000);
}

这是“我不会工作”方法的另一种方式...带或不带引号 con color 参数...

Herejquery动画的文档:

其中一些方法“看起来”有效,但并非完全改变颜色(linkvisitedhoveractive 之间没有区别)。

有人知道正确的方法吗?

我没有想法。

【问题讨论】:

  • 这可以在纯 CSS 中完成。查看 Css3 动画
  • plzz 提及您的 HTML 部分或为此制作小提琴,因为这是此 $('selector').animate({"color":"#CCC","font-size" 的正确语法: "52pt"}, 1000);
  • 雅什帕特尔。没有 html 内容,所有内容都是通过 Javascript 动态创建的。但重点是: $('selector''mouse state'?'class'?).animate({"color":"#CCC","font-size":"52pt"}, 1000); MarianCJC,让我看看你的例子,看起来很有趣。
  • 好的,我知道它是如何工作的。现在有效,但实际上,它是不正确的。当您从一个主题转到另一个主题并将鼠标悬停在已访问的链接上时,“未访问”链接颜色也会出现。这不是我真正要寻找的行为。事实可能会在选项之间使用“接近”颜色来“掩盖”效果,但它仍然是错误的。 JQuery 是要走的路,但我还是不知道正确的语法!!

标签: jquery hyperlink hover jquery-animate visited


【解决方案1】:

此任务不需要 JQuery。你可以使用CSS3 transition

试试这个:

a {
    color: #fff;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

a:hover {
    color: #ff000;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

.dark a {
    color: #ff0000;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

.dark a:hover {
    color: #000;
    -webkit-transition: all 0.3s;
    -moz-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

http://jsfiddle.net/8yQ6D/3/

【讨论】:

  • 这样鼠标一走我就无法保持颜色了!
【解决方案2】:

是的,玛丽安,但请注意我之前所说的,颜色从一个变为另一个的变化并不正确,例如:

链接:红色 悬停:青色 访问:蓝色

如果访问的链接(蓝色),当您将鼠标悬停时,它不会从蓝色变为青色,而是突然变为红色,然后平滑变为青色,反之亦然,当鼠标离开时(从青色顺利变红,又突然变蓝)。这是不正确的。

只需在 Fiddle 中尝试一下您自己的示例,获取一个主题,使用我指定的颜色(很容易看到从蓝色到红色的残酷变化,而不是平滑的蓝色到青色,并在 1 秒时保留过渡, 看它没有问题。)

不管怎样,谢谢你在这里,帮助我,非常感谢。

【讨论】:

    【解决方案3】:

    为了根据配色方案更改处于不同状态(已访问、活动)的链接的颜色,首先确保您的 CSS 文件中已准备好配色方案,并且每个方案都依赖于一个单独的类。

    有了这些,您的主题选择器只需要更改一个容器元素类(可能是主体)。

    这是 CSS 中的主题的样子:

    /*THEME 1*/
    .theme_1 a{
        text-decoration: none;
        background-color: orange;
        -webkit-transition: all 0.3s;
        -moz-transition: all 0.3s;
        -o-transition: all 0.3s;
        transition: all 0.3s;
    }
    .theme_1 a:active{
        border: 1px dashed blue;
    }
    .theme_1 a:visited{
        color: green;
    }
    .theme_1 a:hover{
        background-color: red;
    }
    

    仅使用 jQuery 来更改容器。 JSFIDDLE example

    编辑:为什么 CSS 动画优于 jQuery 动画?

    A:我通常不喜欢只使用一种解决方案。但在这种情况下,由于:hover:active 的易变性特性,CSS 动画是可行的方法,尤其是当您谈论动态颜色主题转换时。您也不能在 JavaScript 中选择 visited 链接

    【讨论】:

    • @Reaversword 如果我今天晚些时候有时间,我将更新我的示例,以包括适当的鼠标交互动画
    猜你喜欢
    • 2014-11-15
    • 1970-01-01
    • 2020-04-24
    • 2022-04-27
    • 2015-09-04
    • 2019-08-20
    • 1970-01-01
    • 2013-12-22
    • 2015-05-09
    相关资源
    最近更新 更多