使用javascript自动加载图像

时间:2015-01-18 11:27:05

标签: javascript onload onmouseover

我正在使用此代码构建图库:

        window.onload=function(){
        var image = document.getElementsByClassName('thumbnails')[0].getElementsByTagName('img');
        var mainImage = document.getElementById('rr_lrg_img'); 

        [].forEach.call(image,function(x){ 
            x.onmouseover = function(){
                 mainImage.src = x.src; 
             };
        });
        }

当“onmouseover”时,代码会在大图像上加载不同的缩略图。现在我想“预加载”缩略图库中的第一张图片。我尝试使用onload with

rr_lrg_img.src=document.getElementsByClassName('thumbnails')[0].getElementsByTagName('img')[0].src

然后它与onmouseover冲突。有任何想法吗?我只能使用javascript,没有jquery。

1 个答案:

答案 0 :(得分:1)

由于你的var image实际上是一组图像,你需要使用[0]索引指针来定位第一个:



window.onload=function(){
  
  var image = document.getElementsByClassName('thumbnails')[0].getElementsByTagName('img');
  var mainImage = document.getElementById('rr_lrg_img'); 
  
  mainImage.src = image[0].src; // Add this line (preload first image into main one)
  
  function toMainImage() {
     mainImage.src = this.src; 
  }

  [].forEach.call(image,function(x){
    x.addEventListener("mouseenter", toMainImage, false);
  });
  
}

.thumbnails img{height:50px;}

<img src="//placehold.it/200x200&text=default" id="rr_lrg_img">

<div class="thumbnails">
  <img src="//placehold.it/200x200/cf5&text=1">
  <img src="//placehold.it/200x200/f0f&text=2">
  <img src="//placehold.it/200x200/444&text=3">
</div>
&#13;
&#13;
&#13;