有個朋友N久沒有動前端,最近因為需求和人手不得不硬著頭皮拾起它。 有個需求是圖片放大瀏覽,因為時間緊沒有時間學新的如
react
等,所以還是用jq,一直在找外掛,但是都不太滿意。所以問我有沒推薦。我想了想,要引入新的外掛開銷還是有的,可以使用CSS3新特性。transform
有個方法scale
就是實現縮放的,再配合上animation
不要太簡單。
不過此前還有個問題,圖片放大之後不能影響到現有的盒子結構。所以在圖片父元素上給個相對定位,圖片使用絕對定位即可。
下面是隨意寫的小demo
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>scale test</title>
<style>
@keyframes transform-test {
to {
transform: scale(2);
}
}
.img-box {
position: relative;
width:200px;
margin:200px auto 0;
}
.img {
position: absolute;
}
.img:hover {
/*加上fill-mode forwards,使得動畫結束後保持*/
animation: 1s transform-test forwards;
}
img {
width: 100%;
height: auto;
}
</style>
</head>
<body>
<div class="img-box">
<div class="img">
<img src="./test.jpg" alt="" class=""/>
</div>
</div>
</body>
</html>
上面實現的是hover
時圖片放大兩倍。如果要實現click
效果也好辦,click
後換個class
,在這個class裡直接寫上animation
即可。
在我的github裡也有整理關於animation
和transform
的知識點。不過animation
相關並非原創,所以就不傳上來了。各位想深入些可以跳轉頁面: