javascript - 悬停时平滑按钮增长和按钮收缩动画

标签 javascript jquery html css animation

我正在尝试制作一个相当简单的动画;在鼠标悬停时,按钮将动画变大。当不悬停时,它会恢复到原来的大小。但是,每当我尝试此示例代码时,它都会将按钮变形为奇数大小

$('.btn').hover(function() {
    $(this).removeClass('btn-primary').addClass('btn-warning');
    $(this).stop().animate({
        'height': $(this).height() * 2,
        'width': $(this).width() * 1.3
    }, 300);
}, function() {
    $(this).removeClass('btn-warning').addClass('btn-primary');
    $(this).stop().animate({
        height: $(this).height(),
        width: $(this).width()
    }, 300);
});

http://jsfiddle.net/RBLqY/1/

如何解决这个问题?

最佳答案

我不完全确定为什么您的代码会失败,似乎您在返回到原始大小时出现了某种计算错误。摆弄了一下后,我找到了这个解决方案。通过对填充而不是高度和宽度进行动画处理,您在调整链接大小时不必担心高宽比。

$('.btn').hover(function() {
    $(this).removeClass('btn-primary').addClass('btn-warning');
    $(this).stop().animate({
        padding: '12px'
    }, 300);
}, function() {
    $(this).removeClass('btn-warning').addClass('btn-primary');
    $(this).stop().animate({
        padding: '7px'
    }, 300);
});

jsfiddle

希望这对您有所帮助。

关于javascript - 悬停时平滑按钮增长和按钮收缩动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177619/

相关文章:

javascript - asp.net 如何让网站达到全宽和全高

javascript - 如何让浏览器记住通过ajax和jquery生成的多选项卡分页内容中显示的最后一页?

html - 显示 : Flex loses right padding when overflowing?

javascript - 在 flot 中创建图形中断

javascript - 使用 JQuery 随机显示一个 div 类

javascript - 为什么列表项在 body 滚动时没有改变?

html - 使用 CSS 在单个元素中使用多语言样式

php - 上传后如何显示保存在文件夹中的图像

javascript - 我怎样才能拥有类型的功能(arr : T[]) => T in C++ that compile to WebAssembly?

javascript - 元素未更新 html Polymer V3 上的值