Javascript 添加指向阵列中图像的链接
我试图在我的JS数组中添加图像链接,这样,当单击时,它们会将您指向一个信息页面 我尝试使用下面的代码,但图像无法显示Javascript 添加指向阵列中图像的链接,javascript,arrays,image,url,hyperlink,Javascript,Arrays,Image,Url,Hyperlink,我试图在我的JS数组中添加图像链接,这样,当单击时,它们会将您指向一个信息页面 我尝试使用下面的代码,但图像无法显示 var WorkArray = new Array(['work/01.png',"http://www.stackoverflow.com"], ['work/02.png',"http://www.stackoverflow.com"], ['work/03.png',"htt
var WorkArray = new Array(['work/01.png',"http://www.stackoverflow.com"],
['work/02.png',"http://www.stackoverflow.com"],
['work/03.png',"http://www.stackoverflow.com"],
['work/04.png',"http://www.stackoverflow.com"]);
如果我删除了链接,图像就会显示出来
我正在使用此代码的变体:
这是我的全部代码:
var width = 400;
var height = 400;
var swoosh = 4;
var stopafter=0; //set time in seconds before image disappears. Use 0 for never
var maxswoosh = 50;
var xMax;
var yMax;
var xPos = 0;
var yPos = 0;
var xDir = 'right';
var yDir = 'down';
var screenSavouring = true;
var tempswoosh;
var newXDir;
var newYDir;
function setupShit() {
if (document.all) {
xMax = document.body.clientWidth
yMax = document.body.clientHeight
document.all("work").style.visibility = "visible";
}
else if (document.layers||document.getElementById) {
xMax = window.innerWidth-0;
yMax = window.innerHeight;
if (document.getElementById)
document.getElementById("work").style.visibility="visible"
else
document.layers["work"].visibility = "show";
}
setTimeout('moveIt()',500);
}
function moveIt() {
if (screenSavouring == true) {
calculatePosition();
if (document.all) {
document.all("work").style.left = xPos + document.body.scrollLeft;
document.all("work").style.top = yPos + document.body.scrollTop;
}
else if (document.layers) {
document.layers["work"].left = xPos + pageXOffset;
document.layers["work"].top = yPos + pageYOffset;
}
else if (document.getElementById) {
document.getElementById("work").style.left = xPos + pageXOffset;
document.getElementById("work").style.top = yPos + pageYOffset;
}
doit=setTimeout('moveIt()',30);
}
}
function calculatePosition() {
if (xDir == "right") {
if (xPos > (xMax - width - swoosh)) {
xDir = "left";
cC();
}
}
else if (xDir == "left") {
if (xPos < (0 + swoosh)) {
xDir = "right";
cC();
}
}
if (yDir == "down") {
if (yPos > (yMax - height - swoosh)) {
yDir = "up";
cC();
}
}
else if (yDir == "up") {
if (yPos < (0 + swoosh)) {
yDir = "down";
cC();
}
}
if (xDir == "right") {
xPos = xPos + swoosh;
}
else if (xDir == "left") {
xPos = xPos - swoosh;
}
else {
xPos = xPos;
}
if (yDir == "down") {
yPos = yPos + swoosh;
}
else if (yDir == "up") {
yPos = yPos - swoosh;
}
else {
yPos = yPos;
}
}
if (document.all||document.layers||document.getElementById){
window.onload = setupShit;
window.onresize = new Function("window.location.reload()");
}
var WorkArray = new Array(['work/01.png',"http://www.stackoverflow.com", "Your text goes here"],
['work/02.png',"http://www.stackoverflow.com", "Your text goes here"],
['work/03.png',"http://www.stackoverflow.com", "Your text goes here"],
['work/04.png',"http://www.stackoverflow.com", "Your text goes here"]);
var nelements = WorkArray.length;
preload_image_object = new Image();
var i = 0;
for(i=0; i<=nelements; i++) {
preload_image_object.src = WorkArray[i];
}
var currentImage = 0
function cC() {
currentImage = (currentImage + 1) % WorkArray.length;
document.getElementById("work").style.backgroundImage="url('"+WorkArray[currentImage]+"')";
}
var宽度=400;
var高度=400;
var swoosh=4;
var stopafter=0//以秒为单位设置图像消失前的时间。使用0表示从不
var maxswoosh=50;
var-xMax;
var yMax;
var-xPos=0;
var-yPos=0;
var xDir='右';
var yDir=‘向下’;
var=true;
var tempswoosh;
var-newXDir;
var newYDir;
函数setupShit(){
如果(全部文件){
xMax=document.body.clientWidth
yMax=document.body.clientHeight
document.all(“工作”).style.visibility=“可见”;
}
else if(document.layers | | document.getElementById){
xMax=window.innerWidth-0;
yMax=窗内高度;
if(document.getElementById)
document.getElementById(“工作”).style.visibility=“可见”
其他的
document.layers[“work”].visibility=“show”;
}
setTimeout('moveIt()',500);
}
函数moveIt(){
如果(screenSavouring==true){
计算位置();
如果(全部文件){
document.all(“work”).style.left=xPos+document.body.scrollLeft;
document.all(“work”).style.top=yPos+document.body.scrollTop;
}
else if(document.layers){
document.layers[“work”]。left=xPos+pageXOffset;
document.layers[“work”]。top=yPos+pageYOffset;
}
else if(document.getElementById){
document.getElementById(“work”).style.left=xPos+pageXOffset;
document.getElementById(“work”).style.top=yPos+pageYOffset;
}
doit=setTimeout('moveIt()',30);
}
}
函数计算位置(){
如果(xDir==“右”){
如果(xPos>(xMax-width-swoosh)){
xDir=“左”;
cC();
}
}
else if(xDir==“左”){
如果(XPO<(0+swoosh)){
xDir=“右”;
cC();
}
}
如果(yDir==“向下”){
如果(yPos>(yMax-高度-swoosh)){
yDir=“向上”;
cC();
}
}
否则如果(yDir==“向上”){
如果(YPO<(0+swoosh)){
yDir=“向下”;
cC();
}
}
如果(xDir==“右”){
xPos=xPos+swoosh;
}
else if(xDir==“左”){
xPos=xPos-swoosh;
}
否则{
xPos=xPos;
}
如果(yDir==“向下”){
yPos=yPos+swoosh;
}
否则如果(yDir==“向上”){
yPos=yPos-swoosh;
}
否则{
yPos=yPos;
}
}
if(document.all | | document.layers | | | document.getElementById){
window.onload=setupShit;
window.onresize=新函数(“window.location.reload()”;
}
var WorkArray=新数组(['work/01.png',”http://www.stackoverflow.com“,“您的文字显示在此处”],
['work/02.png',”http://www.stackoverflow.com“,“您的文字显示在此处”],
['work/03.png',”http://www.stackoverflow.com“,“您的文字显示在此处”],
['work/04.png',”http://www.stackoverflow.com“,”您的文字在此处“]);
var neelements=WorkArray.length;
预加载图像对象=新图像();
var i=0;
对于(i=0;i尝试将for循环替换为以下内容
for(i=0; i<nelements; i++) {
preload_image_object.src = WorkArray[i][0];
}
这是一个嵌套数组。使用.src=WorkArray[i][0]
@abhitalks你不是说“嵌套数组”吗?谢谢@DarkAshelin。更正。@abhitalks,你为什么不把它作为一个答案发布?@Victor:不值得。也许只是op的一个类型。他一定错过了。你改变了我的iYep了吗。我真的只是JS的一个傻瓜,所以可能还缺少另一个部分……试试我在上面的答案中添加的cC()函数……没有成功……当我添加[0]在WorkArray[currentImage]之后,图像再次消失。如果您想查看它的运行情况,请看我们的网站:我已经使用了另一个解决方案。我无法为图像提供单独的链接,因此我使用jquery进行了变通。当我使用您提供的代码时,图像不会显示。
function cC() {
var nelements = WorkArray.length;
var rdmnum = Math.floor(Math.random() * nelements);
var currentImage = rdmnum++;
if (currentImage == nelements) {
rdmnum = Math.floor(Math.random() * nelements);
}
currentImage = (currentImage + 1) % WorkArray.length;
document.getElementById("work").style.backgroundImage = "url('" + WorkArray[currentImage][0] + "')";
}