CSS:鼠标移出时的过渡不透明度?

Posted

技术标签:

【中文标题】CSS:鼠标移出时的过渡不透明度?【英文标题】:CSS: transition opacity on mouse-out? 【发布时间】:2012-05-20 21:21:42 【问题描述】:
.item:hover 
        zoom: 1;
        filter: alpha(opacity=50);
        opacity: 0.5;
        -webkit-transition: opacity .15s ease-in-out;
        -moz-transition: opacity .15s ease-in-out;
        -ms-transition: opacity .15s ease-in-out;
        -o-transition: opacity .15s ease-in-out;
        transition: opacity .15s ease-in-out;
    

为什么这只会在我悬停时为不透明度设置动画,而当我用鼠标离开对象时却没有?

在这里演示:https://jsfiddle.net/7uR8z/

【问题讨论】:

我使用的是 Safari,即使我用鼠标离开对象,它也能正常工作......有什么问题? 不,对我不起作用!当我悬停红色框时,过渡有效!当用鼠标离开红色框时,它会“跳”回完全不透明度 - 我希望它在鼠标移出时也能动画! 为什么不使用过滤器...caniuse.com/#search=filter 【参考方案1】:
$(window).scroll(function()     
    $('.logo_container, .slogan').css(
        "opacity" : ".1",
        "transition" : "opacity .8s ease-in-out"
    );
);

检查小提琴:https://jsfiddle.net/2k3hfwo0/2/

【讨论】:

【参考方案2】:

您仅将转换应用于 :hover 伪类,而不是元素本身。

.item    
  height:200px;
  width:200px;
  background:red; 
  -webkit-transition: opacity 1s ease-in-out;
  -moz-transition: opacity 1s ease-in-out;
  -ms-transition: opacity 1s ease-in-out;
  -o-transition: opacity 1s ease-in-out;
  transition: opacity 1s ease-in-out;


.item:hover 
  zoom: 1;
  filter: alpha(opacity=50);
  opacity: 0.5;

演示:https://jsfiddle.net/7uR8z/6/

如果您不希望转换影响mouse-over 事件,而只影响mouse-out,您可以关闭:hover 状态的转换:

.item:hover 
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
  zoom: 1;
  filter: alpha(opacity=50);
  opacity: 0.5;

演示:https://jsfiddle.net/7uR8z/3/

【讨论】:

【参考方案3】:

我设法使用 css/jQuery 找到了一个我觉得很舒服的解决方案。最初的问题:我不得不在制作动画时强制显示可见性,因为我有元素悬挂在该区域之外。这样一来,大块文本现在也会在动画期间悬挂在内容区域之外。

解决方案是以不透明度 0 开始主要文本元素,然后使用 addClass 注入并转换为不透明度 1。然后再次单击时 removeClass

我确信有一个全 jQquery 方法可以做到这一点。我只是不适合这样做。 :)

所以这是最基本的形式...

.slideDown().addClass("load");
.slideUp().removeClass("load");

感谢大家的帮助。

【讨论】:

以上是关于CSS:鼠标移出时的过渡不透明度?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:鼠标悬停时淡入图像,鼠标移出时淡出

使用 CSS3 悬停时的背景图像不透明度过渡

鼠标移入移出改变透明度

js动画透明度Debug

鼠标移入移出透明度变化效果

jQuery 悬停 mouseover/mouseout 计时