【问题标题】:switching opacity of a div onclick切换div onclick的不透明度
【发布时间】:2014-06-06 16:46:54
【问题描述】:

我希望点击文本链接时有 2 个动画:

  • 点击时显示一个div,再次点击时隐藏它(效果很好)
  • 将另一个 div 的不透明度更改为 0.5,并在再次单击时更改回不透明度(变回不透明度 =1)。

点击时不透明度有效,但在第二次点击时我无法让它回到 opacity=1。

我试过了:

.fadeTo,.fadeToggle,但我无法让它工作......

所以当点击“#edition2014”时,“.menu_edition_2014”会显示,“#menu”会以淡出动画淡入0.5,再次点击“#edition2014”时,“.menu_edition_2014”会隐藏,“#menu” " 淡入为 1,动画淡入淡出。

这是我的 Jquery:

$(document).ready(function() {
    $('#edition2014').click(function() {
            $('.menu_edition_2014').slideToggle("slow");
        $( '#menu' ).fadeTo( "fast", 0.5);
    });
});

这是一个 jsfiddle:http://jsfiddle.net/APA2S/1500/

非常感谢您的帮助,

【问题讨论】:

    标签: jquery css jquery-animate fadein fadeout


    【解决方案1】:

    问题是您正在切换幻灯片,但使用单个事件以一种方式切换淡入淡出。

    为什么不使用 CSS 解决方案并切换类?额外的好处是样式和内容的分离,因此如果您想在以后更改效果,可以轻松编辑您的 CSS。

    Demo Fiddle

    jQuery:

    $(document).ready(function() {
         $('#edition2014').click(function() {
                $('.menu_edition_2014').slideToggle("slow");
                $( '#menu' ).toggleClass('fade');
         });
    });
    

    CSS

    #menu{
        opacity:1;
        transition:opacity 0.5s ease-in;
    }
    #menu.fade{
        opacity:0.5;
    }
    

    【讨论】:

      【解决方案2】:

      你可以这样做

      $( '#menu' ).fadeTo( "fast", $('#menu').css("opacity") == "1" ? "0.5" : "1");
      

      【讨论】:

        【解决方案3】:

        试试这个:

        $('#edition2014').click(function() {
            var el = $('#menu');
            $('.menu_edition_2014').slideToggle("slow");
            if (el.css('opacity') == 1) {
                el.fadeTo("fast", .5);
            } else {
                el.fadeTo("fast", 1);
            }
        });
        

        JS Fiddle

        【讨论】:

          猜你喜欢
          • 2012-12-08
          • 2015-02-20
          • 1970-01-01
          • 2011-07-05
          • 2020-08-14
          • 1970-01-01
          • 2012-08-06
          • 2011-08-07
          • 2020-07-12
          相关资源
          最近更新 更多