私は一日中これを理解しようとしていて、ぐるぐる走り続けています。助けてもらいたいと思っていた問題が 2 つあります。最初: div 内に表示される jquery バックグラウンド スライドショーがあります。問題は、背景がフェードアウトして新しい画像が導入されると、背景が意図されていた DIV の子もフェードアウトすることです。ここの私のウェブサイトで見ることができます。子もフェードアウトしないように、親 DIV を分離するにはどうすればよいですか? スライドショーのコードは次のとおりです。
<script language="JavaScript" type="text/javascript">
$(document).ready(function(){
var imgArr = [ // relative paths of images
'http://www.ind-mediagroup.com/wp-content/themes/twentyeleven/indeximg/1.jpg',
'http://www.ind-mediagroup.com/wp-content/themes/twentyeleven/indeximg/2.jpg',
'http://www.ind-mediagroup.com/wp-content/themes/twentyeleven/indeximg/3.jpg',
'http://www.ind-mediagroup.com/wp-content/themes/twentyeleven/indeximg/4.jpg'
];
var preloadArr = [];
var i;
/* preload images */
for(i=0; i < imgArr.length; i++){
preloadArr[i] = new Image();
preloadArr[i].src = imgArr[i];
}
var currImg = 1;
var intID = setInterval(changeImg, 6000);
/* image rotator */
function changeImg(){
$('#centerdiv').animate({opacity: 0}, 1000, function(){
$(this).css('background','url(' +
preloadArr[currImg++%preloadArr.length].src +') center fixed no-repeat');
}).animate({opacity: 1}, 1000);
$('#centerdiv').css({'background-size': '100% 100%'}); }
});
</script>
この問題に関連する CSS は次のとおりです (その多くは冗長である可能性があります)。
#centerdiv {
width:100%;
height: 642px;
background-color: #333333;
background-image:url('http://www.ind-mediagroup.com/wp- content/themes/twentyeleven/indeximg/houston-night.jpg');
background-repeat: no-repeat;/* i believe the next few lines are dealt with in the jquery code*/
background-size: 100% 100%;
background-position: center;
background-attachment: fixed;
top:0px;
padding-top: 55px;
}
.contentdiv {
width: 78%;
height: 75%;
margin: auto auto auto 140px;
background-image: url('http://www.ind-mediagroup.com/wp- content/themes/twentyeleven/indeximg/whitetransbg.png');
position: relative;
z-index: 10;
}
この問題に関する HTML は次のとおりです。
<div id="centerdiv">
<div class="contentdiv">
<div class="wrappercontent">
<div id="contentname">
<p class="contentTextHeader">+<?php the_title() ?></p>
</div>
<div id="content">
<?php
if (have_posts()) :
while (have_posts()) :
the_post();
the_content();
endwhile;
endif;
?>
</div>
<div id="contentright">
<?php echo apply_filters('the_content', get_post_meta($post->ID, 'page_image', true) ); ?>
</div>
</div>
</div>
</div>
2 番目の問題はこれです: 背景画像が div スペースの 100% を埋めるようにします。以下を追加することで、Chromeでこれを機能させることができました。
$('#centerdiv').css({'background-size': '100% 100%'});
私は jquery の専門家ではないので、専門家ではありません。上記のコードが正しいかどうかもわかりませんが、他のブラウザーでは奇妙な効果が得られます。より大きな画像が表示され、直後に正しいサイズの画像が表示されます。既存のjqueryコードを使用して、これを行う方法はありますか?
どんな助けでも本当に感謝しています。私は自分が望む場所にとても近いです。