Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在两个徽标之间交换?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在两个徽标之间交换?

Javascript 如何在两个徽标之间交换?,javascript,jquery,Javascript,Jquery,我有以下代码: var logo1=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_2x.png”; var logo2=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo\u hover\u 2x.png”; var图像=新阵列(logo1、logo2); var指数=1; 函数rotateImage() { $('.logoimage').fadeOut('fast',f

我有以下代码:

var logo1=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_2x.png”;
var logo2=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo\u hover\u 2x.png”;
var图像=新阵列(logo1、logo2);
var指数=1;
函数rotateImage()
{
$('.logoimage').fadeOut('fast',function()
{
$(this.attr('src',images[index]);
$(this.fadeIn('fast',function())
{
if(index==images.length-1)
{
指数=0;
}
其他的
{
索引++;
}
});
});
}
$(文档).ready(函数()
{
设置间隔(旋转图像,5000);
});
var图像=新阵列(logo2);
var指数=1;
函数rotateImage()
{
$('.logoimage').fadeOut('fast',function()
{
$(this.attr('src',images[index]);
$(this.fadeIn('fast',function())
{
if(index==images.length-1)
{
指数=0;
}
其他的
{
索引++;
}
});
});
}
$(文档).ready(函数()
{
设置间隔(旋转图像,5000);

});
您可以使用如下JavaScript更改img标记的
src

function hover(element) {
    element.setAttribute('src', '//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_2x.png');
}
function unhover(element) {
    element.setAttribute('src', '//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_hover_2x.png');
}
而html是

<img id="my-img" src="http://dummyimage.com/100x100/000/fff" onmouseover="hover(this);" onmouseout="unhover(this);" />
HTML:


在元素内或元素外悬停时,使用jQuery运行代码。还可以使用setTimeout在延迟后运行代码

var logo1=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_2x.png”;
var logo2=“//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo\u hover\u 2x.png”;
$(函数(){
$('.logoimage').hover(函数(){
setTimeout(函数(){
$('.logoimage').attr('src',logo2);
}, 1000);
},函数(){
setTimeout(函数(){
$('.logoimage').attr('src',logo1);
}, 1000);
});
});


我想做的是在延迟后在这些图像之间进行交换,我不想重新加载它们,因为您可以建议更好的方法来实现相同的效果。。欢迎:)@savenzaarkulbach,为此修改anwer!我不确定我是否不清楚,但我正在尝试以大约10秒的延迟旋转这些图像。我现在的脚本正在工作,但在第一次加载时,它将图像作为新图像加载,这不是我想要的。是否可以选择已加载的图像?巴迪,请明确您的要求,并在问题中明确提及,目前这是正确的解决方案。您能否制定一个规则,如果图像已显示,则显示另一个图像?
var images = new Array();
images[0] = "logo_1.png";
images[1] = "logo_2.png";

var images = new Array();
  for (var i = 0; i < 2; i++) {
    images.push("logo_" + i + ".png");
  }
  var x = 0;

function changeImage() {
    document.getElementById('ad').src = images[x];
    if (x < 8) {
      x += 1;
    } else {
      x = 0;
}

if (window.addEventListener) {
  window.addEventListener('load', changeImg, false);
}
function changeImg() {
      var x = 0;
      setInterval(function() {
        changeImage()
      },5000);
    }
<img id="ad" src="//cdn.shopify.com/s/files/1/0816/3411/t/3/assets/logo_2x.png" />