【问题标题】:How to create a scale effect in jQuery如何在 jQuery 中创建缩放效果
【发布时间】:2013-08-14 02:44:46
【问题描述】:

我有以下CSS 转换:http://jsfiddle.net/cW3Ts/

这一直在跳跃并且在某些浏览器中不兼容/错误,所以我想使用jQuery 创建它。我已经将fadeIn 排序为这样(示例):

$(this).animate({backgroundColor: '#58a5e1'}, 400);

不幸的是,我发现在悬停时很难缩放/缓和 div。我尝试过为高度和宽度设置动画,但这确实会产生相同的效果。我还查看了jQuery UI 比例,当悬停时我无法让比例在 dic 上工作,他们的示例显示了一个切换,它完全破坏了悬停功能。有谁知道我可以使用的解决方案或插件,这样我就可以获得与CSS 类似的效果(规模和轻松)。

如果我研究了一整天并且几乎准备放弃,我将不胜感激!

【问题讨论】:

  • jQuery 不会比 CSS3 更好(最终浏览器支持,仅此而已)
  • jQuery UI Scale 无法解决任何问题,还是一样糟糕?哦亲爱的!只是我在顶部有另一个 div,并且跳跃的像素让我的按钮看起来很糟糕!
  • “跳跃”是什么意思?
  • @EddieJamsession 这意味着有些浏览器不支持 CSS3,你知道的..

标签: jquery jquery-ui css-transitions scale


【解决方案1】:

您可以使用jQuery animate,但我认为对于支持它们的浏览器,css 过渡看起来更流畅。您可能需要考虑使用条件注释或类似的东西,以便仅在必要时使用脚本。

Working Example

$('.cta').hover(function () {
    $(this).removeClass('dark-grey-bg', 800).addClass('blue-bg-fade', 400).animate({
        height: $(this).height() * 1.05,
        width: $(this).width() * 1.05
    }, 300);
    $(this).find('a').removeClass('grey').addClass('white').animate({
        fontSize: '105%'
    }, 300);

}, function () {
    $(this).addClass('dark-grey-bg', 400).removeClass('blue-bg-fade', 800).animate({
        height: $(this).height() / 1.05,
        width: $(this).width() / 1.05
    }, 300);

    $(this).find('a').removeClass('white', 400).addClass('grey', 800).animate({
        fontSize: '100%'
    }, 300);
});

这是一个适用于 IE9 及以下版本的条件注释示例

<!--[if lte IE 9]>
    // insert script here
<![endif]-->

【讨论】:

  • 感谢您的帮助,所以添加的行是它获取当前的高度和宽度并将其缩放 1.05(以 300 的速度)。然后返回宽度和高度——太棒了!我可以在某些按钮上使用它,但在我的播放按钮上,我在按钮顶部有一个 div,播放图像在动画时进入按钮内部 - 我会为此以及 IE 想出另一种解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多