繁体   English   中英

如何淡出JS中的图像?

[英]How do I fade out images in JS?

我正在尝试使用带有fadeIn和fadeOut方法的JS创建幻灯片。 问题在于下一张图像会淡入,而上一张图像不会淡出。

我想在JS代码中切换位置样式,以便在网站加载时容器将接受其中的内容并进行适当缩放。

我创建了一个函数来切换位置样式。

这是到目前为止我得到的:

 $(document).ready(function() { $("#slideshow > div:gt(0)").hide(); function toggle() { document.getElementById("img").style.position = "absolute"; } setInterval(function() { $('#slideshow > div:first') .toggle() .fadeOut(1500) .next() .fadeIn(1500) .end() .appendTo('#slideshow'); }, 5000); }); 
 #slideshow { position: relative; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; height: auto; } .center-img { image-orientation: from-image; position: relative; margin: auto; width: 100%; height: auto; } 
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script> <div id="slideshow"> <div id="slideshow_div"> <img class="center-img" src="http://i.imgur.com/RRUe0Mo.png"> </div> <div id="slideshow_div"> <img class="center-img" src="http://keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image1.jpg"> </div> </div> 

我只是不确定在淡入下一个图像之前如何使图像淡出。

提前致谢

只需删除切换,然后执行淡出回调函数中的下一个操作即可:

这是解决方案

 $(document).ready(function() { $("#slideshow > div:gt(0)").hide(); function toggle() { document.getElementById("img").style.position = "absolute"; } setInterval(function() { $('#slideshow > div:first') .fadeOut(1500,function() { // Animation complete. $(this).next().fadeIn(1500) .end() .appendTo('#slideshow'); }) }, 5000); }); 
 #slideshow { position: relative; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; height: auto; } .center-img { image-orientation: from-image; position: relative; margin: auto; width: 100%; height: auto; } 
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script> <div id="slideshow"> <div id="slideshow_div"> <img class="center-img" src="http://i.imgur.com/RRUe0Mo.png"> </div> <div id="slideshow_div"> <img class="center-img" src="http://keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image1.jpg"> </div> </div> 

前一个不会消失

在您的代码中:

$('#slideshow > div:first')
  .toggle()
  .fadeOut(1500)

综观文档- http://api.jquery.com/toggle/ -你是隐藏它,然后才fadeOut (一种无形的元素)

首先,有多个具有相同ID的元素并不可行。

其次,为了产生淡入淡出效果,必须将图像放置在彼此的顶部,并删除toggle()函数: https : //jsfiddle.net/0rxqbuu5/

那是你的目标吗?

 $(document).ready(function() { $("#slideshow > div:gt(0)").hide(); function myToggle() { $(".center-img").css("position","absolute"); } setInterval(function() { $('#slideshow > div:first') .fadeOut(1500,function(){myToggle()}) .next() .css("z-index",100) .fadeIn(1500) .end() .appendTo('#slideshow'); }, 5000); }); 
 #slideshow { position: relative; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; height: auto; } .slideshow_div { position: absolute; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; height: auto; } .center-img { image-orientation: from-image; position: relative; margin: auto; width: 100%; height: auto; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="slideshow"> <div class="slideshow_div"> <img class="center-img" src="https://pixabay.com/static/uploads/photo/2014/07/27/20/29/landscape-403165_960_720.jpg"> </div> <div class="slideshow_div"> <img class="center-img" src="http://keenthemes.com/preview/metronic/theme/assets/global/plugins/jcrop/demos/demo_files/image1.jpg"> </div> </div> 

<html> <head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $(".btn1").click(function(){
        $("p").fadeOut()
    });
    $(".btn2").click(function(){
        $("p").fadeIn();
    });
});
</script>
</head>
<body>

<p>This is a paragraph.</p>

<button class="btn1">Fade out</button>
<button class="btn2">Fade in</button>

</body>
</html>

在div上设置图片,以便淡出它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM