淡入图像,直到单击另一个图像

Posted

技术标签:

【中文标题】淡入图像,直到单击另一个图像【英文标题】:Fade in image until another image is clicked 【发布时间】:2016-04-16 20:41:56 【问题描述】:

目前我将每个图像的不透明度设置为 0.5,但是当我单击一个图像时,我希望它更改为 1,然后在单击另一个图像时返回到 0.5。我还有一个悬停功能,可以在悬停时改变不透明度,这两个功能会相互干扰吗?

我现在有

$(document).ready(function()
    $("#nav li a").hover(function() 
        $(this).animate(opacity: '1', "slow");
    , function () 
        $(this).animate(opacity: '0.5', "slow");
    );
);

html

<div id="tabmenu">
    <ul id="nav">
        <li><a href="#" class="active">Pavan Suryaprakash</a></li>
        <li><a href="#">Nikhil Bansal</a></li>
        <li><a href="#">A D Dheeraj</a></li>
        <li><a href="#">Rohan Chawla</a></li>
        <li><a href="#">Neelam Agarwal</a></li>
        <li><a href="#">Ipshita Ghoshdastidar</a></li>
        <li><a href="#">Sumit Kumar</a></li>
        <li><a href="#">Abhimanyu Sharma</a></li>
        <li><a href="#">Vivek Ranjan Gupta</a></li>
        <li><a href="#">Shrish Mishra</a></li>
        <li><a href="#">Priyadarshini</a></li>
        <li><a href="#">Rajesh Dass</a></li>
        <li><a href="#">Gaurav Prakash Pandey</a></li>
        <li><a href="#">Diana Varghese</a></li>
        <li><a href="#">Sagar Dharwar</a></li>
        <li><a href="#">Saloni Chadha</a></li>
        <li><a href="#">Subhra Shaw</a></li>
        <li><a href="#">Sweety Gupta</a></li>
        <li><a href="#">Trishendu Deb</a></li>
        <li><a href="#">Gunjan Tekriwal</a></li>
        <li><a href="#">Rakesh Sahu</a></li>
        <li><a href="#">Karthik Sivaraman</a></li>
        <li><a href="#">Sumit Vats</a></li>
        <li><a href="#">Subhash Agarwal</a></li>
        <li><a href="#">Bina Rajput</a></li>
    </ul>

点击处理程序

$("#nav li a").click(function() 
        $(this).animate(opacity: '1', "slow");
    );

【问题讨论】:

也发布一些html 也显示点击处理程序。 @AlexBay 我已经添加了 有锚标签没有图片显示。 @ketan 将图片加载到 a 标签中 【参考方案1】:

为什么不保持简单,而是使用带有简单 javascript 的 CSS 动画?

http://codepen.io/vincentccw/pen/wMeXvB

对于你的 CSS:

a
 -webkit-transition: opacity 0.4s ease;
 -moz-transition: opacity 0.4s ease;
 -o-transition: opacity 0.4s ease;
 transition: opacity 0.4s ease;


#nav li a
  opacity:.5;


#nav li a.currentClick
  opacity:1;


#nav li a:hover
  opacity:1;

对于您的 JavaScript:

$(document).ready(function()

  $("#nav li a").click(function() 
      $("#nav li a").removeClass("currentClick");
      $(this).addClass("currentClick");
  );

);

如果您使用的是图像,只需将 &lt;a&gt; 元素替换为您的图像,因为 CSS 不透明度也适用于图像。

【讨论】:

而且 css 比 javascript 更快!很好的例子! @Zorken17 这就是 css3 的用途 ;-) @Vincent1989 谢谢这种方式似乎更简单,我现在已经尝试过了,但是当我点击它时,一旦我将鼠标从图像上移开,它就会变回 0.5 已排序,已被覆盖,谢谢!【参考方案2】:

如果您需要新动画覆盖正在运行的动画,请使用$(this).stop().animate(...)。这将避免旧动画一直执行到结束并立即开始新动画。

【讨论】:

【参考方案3】:

试试这个:

$(document).ready(function()
    $("#nav li a").hover(function() 
        $(this).stop().animate(opacity: '1', "slow");
    , function () 
        $(this).stop().animate(opacity: '0.5', "slow");
    );
);

【讨论】:

以上是关于淡入图像,直到单击另一个图像的主要内容,如果未能解决你的问题,请参考以下文章

如何根据另一个文件的下载进度淡入 UIImage

如何保持一个图像按钮处于活动状态,直到单击另一个

使用另一个图像淡入/淡出背景图像/淡出其他元素

平滑图像淡出,改变src,用jquery淡入

jQuery 为 div 设置动画,同时淡入和淡出触发器

使用 Jquery 为 swf 文件交换图像