我正在尝试获得一种效果,即在页面加载时放大页面中心的徽标。我使用以下HTML和JS代码:
<div style="display: table-cell; vertical-align: middle; text-align: center;">
<img id="logo" src="images/logo2.png" style="zoom: 200%; transition: zoom 1s ease-in-out;"/>
</div>
JS
document.addEventListener("load", pageFullyLoaded, true);
function pageFullyLoaded()
{
var elem = document.getElementById("logo");
elem.style.zoom = "300%";
}
结果很奇怪。
显然这种技术不起作用:
请问如何可靠地做到这一点?谢谢。
答案 0 :(得分:1)
如果您要缩放图像,则无需使用缩放或变换等任何内容。只需直接改变宽度,浏览器就会为您缩放图像:
HTML:
<div class="wrapper">
<img class="tiny" src="http://placehold.it/200x150" />
</div>
CSS:
.wrapper {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.wrapper img {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
transition: width 1s ease-in-out;
width: 200px;
}
.wrapper img.tiny {
width: 10px;
}
JS:
document.querySelector('.wrapper img').className = "";
编辑:您在评论中提到您希望使用transform
完成此操作。同样,这只是一个缩小图像的情况(使用transform
的{{1}}),具有scale
属性,然后删除缩小图像的CSS类:
HTML&amp; JS:相同
CSS:大致相同,但有一些更改(加上一堆供应商前缀):
transition
答案 1 :(得分:0)
我会在这样的CSS中这样做:
$(window).load(function(){
$('img.zoom').addClass('element-animation');
});
您还可以收听动画结束事件,例如https://github.com/daneden/animate.css#usage
该库(Animate.css)也非常方便,您可以在其中找到一些有用的效果。