美文网首页LiYajie web前端Web前端之路
web前端-实现淘宝商品放大镜下面小图的hover样式

web前端-实现淘宝商品放大镜下面小图的hover样式

作者: LiYajie | 来源:发表于2017-03-16 09:21 被阅读65次

    效果图如下: (点击这里查看示例Demo)

    鼠标hover样式设置

    首先说下淘宝下面的这个图的 hover 和其他的有什么不一样, 是这样的, 当鼠标移动到上面的时候, 图片会保持原来大小, 盒子整体不会发生位置的变化. 下面我来一步一步实现这个效果

    只做简单的例子

    首先布局

    <div class="container">
        <div class="box" id='box'>
            ![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1490231203&di=6ecdc9dd67ae9662cc08fc82218c1cb8&imgtype=jpg&er=1&src=http%3A%2F%2Ft1.niutuku.com%2F960%2F21%2F21-262743.jpg)
        </div>
    </div>
    

    样式

    .container{
        border:1px solid;
    }
    .container .box{
        width: 400px;
        height: 400px;
    }
    .container .box img{
        width: 400px;
        height: 400px;
    }
    /*当添加上 active 的时候, 给box 的border添加边框, 加了边框之后宽度变成了410, */
    /*所以要减去变宽的宽度, 所以要把宽和高修改成390, 并且需要把图片超出的部分隐藏, */
    /*所以要 overflow:hidden;*/
    .container .box.active{
        border:5px solid #f00;
        width: 390px;
        height: 390px;
        overflow:hidden;
    }
    /* 为了保持图片的位置不变, 需要给图片设置定位属性(相对定位, 因为要保持图片在标准流中的位置), */
    /*再使用 top 和 left 将图片微调即可 */
    .container .box.active img{
        position: relative;
        top: -5px;
        left: -5px;
    }
    

    js 脚本

    window.onload = function(){
        var box = document.getElementById('box');
        box.onmouseover = function(){ // 鼠标移入的时候将 box 的 className 改成'box active'
            this.className = 'box active';
        }
        box.onmouseout = function(){
            this.className = 'box'; // 移除之后还原
        }
    }
    

    Demo地址

    相关文章

      网友评论

        本文标题:web前端-实现淘宝商品放大镜下面小图的hover样式

        本文链接:https://www.haomeiwen.com/subject/cooknttx.html