【问题标题】:How to make a transition effect that just perform like css transition?如何制作像css过渡一样的过渡效果?
【发布时间】:2014-09-19 02:52:04
【问题描述】:

当鼠标悬停在contentdiv 上时,我想制作一个非常常见的过渡效果,contentdiv 的背景图像会亮起,并且 div 内的infoheader 也会从左侧滑入.但是,由于我有 12 个,我不能将它们中的每一个命名为一个类/id,所以我不能(或者我不知道正确的方法)在 css 中做它们。

然后我尝试了jquery,并使用了

$(".container>.content").hover(function() { 

        $(this).find('.info').animate({
            "right": 0,
            "opacity": 1
        },200);
        $(this).find('img').animate({
            "opacity": 1
        },200);
    }, function() {
        $(this).find('.info').animate({
            "right": $(this).outerWidth(),
            "opacity": 0
        },200);
        $(this).find('img').animate({
            "opacity": 0
        },200);

    });

(我有 12 个 container div,每个都有一个 content 和一个 info 类)

基本上是mouseover和mouseleave的两组动画。

问题在于,与css过渡不同,鼠标进入/离开区域后,效果会在当前帧反转,jquery中的动画必须等到整个动画结束,这并不是真的在我的情况下工作。

有没有办法解决这个问题?

谢谢!

【问题讨论】:

    标签: jquery css-transitions


    【解决方案1】:

    如果我对您的理解正确,您可以通过 CSS 过渡和使用 :hover 轻松做到这一点。请参阅 this working model

    CSS:

    .content {
        font-size: 1.2em;
        padding: 5em;
    }
    .content .info {
        opacity: 0;
        transform: translateX(-100vw);
        transition: opacity .4s, transform .4s;
    }
    .content img {
        opacity: 0;
        transition: opacity .4s;
    }
    .content:hover .info {
        opacity: 1;
        transform: translateX(0);
    }
    .content:hover img {
        opacity: 1
    }
    

    【讨论】:

    • 您是否认为 OP 可能需要支持旧版浏览器?
    • @charlietfl 在他的原始帖子中,他写道:“但是,由于我有 12 个,我无法将它们中的每一个都命名为一个类/id,所以我可以” t(或者我不知道正确的方法)在 css 中执行它们。然后我尝试了 jquery ......“这似乎不是他关心的问题。
    • 好点子,因为 IE 直到 IE10 才开始支持,所以就把它扔掉了
    • @RyanMitchell@charlietfl 谢谢,我认为.content:hover img 会改变所有img 类,但看起来它只会改变悬停在上面的那个。另外,感谢关​​于不透明度的呼吁,是的,现在这不是太大的问题。
    • @YonL 它确实选择了当前悬停的.content 元素中的所有img 元素,因此如果您的.contents 中有多个图像,您可能需要更精细的选择器和不希望它们都被动画化。根据您的结构,您可能需要使用.content:hover img:first-child.content:hover img:first-of-type。 (见here。)有很多选择。
    猜你喜欢
    • 2014-03-18
    • 2019-03-26
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多