在图像加载时将图像从零放大到全尺寸

时间:2016-01-12 16:14:53

标签: javascript jquery html5

我正在随机放置一个气泡图像,我想通过将图像从零放大到完整尺寸来模拟制作气泡的效果。我正在使用CSS transform:scale();,但我希望在图像加载时触发动画。

3 个答案:

答案 0 :(得分:4)

您可以在完成加载后为图像添加一个类,并在CSS中指定正确的transitiontransform规则。

$("img").load(function() {
  $(this).addClass("loaded");
});
img {
  transition: transform 1s;
  transform: scaleX(0) scaleY(0);
}
img.loaded {
  transform: scaleX(1) scaleY(1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://lorempixel.com/600/600/">

答案 1 :(得分:1)

以下是两种不需要jQuery的方法。

这种方式更可取:

&#13;
&#13;
var pics = document.querySelectorAll(".zoom");
for (var i = 0; i < pics.length; i++) {
    pics[i].addEventListener('load', function() {

      this.className += " loaded";

      // use this method if to support newer browsers only
      //this.classList.add("loaded");

    }, false);
}
&#13;
img {
  transition: transform .5s;
  transform: scale(0,0);  
}
img.loaded {
  transform: scale(1,1);  
}
&#13;
<img src="http://lorempixel.com/200/200/" class="zoom">
&#13;
&#13;
&#13;

这可以在图像数量有限时使用:

&#13;
&#13;
function imgresize(el) {
  el.className += " loaded";
}
&#13;
img {
  transition: transform .5s;
  transform: scale(0,0);  
}
img.loaded {
  transform: scale(1,1);  
}
&#13;
<img src="http://lorempixel.com/200/200/" onload="imgresize(this);">
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

您可以尝试使用onload()函数执行某些只在加载某些内容时才会发生的任务。

即;

$('img').on('load',function(){
   alert('image loaded');
}