根据浏览器宽度移动背景图像

时间:2011-04-27 19:43:39

标签: css jquery

.leavesbg {
  background: #f7fff7 url(/images/leaves4.png) repeat-y fixed 480px top;
}

因此,如果页面的宽度超过800px,我想将bg图像向右移动一半。也就是说,如果他们在1024x640中查看它,我想在宽度上添加112((1024-800)/ 2)(所以... fixed 592px top;

这是我的jquery试图移动它

function moveBG() {
    var bgoffset =480;
    var pagewidth = $('body').width();

    if (pagewidth>800) {
        bgoffset=pagewidth-bgoffset;
        bgoffset=bgoffset/2;
    }
    $('.leavesbg').css(background-position: bgoffset +'px top');
}


    $(document).ready(function(){
    moveBG();
    $(window).resize(moveBG);

});

我希望我只是忘记一些简单的事情,但我仍然相对较新的jQuery。

3 个答案:

答案 0 :(得分:1)

bgoffset=bgoffset+'px top';
$('.leavesbg').css('background-position', bgoffset );

所以我做了一些原始的数学错误(但这与实际问题并不十分相关),但据我所知,我的代码中的实际错误是“改变css”行,我认为这很有效。可能有一个更好,更有效的方法,然后我上面的鹅卵石,所以我仍然欢迎如何更好地编码它的建议。 感谢。

答案 1 :(得分:0)

我用这个小提琴回答了类似的问题:

http://jsfiddle.net/9ZgWg/26/

以下是原始问题:centering an img within a div - both being resized

答案 2 :(得分:0)

很好,你在.css(attr,value)赋值中发现了语法错误。但是,如果您的pagewidet< = 800,则背景位置为“480”,而不是“480px top;”我认为这就是你想要的。还要记住css的常见问题,如果你的元素'.leavesbg'在class属性后面有一个style属性,并且样式有'background-position',它就会胜出。