百度图片搜索页的图片展示列表模块jquery效果

<ul class="main">
    <li>
        <div class="li_div">
            <a href="#"><img src="1.jpg" width="100%" alt="" /></a>
            <div class="tagbox">
                <ul class="tags">
                    <li class="tit"><a href="#">美女</a></li>
                    <li><a href="#">苍井空</a></li>
                    <li><a href="#">松岛枫</a></li>
                    <li><a href="#">范冰冰</a></li>
                    <li><a href="#">苍井空</a></li>
                    <li><a href="#">松岛枫</a></li>
                    <li><a href="#">范冰冰</a></li>
                </ul>
            </div>
        </div>
    </li>
    <li>
        <div class="li_div">
            <a href="#"><img src="1.jpg" width="100%" alt="" /></a>
            <div class="tagbox">
                <ul class="tags">
                    <li class="tit"><a href="#">美女</a></li>
                    <li><a href="#">苍井空</a></li>
                    <li><a href="#">松岛枫</a></li>
                    <li><a href="#">范冰冰</a></li>
                </ul>
            </div>
        </div>
    </li>
    <li>
        <div class="li_div">
            <a href="#"><img src="1.jpg" width="100%" alt="" /></a>
            <div class="tagbox">
                <ul class="tags">
                    <li class="tit"><a href="#">美女</a></li>
                    <li><a href="#">苍井空</a></li>
                    <li><a href="#">松岛枫</a></li>
                    <li><a href="#">范冰冰</a></li>
                </ul>
            </div>
        </div>
    </li>
    <li>
        <div class="li_div">
            <a href="#"><img src="1.jpg" width="100%" alt="" /></a>
            <div class="tagbox">
                <ul class="tags">
                    <li class="tit"><a href="#">美女</a></li>
                    <li><a href="#">苍井空</a></li>
                    <li><a href="#">松岛枫</a></li>
                    <li><a href="#">范冰冰</a></li>
                </ul>
            </div>
        </div>
    </li>
</ul>
*{ margin:0; padding:0; font-size:12px;}
img{ border:0;}
ul{ list-style:none;}
.main{ width:300px; height:180px; margin:20px auto;}
.main li{ position:relative; float:left; width:150px; height:90px; background:#000;}
.li_div{ position:absolute; width:150px; height:90px; overflow:hidden;}
.cur{ z-index:100; box-shadow:0 0 5px #000;}
.cur img{ opacity:1; *filter:alpha(opacity=100);}
.not_cur{ opacity:.5; *filter:alpha(opacity=50);}
.tagbox{ position:absolute; left:0; bottom:0; width:46px; height:21px; overflow:hidden; border-radius:0 11px 11px 0; background:#252525; opacity:.5; *filter:alpha(opacity=50);}
.tags{ display:block; width:100%; height:21px; overflow:hidden; color:#f7f7f7;}
.tags li{ float:left; width:42px; text-align:center; background:transparent;}
.tags a{ display:block; line-height:21px; color:#f7f7f7; text-decoration:none; padding:0 3px;}
.tags li.tit{ width:65px; text-align:left;}
.tags li.tit a{ padding:0 10px; font-weight:bold;}
$(function(){
    $(".li_div").each(function(i, target){
        $(target).mouseenter(function(e){
            //stop current animation
            $(target).stop();
            $(target).find(".tagbox").stop(false, true);
            $(target).parent().addClass("cur");
            $(".li_div").not($(target)).addClass("not_cur");
            $(target).find(".tagbox").animate({width:"211px"}, "normal");
            $(target).animate({width:"200px", height:"120px",top:"-15px",left:"-25px"},"normal");
        });
        $(target).mouseleave(function(e){
            $(target).stop();
            $(target).find(".tagbox").stop(false, true);
            $(target).parent().removeClass("cur");
            $(".li_div").not($(target)).removeClass("not_cur");
            $(target).find(".tagbox").animate({width:"46px"}, "normal");
            $(target).animate({ width:"150px", height:"90px", top:"0", left:"0"}, "normal");
        });
    });
});

point:

* 使用了jquery的mouseenter,mouseleave方法,避免了事件冒泡可能出现的冲突

* 图片外框使用relative,图片实际模块absolute到(实际放大图片-初始图片)/2的left和top的负值来实现绝对居中

* ie6-8还有border-radius圆角无法实现,猜测百度应该是hack一张圆角背景图片的

* 百度上是底色白色的,这样非焦点图片有很淡很模糊的效果,我增加li外框大块元素底色为黑色,这样的话非当前图片的时候0.5的透明度衬合黑色底色刚好突出当前的高亮

原文转至:百度图片搜索效果

posted @ 2013-02-27 11:49  Joerias  阅读(503)  评论(0编辑  收藏  举报