华丽遮罩层,鼠标哪里移入,遮罩层从哪里展开,从哪里移出,遮罩层从哪里开始移出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>

    <style>
        *{margin:0;padding:0;list-style: none;}
        .main{width:922px;margin:0 auto;}
        .imgbox li{width:294px;height:267px;margin-left:20px;float:left;position: relative;top:200px;
            background-color:red;overflow: hidden}
        .slidiv{height:267px;width:294px;background: rgba(9,9,9,0.5);position: absolute;left:-294px;top:0;text-align: center;}
    </style>
</head>
<body>
<div class="main">
    <ul class="imgbox">
        <li style="margin-left:0;">
            <div class=slidiv></div>
        </li>
        <li>
            <div class=slidiv></div>
        </li>
    </ul>
</div>
<script>
    $(function(){
        $(".imgbox li").bind("mouseenter mouseleave",  function(e) {
            var w = $(this).width();
            var h = $(this).height();
            var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1);
            var y = (e.pageY - this.offsetTop - (h / 2)) * (h > w ? (w / h) : 1);
            var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;

            this_slidiv = $(this).find('.slidiv');
            if(e.type == 'mouseenter'){
                switch(direction){
                    case 0 :
                        this_slidiv.css({top:-h,left:"0px"});
                        break;
                    case 1:
                        this_slidiv.css({top:"0px",left:w});
                        break;
                    case 2:
                        this_slidiv.css({top:h,left:"0px"});
                        break;
                    case 3:
                        this_slidiv.css({top:"0px",left:-w});
                        break;
                }

                this_slidiv.stop(true,true).animate({"top":"0px","left":"0px"},"fast");

            }else if(e.type == 'mouseleave'){
                switch(direction){
                    case 0 :
                        this_slidiv.stop(true,true).animate({"top":-h},"fast");
                        break;
                    case 1:
                        this_slidiv.stop(true,true).animate({"left":w},"fast");
                        break;
                    case 2:
                        this_slidiv.stop(true,true).animate({"top":h},"fast");
                        break;
                    case 3:
                        this_slidiv.stop(true,true).animate({"left":-w},"fast");
                        break;
                }
            }
        });
    });
</script>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值