0

我是jQuery的新手,我在尝试获取某些工作时遇到了一些麻烦。使用jQuery切换背景位置

基本上我有一个wordpress网站,在每个页面上都是body标签的不同背景图片。我希望能够在一个按钮上切换,然后在主体背景图像上放大约500px。

基本上我有一个隐藏的接触面积,在我的页面的顶部,当你点击按钮(a.contact)隐藏的接触面积(#contactArea)通过从顶部落下透露,但是当contactArea下降一些我的背景图像被隐藏,直到你再次点击按钮。

我想要实现的是当隐藏的contactArea被揭示时,背景图像会丢弃(仍然完全可见),以便背景图像始终可见。我希望这是有道理的?!

我的CSS代码:

body.page.page-id-240 { 
    background:url(images/main-home-bg.jpg) center 600px no-repeat; 
} 

我现在的jQuery是:

$(window).load(function() { 
    $("#contactArea").css('height', '0px'); 

    $("a.contact").toggle( 
     function() { 
      $("#contactArea").animate({ height: "225px" }, { queue:false, duration: 500, easing: 'linear' }) 
     }, 
     function() { 
      $("#contactArea").animate({ height: "0px" }, { queue:false, duration: 500, easing: 'linear' }) 
     } 
    ); 
}); 

如果有人可以帮助将不胜感激! :-)

+0

你能不能把你的背景图像上#contactArea? – Jon 2012-02-07 11:04:07

+0

感谢您的帮助。 - 否,因为背景图像是分配给body元素的类(.page)。 contactArea部分工作正常,它只是隐藏了一些body的背景图像,我试图让contactArea在切换时下拉身体背景图像。 – PK333 2012-02-07 12:03:48

回答

0

试试这个:

$("a.contact").toggle( 
    function() { 
     $("#contactArea").animate({ height: "225px" }, { queue:false, duration: 500, easing: 'linear' }) 
     $("body.page.page-id-240").animate({ backgroundPosition: "center 825px" }); 
    }, 
    function() { 
     $("#contactArea").animate({ height: "0px" }, { queue:false, duration: 500, easing: 'linear' }) 
     $("body.page.page-id-240").animate({ backgroundPosition: "center 600px" }); 
    } 
); 
+0

嗨Rory McCrossan 感谢您的帮助,我尝试了您的建议,但是背景图片仍然没有在切换上移动。我不需要在body元素中添加body类(.page.page-id-240)吗? – PK333 2012-02-07 12:00:53

+1

是的,你说得对。我有一个大脑褪色。我已经更新了答案。 – 2012-02-07 12:04:27

+0

尝试了你的建议,但仍然没有看。 contactArea显示时,身体图像仍不会移动。不知道我做错了什么 - 让我疯狂。你认为有可能有两个身体类别,并切换到不同的类别会显示出来。所以你会有:class1)body.page.page-id-240 {background:url(images/main-home-bg.jpg)center 600px no-repeat; }然后是class2)body.page.page-id-240 {background:url(images/main-home-bg.jpg)center 900px no-repeat; } – PK333 2012-02-07 12:39:06