Javascript 如何在使用jquery点击超链接时更改页面上的壁纸?
我的页面上有div部分,负责整个背景,css如下所示:Javascript 如何在使用jquery点击超链接时更改页面上的壁纸?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的页面上有div部分,负责整个背景,css如下所示: #section2{ background-image: url(img/first.jpg); background-attachment: fixed; background-size: cover; z-index: 1; } 稍后在我的网页上,我有以下菜单项: <div class="section" id="section2"> <ul id="navlist"> &
#section2{
background-image: url(img/first.jpg);
background-attachment: fixed;
background-size: cover;
z-index: 1;
}
稍后在我的网页上,我有以下菜单项:
<div class="section" id="section2">
<ul id="navlist">
<li><a href="#" class="whatsthat">One</a></li>
<li><a href="#" class="howitworks">Two</a></li>
<li><a href="#" class="howmuch">Three</a></li>
<li><a href="#" class="whyexists">Four</a></li>
</ul>
</div>
这是因为在同一位置显示/隐藏不同的面板。我想实现为每个面板显示不同背景的可能性,例如,当用户选择whyexists时,它可以设置背景图像:url(img/fourth.jpg)代码>,等等。
我怎样才能做到呢?$('section2').css({'background-image':'url(img/fourth.jpg)})代码>只需使用jQuerycss()更改#Section 2
的背景即可:
使用$().css(属性、值)
您可以通过多种方式处理此问题:
为每个背景图像创建一个类,并将其应用于单击处理程序中所需的元素:
.bg1 {
background-image: url(/path/to/some/background.jpg);
}
.bg2 {
background-image: url(/path/to/some/other/background.jpg);
}
$element.addClass("bg1");
$anotherElement.addClass("bg2");
在jQuery中单击处理程序:
.bg1 {
background-image: url(/path/to/some/background.jpg);
}
.bg2 {
background-image: url(/path/to/some/other/background.jpg);
}
$element.addClass("bg1");
$anotherElement.addClass("bg2");
或者您可以直接修改内联css:
$element.css("background-image", "url(/path/to/some/background.jpg)");
希望这对您有所帮助。感觉您的JavaScript过于复杂了很多。顺便说一下,我相信jQuery的.bind()现在已经不受欢迎了。我以为它实际上已经被弃用了,但我想它还没有被弃用
不管怎样,我会这样做。显然,我对您的HTML结构做了一些假设
$('#navlist').on('click', 'a', function(e) {
var linkClass = $(this).attr('class'),
requestedSection = $('#' + linkClass + 'div');
requestedSection.siblings().fadeOut();
requestedSection.fadeIn();
$('body').css('background-image', '/images/backgrounds/' + linkClass + '.jpg');
e.preventDefault();
});
$('#navlist').on('click', 'a', function(e) {
var linkClass = $(this).attr('class'),
requestedSection = $('#' + linkClass + 'div');
requestedSection.siblings().fadeOut();
requestedSection.fadeIn();
$('body').css('background-image', '/images/backgrounds/' + linkClass + '.jpg');
e.preventDefault();
});