如何使图像显示在容器Div内?

时间:2019-02-13 00:13:13

标签: javascript jquery html

简单来说,我有一个javascript代码,当用户单击按钮时,该代码会生成随机图像。 这是一个带有一个按钮和一个容器div的空白页。 问题是图像出现在容器外部,直接出现在之前。并且我需要控制它的显示位置。我想要将其放入容器中。 我不是JavaScript专家,我经过长时间搜索才找到了代码。 我需要帮助,谢谢:)

代码在这里: https://codepen.io/Haitham1000/pen/aXjYzz

function display_random_image() 
{
var theImages = [{
src: "http://farm4.staticflickr.com/3691/11268502654_f28f05966c_m.jpg",
width: "240",
height: "160"
}, {
src: "http://farm1.staticflickr.com/33/45336904_1aef569b30_n.jpg",
width: "320",
height: "195"
}, {
src: "http://farm6.staticflickr.com/5211/5384592886_80a512e2c9.jpg",
width: "500",
height: "343"
}];

var preBuffer = [];
for (var i = 0, j = theImages.length; i < j; i++) {
preBuffer[i] = new Image();
preBuffer[i].src = theImages[i].src;
preBuffer[i].width = theImages[i].width;
preBuffer[i].height = theImages[i].height;
}

// create random image number
function getRandomInt(min,max) 
{
//  return Math.floor(Math.random() * (max - min + 1)) + min;

imn = Math.floor(Math.random() * (max - min + 1)) + min;
return preBuffer[imn];
}  

// 0 is first image,   preBuffer.length - 1) is  last image

var newImage = getRandomInt(0, preBuffer.length - 1);

// remove the previous images
var images = document.getElementsByTagName('img');
var l = images.length;
for (var p = 0; p < l; p++) {
images[0].parentNode.removeChild(images[0]);
}
// display the image  
var targetContainer = document.getElementsByClassName("container");
targetContainer[0].appendChild(newImage);
}

1 个答案:

答案 0 :(得分:1)

您要将图像附加到主体而不是div。取得div var targetContainer = document.getElementsByClassName("container"); 然后附加 targetContainer[0].appendChild(newImage);

function display_random_image() 
{
     var theImages = [{
        src: "http://farm4.staticflickr.com/3691/11268502654_f28f05966c_m.jpg",
        width: "240",
        height: "160"
    }, {
        src: "http://farm1.staticflickr.com/33/45336904_1aef569b30_n.jpg",
        width: "320",
        height: "195"
    }, {
        src: "http://farm6.staticflickr.com/5211/5384592886_80a512e2c9.jpg",
        width: "500",
        height: "343"
    }];
    
    var preBuffer = [];
    for (var i = 0, j = theImages.length; i < j; i++) {
        preBuffer[i] = new Image();
        preBuffer[i].src = theImages[i].src;
        preBuffer[i].width = theImages[i].width;
        preBuffer[i].height = theImages[i].height;
    }
   
// create random image number
  function getRandomInt(min,max) 
    {
      //  return Math.floor(Math.random() * (max - min + 1)) + min;
    
imn = Math.floor(Math.random() * (max - min + 1)) + min;
    return preBuffer[imn];
    }  

// 0 is first image,   preBuffer.length - 1) is  last image
  
var newImage = getRandomInt(0, preBuffer.length - 1);
 
// remove the previous images
var images = document.getElementsByTagName('img');
var l = images.length;
for (var p = 0; p < l; p++) {
    images[0].parentNode.removeChild(images[0]);
}
// display the image  
 var targetContainer = document.getElementsByClassName("container");
targetContainer[0].appendChild(newImage);
}
body {margin-top: 30px;}
<div class="container">
<button id="jsstyle" 
onclick="display_random_image();">Show Image</button> 
</div> <!-- Container -->