私は本当に簡単なことをしようとしています。5秒ごとにjQueryを使用してページの背景画像を変更します。
プロジェクトはASP.NetMVC 4プロジェクトであるため、対応する_Layoutページ、@ RenderSection、@ RenderBody、およびフレームワークが提供するすべての優れた機能があります。ですから、私の問題は、どの要素をターゲットにするべきか、そしてどのように画像を変更するべきかを理解できていないということです。
パズルのピースは次のようなものです。
_Layout.cshtmlファイル:
<body>
<!-- some code that displays the navigation menu links -->
<div id="body>
@RenderSection("featured", required: false)
<section class="content-wrapper main-content clear-fix">
@RenderBody()
</section>
</div>
<!-- some more code for the footer and some other irrelevant things -->
</body>
次のスタイルシートファイルがあります。
.main-content
{
background-image: url("../Images/slide-1-728.jpg");
opacity: 0.3;
}
最後に、jQueryスクリプトは次のようになります。
var backgroundHandler = {
fileIndex: 1,
backgroundImageFileName: "slide-1-728.jpg",
updateBackgroundImage: function () {
return backgroundHandler.backgroundImageFileName.replace(/-[0-9]+-/, "-" + ++backgroundHandler.fileIndex + "-");
},
setBackgroundImage: function () {
document.body.background = $("#url").val() + backgroundHandler.updateBackgroundImage();
}
};
$(document).ready(function () {
setInterval(backgroundHandler.setBackgroundImage, 5000);
});
背景は実際には5秒ごとに更新されますが、ナビゲーションメニューがあるセクションと、スタイルシートで最初に設定された背景画像は同じままです。
スクリプトのdocument.body.backgroundステートメントの代わりに、次のことを実行しようとしました。
setBackgroundImage: function () {
var imageUrl = $("#url").val() + backgroundHandler.updateBackgroundImage();
$(".main-content").css("background-image", imageUrl);
}
しかし、それを行うと何も起こらないように見えますが、画像は更新されず、ページに目に見える変化は表示されません。
パズルの欠けている部分は何ですか?