单击时 JavaScript 淡入新图像

标签 javascript image slideshow fade

现在,我有一个代码可以在单击文本时在两个图像之间切换,但我想创建一个函数,在其中单击图像本身,它会淡入下一个图像,并且能够使用超过两个图像。另外,我想要使用的图像的宽度和高度各不相同,但所有图像的最大高度和宽度均为 600 像素。这是我当前的代码:

HTML:

<div id="cf2" class="shadow">
<img class="bottom" src="/images/Cirques.jpg" />
<img class="top" src="/images/Clown%20Fish.jpg" />
</div>
<p id="cf_onclick">Click me to toggle</p>

CSS:

#cf2 {
    position:relative;
    height:281px;
    width:450px;
    margin:0 auto;
}
#cf2 img {
    position:absolute;
    left:0;
    -webkit-transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    -o-transition: opacity 1s ease-in-out;
    transition: opacity 1s ease-in-out;
}

#cf2 img.transparent {
    opacity:0;
}
#cf_onclick {
    cursor:pointer;
}

JavaScript:

$(document).ready(function() {
    $("#cf_onclick").click(function() {
        $("#cf2 img.top").toggleClass("transparent");
    });
});

最佳答案

尝试将#cf2 img添加到选择器启动click事件

$("#cf_onclick, #cf2 img")

$(document).ready(function() {
  
  var n = -1 
  , imgs = $("#cf2 img")
  , fx = function(i, el) {
      return (el || imgs.eq(i)).fadeToggle(1000);
    };
  
  $("#cf_onclick, #cf2 img").click(function() {

    if (n === (-imgs.length)) {
      fx(n);
      n = -1;
      fx(null, imgs);
    } else {
      fx(n);
      --n
    };
    
  });
  
});
#cf2 {
  position: relative;
  height: 281px;
  width: 450px;
  margin: 0 auto;
}
#cf2 img {
  position: absolute;
  left: 0;
}

#cf_onclick {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="cf2" class="shadow">
  <img class="bottom" src="http://lorempixel.com/400/400/cats" />
  <img class="top" src="http://lorempixel.com/400/400/technics" />
  <img class="top" src="http://lorempixel.com/400/400/nature" />
  <img class="top" src="http://lorempixel.com/400/400/animals" />
</div>
<p id="cf_onclick">Click me to toggle</p>

关于单击时 JavaScript 淡入新图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29979451/

相关文章:

javascript - 放大图像并用鼠标指针移动它

javascript - bxSlider - 在 slider 内移动控件

javascript - Chrome 标签页切换破坏了我的幻灯片放映

jquery - Flexslider - 幻灯片之间可能有边距吗?

python - 将 Numpy 数组转换为图像

javascript - 如何知道我们被重定向到哪个网站

javascript - 如何从本地机器加载图像到JS对象避免加载到服务器

javascript - 滚动到 View 时向元素添加类(可滚动的 div)

image - 如何编辑eps文件来更改字体?

javascript - 具有特定 ID 的表中动态添加 tr 的 jQuery 单击事件