首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >portfolio list中的断开的animate()算法

portfolio list中的断开的animate()算法
EN

Stack Overflow用户
提问于 2014-03-30 21:29:51
回答 1查看 36关注 0票数 0

html

代码语言:javascript
复制
<ul class="wrap">
    <li title="Lorem ipsum dolor sit amet"></li>
    <li title="consectetur adipisicing elit"></li>
    <li title="incididunt ut labore et dolore magna aliqua"></li>
    <li title="Ut enim ad minim veniam"></li>
    <li title="quis nostrud exercitation ullamco"></li>
    <li title="laboris nisi ut aliquip ex ea commodo"></li>
    <li title="Duis aute irure dolor in reprehenderit"></li>
    <li title=" Excepteur sint occaecat cupidatat non"></li>
    <div class="sub">
        <div class="bg"></div>
    </div>
</ul>

CSS

代码语言:javascript
复制
*{
    padding: 0;
    margin: 0;
    border: none;
}

body{
    padding: 100px;
}


ul{
    list-style: none;
    overflow: hidden;
    position: relative;
}

li{
    width: 220px;
    height: 220px;
    background: rgba(0, 0, 0, 0.6);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    float: left;
    margin-right: 20px;
    margin-bottom: 20px;
    display: block;
}

.sub{
    width: 210px;
    height: 210px;
    background: #ff3030;
    color: #fff;
    padding: 5px;
    position: absolute;
    display: none;
}

JQUERY

代码语言:javascript
复制
var li = $('.wrap').children('li'),
    sub = $('.sub');

li.on('mouseover', function() {
    sub.show();
    var left = $(this).offset().left,
        top = $(this).offset().top,
        text = $(this).attr('title'),
        bg = $('.bg');
    sub.stop().animate({
        left: left - $('.wrap').offset().left,
        top: top - $('.wrap').offset().top 
    });
    bg.stop().animate({
        opacity: 0
    }, function() {
        bg.text(text);
        bg.animate({
            opacity: 1
        });
    });
}).on('mouseleave', function() {
    sub.fadeOut();
});

这是fiddle http://jsfiddle.net/GTHM4/

而且它在全宽http://jsfiddle.net/GTHM4/embedded/result/中看起来更好

正如你所看到的,问题出在“坏”的工作“mouseleave”事件中,而div "bg“总是”想要“离开……怎么了?

EN

回答 1

Stack Overflow用户

发布于 2014-03-30 21:58:25

它工作正常

代码语言:javascript
复制
var li = $('.wrap').children('li'),
            sub = $('.sub'),
    wrap = $('.wrap');

        wrap.on('mouseover','li', function() {
            sub.show();
            var left = $(this).offset().left,
                top = $(this).offset().top,
                text = $(this).attr('title'),
                bg = $('.bg');
            sub.stop().animate({
                left: left - $('.wrap').offset().left,
                top: top - $('.wrap').offset().top 
            });
            bg.stop().animate({
                opacity: 0
            }, function() {
                bg.text(text);
                bg.animate({
                    opacity: 1
                });
            });
        }).on('mouseleave', function() {
            sub.fadeOut();
        });

演示http://jsfiddle.net/fazalrasel/GTHM4/1/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22744551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档