使用jQuery移动背景位置

时间:2011-12-07 14:49:50

标签: jquery css

尝试做类似的事情:jQuery background-position animation但不能让它发挥作用。想知道是否有人可以提供帮助。

我在页面上有一个jCarouselLite轮播。我有一个jCarousel的subnav,它在顶部有一个小箭头表示,这是与幻灯片中显示的幻灯片相关的subnav。由于jCarouselLite没有反馈功能,并且在项目中更改为另一个轮播太晚了,我需要看看我是否可以使用它。我以为我可以使用JS在与横幅相同的定时循环中移动背景位置,但它不起作用。

这是我做过的JS:

function bannav(){
        var sp = new Array(-880,-700,-520,-360,-180);
        var i=0;
        for(i===1;i<=5;i++){
            position = sp[i]+'px 0px';
            window.setInterval(function(){
                $('div.container div.banner-holder ul#controls').animate(function(){
                    $this.css('background-position', position);
                });
              }, 8000);
            if(i==5){i=0};
        }}

它正在做的就是把页面捆起来。我看着它是盲目的,所以我做了一些非常愚蠢的事情,提前道歉。任何帮助非常感谢。

Ť

2 个答案:

答案 0 :(得分:0)

可能是这个&#39;这个&#39;传递错误?

请参阅https://developer.mozilla.org/en/window.setInterval和&#39;&#39;此&#39;问题&#39;

答案 1 :(得分:0)

用上面提到的内容来看待这个

  function bannav(){
    var sp = new Array(-880,-700,-520,-360,-180);
    var i=0;
    for(i=1;i<=5;i++){
        position = sp[i]+'px 0px';
        window.setInterval(function(){
            $('div.container div.banner-holder ul#controls').animate(function(){
                $(this).css('background-position', position);
            });
          }, 8000);
        if(i==5){i=0};
    }}

我在这里做了一些改变。 1是我在之前的评论中更改了for循环。我=== 1正在检查我是否等于1并且与i的类型相同,我不认为这是你想要做的,你为你的for循环分配值。其次,在前面列出的'this'答案的背面,在jQuery的上下文中,我已将此更改为jquery $(this)对象,而您使用.css而不是'this',在这种情况下是现在引用正确的jquery对象(ul id =“controls”)我相信