翻转从数组调用图像

时间:2016-04-24 01:09:32

标签: javascript arrays image rollover rollovers

在我希望从同一基本图像中进行多次翻转的网页上工作(遍布整个页面的多个黑色像素 - 有点像弹出效果)。我认为最简单的方法是使用包含所有翻转图像的数组和包含基本图像的数组(pixel.png)。即使让图像显示也有很多麻烦,现在我有背景图像显示,我无法使翻转工作。尝试使用开发人员/调试但没有骰子在Chrome中进行故障排除 - 甚至没有显示错误消息。我猜它是一件简单的事情,比如没有正确地调用这些功能,但我却无法看到它......

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
            var revert = new Array('pixel.png');
            var inames = new Array('black1off.jpg', 'black2off.jpeg');

         //preload
            if (document.images) {
                var flipped = new Array();
                  for(i=0; i< inames.length; i++) {
                        flipped[i] = new Image();
                        flipped[i] = "media/"+inames[i];
                      }
                    }

            function over(num) {
              if(document.images) {
                revert[num] = document.images[inames[num]];
                document.images[inames[num]] = flipped[num];
              }
            }
            function out(num) {
              if(document.images) {
                document.images[inames[num]] = revert[num];
             }              
            }

 </script>
 </head>
 <body>
 <body bgcolor="#000000">

    <img src="media/pixel.png" name="pixel" height="50px" width="50px" style="position:absolute; top:30px; left:50px;" onMouseOver="over(0)" onMouseOut="out(0)">
    <img src="media/pixel.png" name="pixel" height="50px" width="50px" style="position:absolute; top:30px; left:200px;" onMouseOver="over(1)" onMouseOut="out(1)"> 
  </body>
  </html>

1 个答案:

答案 0 :(得分:1)

这很简单,但你发布的内容甚至不是很接近:

以下是工作示例:https://jsfiddle.net/tqw84trm/1/

if (document.images) {
  var flipped = new Array();
  for(i=0; i< inames.length; i++) {
    flipped[i] = new Image();
    flipped[i].src = "media/"+inames[i];
  }
}

function out (num) {
  if(document.images) {
    var rev = revert.slice();
    revert[num] = document.images[num].src;
    document.images[num].src = rev[num];
  }              
}