首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery是否正在使用animate()重置边界属性?

jQuery是否正在使用animate()重置边界属性?
EN

Stack Overflow用户
提问于 2010-12-23 02:14:24
回答 1查看 446关注 0票数 1

为什么这不起作用?div有5px的边框,在鼠标悬停时,边框应该上升到10像素,在鼠标输出时,边框应该回到5,但不知何故,边框被重置为0,然后开始两个动画。

下面是我的代码:

代码语言:javascript
复制
<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script>
$(document).ready(function(){
    $("div").hover(function(){
        $(this).filter(":not(:animated)").animate({ borderWidth: 10 });
    },
    function(){
        $(this).filter(":not(:animated)").animate({ borderWidth: 5 });
    });
});
</script>
<style>
div{
border:5px solid #ccc;
}
</style>

<div>
Test div
</div>

我试过不使用边框速记(边框宽度和边框样式),它实际上不会改变任何东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-23 02:25:58

问题是borderWidthborderLeftWidthborderRightWidthborderTopWidthborderBottomWidth的简写属性。

animate方法不适用于速记属性。你需要使用它们中的每一个。

代码语言:javascript
复制
$(document).ready(function(){
    $("div").hover(function(){
        $(this).filter(":not(:animated)").animate({
            borderLeftWidth: 10,
            borderRightWidth: 10,
            borderTopWidth: 10,
            borderBottomWidth: 10
        });
    },
    function(){
        $(this).filter(":not(:animated)").animate({
            borderLeftWidth: 5,
            borderRightWidth: 5,
            borderTopWidth: 5,
            borderBottomWidth: 5
        });
    });
});

演示http://jsfiddle.net/gaby/ytKeK/

http://bugs.jquery.com/ticket/7085上查看对错误报告的官方回复

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

https://stackoverflow.com/questions/4512260

复制
相关文章

相似问题

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