【问题标题】:Edit the colour of a link on hover with javascript [duplicate]使用javascript编辑悬停时链接的颜色[重复]
【发布时间】:2021-01-26 02:51:31
【问题描述】:

这不是我在做的,只是发布代码的一种简单方法,但为什么这不起作用?

var links = 'hsla(40, 50%, 50%, 1)';

$('a:hover').css({'color' : links });

我应该如何编写 javascript 代码来完成这项工作?

【问题讨论】:

    标签: javascript html jquery css hyperlink


    【解决方案1】:

    去掉大括号,用逗号代替冒号:

    var links = 'hsla(40, 50%, 50%, 1)';
    
    $('a:hover').css('color', links);
    

    【讨论】:

    • 但是,除非值是可变的,否则您应该在类中而不是通过代码添加悬停样式?
    • 是的来自变量!
    • 好的 - 那么您可能想研究使用 css 变量而不是 javascript。看看:using css variables
    【解决方案2】:

    问题在于,当您的代码执行时,它会查找所有 当前 处于悬停状态的 a 元素,但它们都不是,所以什么也没有发生。一旦你真正将鼠标悬停在a 上,你需要运行的代码就已经完成了。

    相反,只需在 CSS 中执行此操作:

    a:hover { color: hsla(40, 50%, 50%, 1); }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <a href="#test">test</a>

    【讨论】:

      【解决方案3】:

      $('a:hover') 在执行时选择所有悬停的锚元素。而且它不一定会选择未来所有悬停的元素。

      使用mouseentermouseleave 事件

      var links = 'hsla(40, 50%, 50%, 1)';
      
      $('a').on({
        mouseenter: function() {
          $(this).css({ 'color': links })
        },
        mouseleave: function() {
          $(this).css({ 'color': 'rgb(85, 26, 139)' })
        }
      })
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      
      <a href>Link 1</a>
      <a href>Link 2</a>
      <a href>Link 3</a>

      使用 CSS 自定义属性(变量)

      var links = 'hsla(40, 50%, 50%, 1)';
      
      document.documentElement.style.setProperty('--hover-color', links);
      a {
        color: rgb(85, 26, 139);
      }
      
      a:hover {
        color: var(--hover-color, rgb(85, 26, 139));
      }
      <a href>Link 1</a>
      <a href>Link 2</a>
      <a href>Link 3</a>

      【讨论】:

      • 很好,这对我有用,谢谢!我有一些css表示选中的链接是灰色的,有没有办法改变上面的mouseleave,所以颜色恢复到原来的颜色(通常是白色,如果选中的话可能是灰色的。
      • 不是最佳实践,但只是用“灰色!重要的;'在css中
      猜你喜欢
      • 2017-07-14
      • 1970-01-01
      • 2023-04-10
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2016-05-01
      • 1970-01-01
      相关资源
      最近更新 更多