代码之家  ›  专栏  ›  技术社区  ›  Alex Mcp

从jquery中的$(this)获取css值

  •  1
  • Alex Mcp  · 技术社区  · 15 年前

    所以我有一个工作代码,通过一个插件来动画一个BG图像。这是一个通用的解决方案,尽管类中的每个元素都具有相同的bg图像;我使用的是一个sprite,它为导航栏的每一列都具有唯一的图像。密码是非常危险的:

    $('#nav a')
    .mouseover(function(){
        $(this).stop().animate(
            {backgroundPosition:"(0 -250px)"}, 
            {duration:500})
        })
    .mouseout(function(){
        $(this).stop().animate(
            {backgroundPosition:"(0 0)"}, 
            {duration:500})
        })
    

    这很好,所以我可以为每个元素设置一个Y轴偏移量,但是每个链接都有自己的X轴偏移量,根本不会改变/被设置动画。示例CSS:

    li.downloads a {
        background:url(img/navsprite.png) repeat -318px -9px;
    }
    

    我想滚 -318px -9px 像这样的 -318px 200px 但是对于另一个元素我想改变 -482px -9px -482px 200px . 只有y偏移量可以改变,但我不太清楚jquery的语法,无法从$(this)元素的css中提取该值并将其放入animate参数中。谢谢!

    3 回复  |  直到 15 年前
        1
  •  5
  •   Sampson    15 年前

    $(this).css("background-position");
    

    var bgpos = $(this).css("background-position").split(" ");
    

    bgpos[0] bgpos[1]

        2
  •  0
  •   Jasper De Bruijn    15 年前



    $('#nav a')
    .mouseover(function(){
        $(this).stop().animate(
            {backgroundPosition:"(+=0 -250px)"}, 
            {duration:500})
        })
    .mouseout(function(){
        $(this).stop().animate(
            {backgroundPosition:"(+=0 0)"}, 
            {duration:500})
        })
    
        3
  •  0
  •   Tim    15 年前
    jQuery.fn.getBackgroundxPosition = function(val) {
        var position = $(this).css('background-position');
        var position_array=val.split(' ');
        var x_pos = position_array[0];
    
        if(typeof(position) === 'undefined'){ //IE fix
            x_pos = $(this).css('background-position-x');
        }
    return x_pos;
    };