|
|
|
|
|
在現(xiàn)在的網(wǎng)頁設(shè)計(jì)中,鼠標(biāo)移到圖片上圖片放大的效果常常被用到,這個效果多應(yīng)用于文章列表里。我一開始以為是用JQuery來實(shí)現(xiàn)的,后來才知道原來是用CSS3來實(shí)現(xiàn)的。雖然用JQuery也能實(shí)現(xiàn)同樣的效果,但用CSS3來實(shí)現(xiàn)會更加簡單和方便。本文將介紹如何用CSS3來實(shí)現(xiàn)這個功能。
在介紹實(shí)現(xiàn)代碼之前,我們先來看看效果演示吧。
請把鼠標(biāo)移到圖片上
看到效果是:鼠標(biāo)移到圖片上時,圖片會自動放大。
CSS3實(shí)現(xiàn)方法如下:
HTML代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#div1{
width: 200px;
height: 138px;
border: #000 solid 1px;
margin: 50px auto;
overflow: hidden;
}
#div1 img{
cursor: pointer;
transition: all 0.6s;
}
#div1 img:hover{
transform: scale(1.4);
}
</style>
</head>
<body>
<div id="div1">
<img src="demo.jpg" />
</div>
</body>
</html>
代碼分析:
1、首先知道DIV和IMG的層次關(guān)系,IMG是在某DIV里面,圖片放大后不應(yīng)該超出DIV的盒子。
2、設(shè)置DIV的 overflow: hidden; 屬性,作用是圖片變大后超過DIV區(qū)域的部分會自動隱藏。
3、設(shè)置 transition: all 0.6s; 屬性和 transform: scale(1.4); 屬性,其中 transition: all 0.6s; 是變化速度,數(shù)值越小速度越快,而 transform: scale(1.4); 是變化范圍, scale(1.4) 是放大1.4倍的意思。
如果想圖片放大后完全顯示,而不是只顯示DIV里的區(qū)域,那么我們只需把div的 overflow 屬性去掉即可,不能設(shè)為 auto ,否則div出現(xiàn)滾動條。效果演示如下:
請把鼠標(biāo)移到圖片上
html代碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
#div1{
width: 200px;
height: 138px;
border: #000 solid 0px;
margin: 50px auto;
/* overflow: hidden; */
}
#div1 img{
cursor: pointer;
transition: all 0.6s;
}
#div1 img:hover{
transform: scale(1.4);
}
</style>
</head>
<body>
<div id="div1">
<img src="demo.jpg" />
</div>
</body>
</html>
代碼分析:
把div的 overflow 屬性去掉,其他代碼不變。