首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery设置文本大小动画,然后返回到上一状态

使用jQuery设置文本大小动画,然后返回到上一状态
EN

Stack Overflow用户
提问于 2011-03-17 13:57:13
回答 2查看 19.6K关注 0票数 7

单击时,我正在处理动画文本。

我有定义大小的不同类的按钮:

代码语言:javascript
复制
<div class="button-1">Click Me!</div>
<div class="button-2">Click Me!</div>
<div class="button-3">Click Me!</div>

.button-1 {font-size: 10px;}
.button-2 {font-size: 20px;}
.button-3 {font-size: 30px;}

然后,当一个人被点击时,它会被动画到更大的尺寸。

代码语言:javascript
复制
    $('.button-1,.button-2,.button-3').click(function(){
    $(this).animate({fontSize: "40px" }, 1000 );

我的问题是,我一次只想要一个大的,让所有的兄弟姐妹都恢复到原来的大小。我看到animate函数是通过向文本添加内联样式来工作的,有没有一种方法可以删除所有附加到点击按钮兄弟项上的内联样式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 14:01:33

这样就行了,看起来也好多了。

代码语言:javascript
复制
$(document).ready(function() {
    $('.button-1,.button-2,.button-3').each(function() {

        $(this).data('original-size', $(this).css('fontSize'));

        $(this).click(function() {

            $(this).animate({
                fontSize: "40px"
            }, 1000);

            $(this).siblings().each(function() {

                var originalSize = $(this).data('original-size');

                if ($(this).css('fontSize') != originalSize) {

                    $(this).animate({
                        fontSize: originalSize
                    }, 500);
                }
            });

        });
    });
});

jsFiddle

如果你很懒,你也可以这样做...

代码语言:javascript
复制
$(this).siblings().removeAttr('style')

jsFiddle

但是,如果您或jQuery通过style属性添加额外的样式,则此解决方案不可靠,并且可能需要进行痛苦的调试。我建议您使用以前的代码。

票数 11
EN

Stack Overflow用户

发布于 2011-03-17 14:14:56

这里有一个更短的方法

代码语言:javascript
复制
$(document).ready(function() {
    $('.button-1,.button-2,.button-3').click(function() {
        $('div').removeClass('button-4', 50);
        $(this).addClass('button-4', 100);

    });
});

http://jsfiddle.net/nLnvY/2/查看工作示例

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

https://stackoverflow.com/questions/5335430

复制
相关文章

相似问题

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