web-dev-qa-db-ja.com

HTML / CSSスライドショーの背景をフェードさせる方法は?

背景のスライドショーを通常のスライドショーのように他の写真にフェードインさせる方法を考えていました。私は多くのコードを試しましたが、まだ成功していません。

これで、背景を別の写真に変更するコードができました。これはうまく機能しますが、フェードしません。これを追加する方法はありますか?

これがコードです

<html>
<head>

<style>


body{
/*Remove below line to make bgimage NOT fixed*/
background-attachment:fixed;
background-repeat: no-repeat;
background-size: cover;
/*Use center center in place of 300 200 to center bg image*/
background-position: 0 0; background-
}
</style>

<script language="JavaScript1.2">

//Background Image Slideshow- © Dynamic Drive (www.dynamicdrive.com)
//For full source code, 100's more DHTML scripts, and TOS,
//visit http://www.dynamicdrive.com

//Specify background images to slide
var bgslides=new Array()
bgslides[0]="http://i892.photobucket.c…

bgslides[1]="http://i892.photobucket.c…

bgslides[2]="http://i892.photobucket.c…

//Specify interval between slide (in miliseconds)
var speed=2000

//preload images
var processed=new Array()
for (i=0;i<bgslides.length;i++){
processed[i]=new Image()
processed[i].src=bgslides[i]
}

var inc=-1

function slideback(){
if (inc<bgslides.length-1)
inc++
else
inc=0
document.body.background=processed[inc…
}

if (document.all||document.getElementById)
window.onload=new Function('setInterval("slideback()",spee…

</script>

</head>

</html>

何か提案があれば私に知らせてください。また、私はコーディングが得意ではなく、JavaScriptについての手がかりがないので、どうしたらよいか説明してください。

6
AJ Marshall

jsFiddleでの作業例

代わりにこのコードを使用してください:(このコードが機能するためには、 jQuery をロードする必要があることに注意してください)

HTML

<div class="fadein">
    <img src="http://farm9.staticflickr.com/8359/8450229021_9d660578b4_n.jpg">
    <img src="http://farm9.staticflickr.com/8510/8452880627_0e673b24d8_n.jpg">
    <img src="http://farm9.staticflickr.com/8108/8456552856_a843b7a5e1_n.jpg">
    <img src="http://farm9.staticflickr.com/8230/8457936603_f2c8f48691_n.jpg">
    <img src="http://farm9.staticflickr.com/8329/8447290659_02c4765928_n.jpg">
</div>

CSS

.fadein {
    position:relative;
    height:320px;
    width:320px;
}

.fadein img {
    position:absolute;
    left:0;
    top:0;
}

JavaScript

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('.fadein img:gt(0)').hide();

setInterval(function () {
    $('.fadein :first-child').fadeOut()
                             .next('img')
                             .fadeIn()
                             .end()
                             .appendTo('.fadein');
}, 4000); // 4 seconds
});
</script>
12
Jeff Miller