用JQ判断鼠标移入DIV的方向,并从该方向移出遮罩

本文介绍了一种利用HTML、CSS及jQuery实现的图片列表悬停显示特效。当鼠标悬停在列表项上时,会根据鼠标的进入方向展示相应的图片说明,并在离开时隐藏。通过简单的代码实现了动态且吸引人的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个比较有意思的特效

<--html部分代码-->

<div class="wrap" >

    <ul class="list" id='list'>

        <li><img src='images/1.gif'/><div>图片一</div></li>

        <li><img src='images/2.jpg'/><div>图片二</div></li>

        <li><img src='images/3.jpg'/><div>图片三</div></li>

        <li><img src='images/4.png'/><div>图片四</div></li>

        <li><img src='images/5.jpg'/><div>图片五</div></li>

        <li><img src='images/6.png'/><div>图片六</div></li>

        <li><img src='images/7.png'/><div>图片七</div></li>

        <li><img src='images/8.jpg'/><div>图片八</div></li>

        <li><img src='images/9.jpg'/><div>图片九</div></li>

        <li><img src='images/10.jpg'/><div>图片十</div></li>

        <li><img src='images/7.png'/><div>图片七</div></li>

        <li><img src='images/8.jpg'/><div>图片八</div></li>

    </ul>

</div>

<--CSS部分代码-->

<--

body,ul,li,img{margin: 0;padding: 0}

body{background: #f8f8f8}

.wrap{width: 720px;margin: 30px auto;padding: 10px;}

.list{float: left;height: auto;background: #fff;border: 1px solid #ccc;width: 100%}

.list li{cursor: pointer;margin:10px;position: relative;list-style-type: none;float: left;overflow: hidden;}

.list li img{float: left;}

.list li div{position: absolute;background:#F2528E;opacity: 0.8;filter:alpha(opacity:80);color:#fff;font-size:28px;text-align:center;line-height:150px;top:150px }

.list img,.list div{height: 150px;width: 220px;}

-->

<--JS部分代码-->

<script src='./jquery-1.8.js'></script>  //引入JQ

 

    <script>

var timer = null;

$('li').mouseenter(function(e) {

  var oDiv = $(this).find('div');

       oDiv.css({left: 0, top: 0});

  var iDirection = mousemovedirection(this, e);

  switch(iDirection) {

    case 0 : oDiv.css('top', '-150px'); break;

    case 1:  oDiv.css('left', '220px'); break;

    case 2: oDiv.css('top', '150px'); break;

    default: oDiv.css('left', '-220px')

        }

        timer = setTimeout(function() {

                oDiv.animate({left: 0, top: 0}, 200)

        }, 100)

        }).mouseleave(function(e) {

            clearTimeout(timer);

     var oDiv = $(this).find('div');

     var iDirection = mousemovedirection(this, e);

     switch(iDirection) {

      case 0 : oDiv.animate({top: -150}, 200); break;

      case 1: oDiv.animate({left: 220}, 200); break;

      case 2: oDiv.animate({top: 150}, 200); break;

      default: oDiv.animate({left: -220}, 200)

            }

        });

function mousemovedirection(o, e) {    //这里是判断鼠标移入方向的方法,返回的数字可能是0, 1, 2, 3 分别对应表示的是 上, 右, 下, 左这几个方向。

  1.   var w = o.offsetWidth;
  2.   var h = o.offsetHeight;
  3.   var x = (e.pageX - o.offsetLeft - (w/2)) * (w > h ? (h/w) : 1);
  4.   var y = (e.pageY - o.offsetTop - (h/2)) * (h > w ? (w/h) : 1);
  5.   var direction = Math.round((((Math.atan2(y, x) * (180/Math.PI)) + 180) / 90) + 3) % 4;
  6.   var evenType = e.type;
  7.   return direction;

        }

</script>

转载于:https://www.cnblogs.com/lee319/p/7097386.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值