首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery动画背景位置

jQuery动画背景位置
EN

Stack Overflow用户
提问于 2011-03-03 01:24:17
回答 10查看 138.9K关注 0票数 59

我好像不能让它工作。

代码语言:javascript
运行
复制
$('#product_family_options_dd').animate({
  height: '300px',
  width: '900px',
  backgroundPosition: '-20px 0px',          
},

高度和宽度是动画效果,而不是背景效果。

EN

回答 10

Stack Overflow用户

发布于 2011-10-08 08:28:44

如果你只是像这样使用不同的值,你不需要使用背景动画插件:

代码语言:javascript
运行
复制
$('.pop').animate({
  'background-position-x': '10%',
  'background-position-y': '20%'
}, 10000, 'linear');
票数 96
EN

Stack Overflow用户

发布于 2011-03-03 01:29:07

我猜这可能是因为它需要一个单一的值?

摘自animate page on jQuery

动画属性和值

除以下说明外,所有动画属性都应动画化为单个数值;大多数非数值属性不能使用基本jQuery功能进行动画处理。(例如,可以为宽度、高度或左侧设置动画,但不能设置背景色。)除非另有指定,否则属性值将被视为像素数。可以在适用的情况下指定单位em和%。

票数 40
EN

Stack Overflow用户

发布于 2013-01-08 23:46:53

由于jQuery不支持开箱即用,到目前为止我遇到的最好的解决方案是在jQuery中定义您自己的CSS hooks。本质上,这意味着定义自定义方法来获取和设置CSS值,这也适用于jQuery.animate()。

github上已经有一个非常方便的实现:https://github.com/brandonaaron/jquery-cssHooks/blob/master/bgpos.js

有了这个插件,你就可以这样做了:

代码语言:javascript
运行
复制
$('#demo1').hover(
  function() {
    $(this).stop().animate({
      backgroundPositionX: '100%',
      backgroundPositionY: '100%'
    });
  },
  function () {
    $(this).stop().animate({
      backgroundPositionX: '105%',
      backgroundPositionY: '105%'
    });
  }
);

对我来说,这在目前为止测试过的所有浏览器上都有效,包括IE6+。

我之前在网上放了一个快速的demo,如果你需要进一步的指导,你可以把它拆开。

票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5171080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档