HTML CSS 实现鼠标悬停时图片拉近效果

前言

为了让网页的使用体验更好,我们会让网页的某些元素对鼠标的动作做出响应。例如鼠标滑过、单击按钮的时候按钮变色、变形。之前在很多网页上看到了鼠标滑过一个图片链接时图片放大、拉近的效果,今天尝试实现一下。

1. 使用background实现

思路:设置以图片作为div元素的背景,鼠标滑过div的时候通过background属性放大图片。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>background实现图片拉近效果</title>
  <style>
    #box {
      background: url(../images/img022.png);
      width: 720px;
      height: 720px;
      margin: 0 auto;
      border: 1px solid #aaa;
      background-color: #444;
    }

    #box:hover {
      background-size: 100.5% 100.5%;
    }
  </style>
</head>

<body>
  <div id=‘box‘>

  </div>
</body>

</html>

2. 使用img元素的width height属性实现

思路:当鼠标滑过图片时,修改img元素的widthheight属性放大图片

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>img图片拉近效果</title>
  <style>
    #box{
      width:60%;
      min-width:1000px;
      min-height:800px;
      margin:0 auto;
      border:1px solid #aaa;
      background-color:#444;
      text-align:center;

    }

    img:hover{
      width:723px;
      height:723px;
    }
  </style>
</head>
<body>
  <div id=‘box‘>
    <img src="../images/img022.png" width=‘720px‘ height=‘720px‘ />
  </div>
</body>
</html>

3. 使用transform放大图片

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title>transform实现图片拉近效果</title>
  <style>
    a:hover img {
      transform: scale(1.005, 1.005);
    }
  </style>
</head>

<body>
    <a href="#">
        <img src="../images/img022.png" />
    </a>
</body>

</html>

4. 使用transformtransition来放大图片

以上的3种实现方式中,图片放大过程几乎都是瞬间完成的,感觉不流畅,视觉体验也不好。同transition可以设置放大过程经历的时间,从而有流畅的感觉。

<!DOCTYPE html>
<html>  

    <head>
        <meta charset="UTF-8">
        <title>transform、transform实现图片拉近</title>
        <style>  

            .test_a {
                display: block;
                margin: 0 auto;
                width:400px;
                overflow: hidden;
            }  

            .test_a img {
                width: 100%;
            }  

            .test_a:hover img {
                transform: scale(1.2);
                transition: all 1s ease 0s;
            } 

        </style>
    </head>  

    <body>
        <a href="" class="test_a">
          <img src="../images/img022.png" />
        </a>
    </body>  

</html>  

上面这种方式,图片放大过程是流畅的,但是缩小过程很生硬,可以改进一下。

<!DOCTYPE html>
<html>  

    <head>
        <meta charset="UTF-8">
        <title>transform、transform 图片拉近 优化</title>
        <style>  

            .test_a {
                display: block;
                margin: 0 auto;
                width:400px;
                overflow: hidden;
            }

            .test_a img {
                width: 100%;
                transform: scale(1);
                transition: all 1s ease 0s;
            }  

            .test_a:hover img {
                transform: scale(1.2);
                transition: all 1s ease 0s;
            }
        </style>
    </head>  

    <body>
        <a href="" class="test_a">
          <img src="../images/img022.png" />
        </a>
    </body>  

</html> 

后语

实验的时候发现很多知识有点模糊了,该补习了。

在线DEMO https://hgy9473.github.io/myl...

原文地址:https://www.cnblogs.com/jlfw/p/12219877.html

时间: 2024-11-05 12:20:34

HTML CSS 实现鼠标悬停时图片拉近效果的相关文章

10款基于jQuery实现的鼠标悬停九宫格图片延伸效果

<p><b>1.jQuery多张图片上下叠加切换插件</b></p><p>之前我们已经向大家分享过一款jQuery/CSS3洗牌效果的图片叠加切换应用,本文介绍的这款jQuery多张图片上下叠加切换插件也类似,我们可以将预先加载好的图片按不同的角度叠加起来,点击上下切换按钮时即可将图片上下切换至其他图片后面,效果非常不错.</p><p><img src="http://www.html5tricks.com

css实现鼠标悬停在图片上图片缓慢缩放效果

方法一: .container{ background-size: 100% 100%; transition: all 2s; } .container:hover{ background-size: 120% 120%; } 方法二: img{ transition: all 2s; } img:hover{ transform:scale(1.2);   //图片放大的倍数 } 原文地址:https://www.cnblogs.com/Zg-blog/p/9385280.html

css实现鼠标移上图片遮罩效果

ie6对hover支持不完善,所以不兼容,最好在火狐或谷歌等标准浏览器中观看.Demo下载 效果如图: css: #demo {        width: 306px;        height: 204px;        padding: 3px;        border: 1px solid #e5e5e5;        margin: 100px auto 0 auto;        background: #fff;    } #demo:after {        co

鼠标悬停时显示图片边框和文字描述的图片特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

兄弟连教育分享:用CSS实现鼠标悬停提示的方法

本文,兄弟连HTML5培训 ,分享了纯CSS实现鼠标悬停提示的方法.给大家供大家参考.具体分析如下: 这是一款比较漂亮的鼠标悬停提示效果,用纯CSS代码实现,鼠标放到图片上会显示一个层,也就是悬停时的提示,在这个提示框内你还可以加入图片或是一个列表,这就靠你的发挥了,提示框的背景颜色和文字颜色你都可以自己调. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN""http://www.w3

CSS+JS鼠标悬停单元格变色

又一款鼠标悬停表格单元格,表格变色的实例效果,运用了CSS和JS两者技术的结合,因些兼容性非常好,而且易于控制,代码修改方便,跟表格读取动态数据没有任何关系,比较方便. <html><head><title>鼠标悬停单元格变色</title><meta http-equiv="content-Type" content="text/html;charset=gb2312"><style type=&q

[读码][js,css3]能感知鼠标方向的图片遮罩效果

效果图: 无意间看到过去流行的一个效果:[能感知鼠标方向的图片遮罩效果]近来不忙,就仔细的看了一看看到后来发现,网上有好多版本,谁是原著者似乎已经无法考证.读码就要读比较全面的,读像是原著的代码.代码随然不难,不过要能想到这个创意,并成功应用却很难! 另外,对于初学者,这也是不错的学习例子.含Jquery插件写法,css3等 英文教程:http://tympanus.net/TipsTricks/DirectionAwareHoverEffect/源码下载:http://tympanus.net

transition实现的鼠标悬停淡入淡出的效果

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>transition实现的鼠标悬停淡入淡出的效果</title> 6 <style type="text/css"> 7 div.wrap>div.box i{ 8 width: 50px; 9 height: 50px; 10 backg

css实现鼠标经过导航颜色变换效果

css实现鼠标经过导航颜色变换效果,如下图: 1.先准备两张图片分别为:nav.jpg.hover.jpg,放到images文件夹里面. 2.准备一个index.html文档,该文档跟images评级,如下图: index.html的html代码 <div class="nv"> <ul> <li><a href="#">首页</a></li> <li><a href=&quo