用js实现幻灯片放大图片效果

本文介绍了一种使用HTML、CSS及jQuery实现的图片网格布局,在鼠标悬停时图片能够平滑放大并重新定位的效果。通过调整CSS样式和利用jQuery动画功能,实现了良好的视觉体验。

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    *{
      margin: 0;
      padding: 0;
    }
    ul{
      list-style: none;
    }
      #content{
        width: 420px;
        height: 420px;
        margin: 50px auto;
        position: relative;
      }
      #content li{
        width: 120px;
        height: 120px;
        margin: 10px;
        float: left;
        /*position: absolute;*/
      }
      #content li img{
        width: 100%;
        height: 100%;
      }
    </style>

</head>
<body>
<ul id="content">
       <li><img src="img/a.jpg" alt=""></li>
       <li><img src="img/b.jpg" alt=""></li>
       <li><img src="img/c.jpg" alt=""></li>
       <li><img src="img/d.jpg" alt=""></li>
       <li><img src="img/e.jpg" alt=""></li>
       <li><img src="img/f.jpg" alt=""></li>
       <li><img src="img/g.jpg" alt=""></li>
       <li><img src="img/h.jpg" alt=""></li>
       <li><img src="img/big.jpg" alt=""></li>
</ul>
 <script src="js/jquery.min.js"></script>
 <script>
      var oul=document.getElementById('content');
      var oli=oul.getElementsByTagName('li');
      for(var i=0;i<oli.length;i++){
        oli[i].style.left=oli[i].offsetLeft+'px';//不要忘记加单位,定位要另写循环,因为absolute会导致空间释放,每次循环都会导致后面元素顶上去,造成效果误差
        oli[i].style.top=oli[i].offsetTop+'px';
        oli[i].width=oli[i].offsetWidth;
        oli[i].height=oli[i].offsetHeight;
        oli[i].left=oli[i].offsetLeft;
        oli[i].top=oli[i].offsetTop;
        //oli[i].style
        oli[i].onmouseover=function(){
          $(this).animate({
            width:this.offsetWidth+100,
            height:this.offsetHeight+100,
            left:this.offsetLeft-50,
            top:this.offsetTop-50,
          })
          this.style.zIndex++;
          // this.style.width=this.offsetWidth+100+'px';
          // this.style.height=this.offsetHeight+100+'px';
          // this.style.left=this.offsetLeft-50+'px';
          // this.style.top=this.offsetTop-50+'px';
        }

      oli[i].onmouseout=function(){
          $(this).animate({
            width:this.width,
            height:this.height,
            left:this.left,
            top:this.top,
          })
          this.style.zIndex--;
        }
      }
      for(var i=0;i<oli.length;i++){
        oli[i].style.position='absolute';
      }

 </script>
</body>
</html>

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值