问题描述
简单地说,我有一个 javascript 代码,当用户单击按钮时,它会生成一个随机图像。 它是一个带有一个按钮和一个容器 div 的空页面。 问题是图像出现在容器外,它直接出现在 . 我需要控制它出现的位置。 我想要它在容器内。 我不是 javascript 专家,我只是在长时间搜索后找到了代码。 我需要帮助,谢谢:)
代码在这里: :
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楼
您将图像附加到正文而不是 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 -->