每个函数都有更多的代码,但是对于我相信的问题,这些是最重要的主线...这是从一个男生库中获得的,用于在翻转时基本降低图像的饱和度。

如何将其更改为单击,而不是鼠标悬停/鼠标悬停?这是他的代码...

jQuery(function($){
$cloned.closest(".DesaturateDiv").bind("mouseenter mouseleave",desevent);
}

  function desevent(event)
  {
    if (event.type == 'mouseenter')
         $(".des.color", this).fadeOut(275);

    if (event.type == 'mouseleave')
        $(".des.color", this).fadeIn(200);
  }


我已经尝试过将if语句更改为jquery切换,以及将顶行从.bind(“ mouseenter mouseleave”,desevent)...更改为.bind(“ toggle”,desevent),但它仍然无法正常工作。我的问题基本上是如何用mouseenter和mouseleave代替onClick,以便图像使onClick饱和,然后再次使onClick饱和。这是我输入的切换代码,而不是上面的两个if,以防万一。

$('.DesaturateDiv').toggle(function() {

$(".des.color", this).fadeOut(275);

}, function() {
$(".des.color", this).fadeIn(200);
});


另外,在相关说明中,您可以使用css3进行此操作吗?
这是使用css3使图像饱和的代码...

 img.desaturate{
filter: grayscale(100%);
-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%);
-ms-filter: grayscale(100%); -o-filter: grayscale(100%);
filter: url(desaturate.svg#greyscale);
filter: gray;
-webkit-filter: grayscale(1);
}


所以我的问题是怎么做?

我尝试了img.desaturate:active {},但是没有用?

编辑:我尝试了这一点,并认为这是我需要的,但是我确定语法不正确,帮助吗?

 function desevent(event)
  {
    i = 0;

    if( i = 0 ){
    if (event.type == 'mousedown')
         $(".des.color", this).fadeOut(275);
         i = 1;
    }

    if( i = 1 ){
    if (event.type == 'mousedown')
        $(".des.color", this).fadeIn(200);
                     i = 0;
    }
  }

最佳答案

只需将特定的类添加到clicked元素即可。

.desaturate{
    transition-duration: 400ms; //and other prefixes
}
.desaturate.active{
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%); -o-filter: grayscale(100%);
    filter: url(desaturate.svg#greyscale);
    filter: gray;
    -webkit-filter: grayscale(1);
}

10-05 18:09