帮助jQuery animate()

我正在使用此代码来更改用户打开和关闭图片时的不透明度,不幸的是,当用户单击图像时,不透明度不会保持为1.有人回答吗?

$(document).ready(function(){

  $('img#slide').animate({"opacity" : .7})
  $('img#slide').hover(function(){
      $(this).stop().animate({"opacity" : 1})
  },function(){
      $(this).stop().animate({"opacity" : .7})

  });                


  $('img#slide').click(function(){
    $(this).animate({"opacity" : 1});
  });

});
最佳答案
用户单击时,需要以某种方式禁用mouseleave动画.

一种常见的方法添加一个类,并让mouseleave检查该类的存在.

测试实时示例:http://jsfiddle.net/KnCmR/

$(document).ready(function () {

    $('img#slide').animate({ "opacity": .7 })

    .hover(function () {
        $(this).stop().animate({ "opacity": 1 })
    },function () {
        if ( !$(this).hasClass("active") ) {
            $(this).stop().animate({ "opacity": .7 });
        }
    })

    .click(function () {
        $(this).addClass("active");
    });
});

编辑:

如果您想再次单击以将行为恢复为原始状态,请使用toggleClass()而不是addClass():

        $(this).toggleClass("active");

jQuery文档:

> .hasClass()-http://api.jquery.com/hasClass
> .addClass()-http://api.jquery.com/addClass
> .toggleClass()-http://api.jquery.com/toggleClass

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...