HTML CSS 實現鼠標懸停時圖片拉近效果

前言

爲了讓網頁的使用體驗更好,咱們會讓網頁的某些元素對鼠標的動做作出響應。例如鼠標滑過、單擊按鈕的時候按鈕變色、變形。以前在不少網頁上看到了鼠標滑過一個圖片連接時圖片放大、拉近的效果,今天嘗試實現一下。html

1. 使用background實現

思路:設置以圖片做爲div元素的背景,鼠標滑過div的時候經過background屬性放大圖片。git

<!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屬性放大圖片github

<!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>

上面這種方式,圖片放大過程是流暢的,可是縮小過程很生硬,能夠改進一下。url

<!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>

後語

實驗的時候發現不少知識有點模糊了,該補習了。code

在線DEMO https://hgy9473.github.io/myl...orm

相關文章
相關標籤/搜索