【问题标题】:jQuery background position not animatejQuery背景位置没有动画
【发布时间】:2013-08-16 09:13:20
【问题描述】:
var d= $('#menu-top-menu').children();
d.hover(function(){
    var e= $(this).position().left;
    var f= $(this).parent().position().left;
    var g= e-f;
    $('#menu-top-menu').animate({backgroundPosition, g + "px 3px"});
    console.log(g);
});

我不知道为什么它没有动画。 你能给我一些线索来解决这个问题吗? 谢谢

【问题讨论】:

标签: jquery jquery-animate


【解决方案1】:

您需要单独提供动画属性,并且正确的语法是用:而不是逗号分隔对象参数的键/值。试试这个:

var d= $('#menu-top-menu').children();
d.hover(function(){
    var e= $(this).position().left;
    var f= $(this).parent().position().left;
    var g= e-f;
    $('#menu-top-menu').animate({
        'background-position-x': g + 'px', 
        'background-position-y': '3px'
    });
    console.log(g);
});

你也可以省略 background-position-y 假设它永远不会改变,并且在 CSS 中设置。

【讨论】:

  • @architesa 检查这个$('#menu-top-menu').animate(backgroundPosition:"("+g +"'px' 3px)");
  • @Tushar,你测试过那个代码吗?它似乎包含一个没有大括号的对象文字,这是一个语法错误。
  • @FrédéricHamidi stackoverflow.com/questions/5171080/… 在这里你可以看到它可以在没有花括号的情况下完成
  • @Tushar,真的吗?在哪里?如果您指的是 Jonathan Head 和 Mark 的答案,它们只包含部分代码。
【解决方案2】:

检查一下...希望它会起作用(寻求帮助:http://api.jquery.com/animate/):

$("#menu-top-menu").animate({
    background-position-x:"20px", 
    background-position-y: "3px"
  },1500);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2011-03-01
    • 1970-01-01
    • 2011-07-27
    • 2011-05-03
    • 2012-02-09
    • 1970-01-01
    相关资源
    最近更新 更多