【问题标题】:Animating specific corners on hover with jQuery使用 jQuery 在悬停时为特定角设置动画
【发布时间】:2012-07-24 09:42:05
【问题描述】:

我找到了一个很好的例子 right here 讨论如何为边框的特定角设置动画。但是,似乎我没有得到任何改变。在输入和输出功能中插入警报后,我确认它们已被解雇。但是,对角化的任何更改都不存在。

这与我如何设置 div 的样式有关吗?

div.menuItem {
    border-width: 5px 3px;
    border-style: solid;
    border-radius: 25px 45px 25px 45px;
    font: 30px Arial;
    font-weight: bold;
    padding: 15px;
    display: block;
    width: 200px;
    border-color: #00bb00;
    color: #fff;
    background-color:#8822cc;
    -webkit-text-stroke: 1px #000;
}

这是脚本。

$('div.menuItem').hover(function () {
            alert("in");
    $(this).animate({
        "MozBorderRadiusTopleft": '50px',
        "MozBorderRadiusTopright": '50px'
    }, 900);
}, function () {
            alert("out");
    $(this).animate({
        "MozBorderRadiusTopleft": '25px',
        "MozBorderRadiusTopright": '25px'
    }, 900);
});

【问题讨论】:

  • 为什么这被否决了,为什么现在?!已经两年多了……

标签: jquery css


【解决方案1】:

你可以简单地使用CSS transition:

div.menuItem {
    border-radius: 25px 45px 25px 45px;
    transition: border-radius .9s;
    /* all other properties... */
}
div.menuItem:hover {
    border-radius: 25px;
}

这是小提琴:http://jsfiddle.net/ucVPg/

P.S.不要忘记供应商前缀。

【讨论】:

  • ?!我删除了小提琴中的 JS 部分,它仍在工作。你的意思是我根本不需要JS来做到这一点?过渡风格对我来说完全是新闻,所以非常酷。现在,假设我想在“悬停”之外的其他东西上为 div 设置动画。那我就得靠JS了吧?在这种情况下,我怎样才能让它工作?
  • @KonradViltersten - 那么你所要做的就是在你的 JS 中设置一个类。见这里:jsfiddle.net/ucVPg/1
  • 另外,我只是注意到,虽然它在 jsFiddle 中似乎工作正常,但在我的机器上它只是点击了。没有逐渐过渡,只是偷看。有什么建议吗?
  • 就像我说的:不要忘记vendor prefixes。在小提琴中,我使用了一个名为 -prefix-free 的 JS 库,它会自动添加供应商前缀。
  • @KonradViltersten - 如果您认为自己添加所有供应商前缀太麻烦,请使用 -prefix-free。或通过prefixr 运行您的代码。
猜你喜欢
  • 1970-01-01
  • 2011-01-12
  • 2016-05-09
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
相关资源
最近更新 更多