使用jquery更改不透明度和文本颜色

时间:2013-02-09 08:32:48

标签: jquery opacity

希望这个问题不是太傻......我还是初学者!

我正在尝试建立我的投资组合网站,可以在hellothisis.cc

看到

我的目标是让版权符号在几秒钟内完全不透明,然后降低到.1不透明度,我相信我成功了。代码可能是贫民窟,但它有效吗?我还希望它有一个悬停属性,当悬停在上面时,会将版权符号更改为完全不透明的红色,然后在移动鼠标时返回淡出的灰色。

到目前为止,这是我的代码,包括版权符号所具有的隐藏和点击功能。

<script type="text/javascript">

    $(document).ready(function() {
      $(".name").delay(1000).fadeTo('slow', 0.1, function() {
         $(".name").hover(function() {
             $(this).animate({ opacity: 1 });
             });
      });
    });

    $('.bio').hide();
    $('.name').click(function(){
        $('.bio').fadeToggle(1000);
    });
</script>

我现在的问题是,将鼠标悬停在褪色的灰色上后,即使将鼠标移开,它仍保持完全不透明度?非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

直接绑定,你不需要等待延迟+ fadeto完成(+如果有人在那个fadeto期间鼠标悬停它将回到不透明度1,这更符合逻辑imo

 $(".name").on({
          mouseover : function(e) {
                   $(this).stop().animate({ opacity: 1 });
         },
          mouseout : function(e) {
                   $(this).stop().animate({ opacity: 0.1 });
          }
 }).delay(1000).fadeTo('slow', 0.1);

编辑:按顺序排列

答案 1 :(得分:0)

您可以使用:

$(".name").hover(function() {
  $(this).animate({ opacity: 1 });
}, function(){
  $(this).animate({ opacity: .1 });
});

mouseenter事件触发时使用第一个函数,第二个函数在调用mouseleave事件时使用。

但我建议考虑将来event delegation,因为它会更好地为你服务。