首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >css3动画不是从jquery单击事件开始的

css3动画不是从jquery单击事件开始的
EN

Stack Overflow用户
提问于 2013-05-09 15:03:03
回答 4查看 1.8K关注 0票数 1

我有两个div标签,分别是卡1和卡2。当用户点击卡2时,卡2应该缩小,卡1应该放大。我使用css3转换和jquery单击事件来实现这一点。问题是它根本不会启动该动画。这是jsfiddle

以下是我的代码

代码语言:javascript
运行
复制
.card {
    border: 1px solid red;
    background: lightblue;
    visibility: hidden;
    transition: all 3s;
}
.card2 {
    width: 200px; height: 200px;
    border: 1px solid blue;
    background: orange;
    transition: all 3s;
}
.scaleUp {
    -webkit-transform: scale(1);
}
.scaleDown {
    -webkit-transform: scale(0);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-09 15:46:26

这是小提琴检查这个http://jsfiddle.net/sarfarazdesigner/Humu3/27/你可以修改它,并检查下面的代码css

代码语言:javascript
运行
复制
.card {
    border: 1px solid red;
    background: lightblue;
    transition: all 3s;
    visibility:hidden;
    width: 100px;
}
.card2 {
    width: 200px; height: 200px;
    border: 1px solid blue;
    background: orange;
    transition: all 3s;
}
.scaleUp {
    -webkit-transform: scale(2);/*Safari 5+, Chrome 10+*/
    -ms-transform: scale(2); /*Internet Exlorer 9+*/
    transform: scale(2);
}
.scaleDown {
    -webkit-transform: scale(0.50);/*Safari 5+, Chrome 10+*/
    -ms-transform: scale(0.50); /*Internet Exlorer 9+*/
    transform: scale(0.50);
}

jQuery

代码语言:javascript
运行
复制
$('.card2').click(function () {
    $('.card').css({visibility:'visible'}).addClass('scaleUp');
    $(this).addClass('scaleDown');
});
票数 1
EN

Stack Overflow用户

发布于 2013-05-09 15:10:12

试试这个:

代码语言:javascript
运行
复制
card = $('.card');
card2 = $('.card2');

card2.on('click', function () {
    card2.removeClass('scaleUp').addClass('scaleDown');
    card.removeClass('scaleDown').addClass('scaleUp');
});

card.on('click', function() {
    card.removeClass('scaleUp').addClass('scaleDown');
    card2.removeClass('scaleDown').addClass('scaleUp');
});

下面是CSS:

代码语言:javascript
运行
复制
.card {
    width: 0px; 
    height: 0px;
    border: 1px solid red;
    background: lightblue;
}
.card2 {
    width: 200px; 
    height: 200px;
    border: 1px solid blue;
    background: orange;
}
.scaleUp {
    width: 200px;
    height: 200px;
    transition: all 3s;
}
.scaleDown {
    width: 0px;
    height: 0px;
    transition: all 3s;
}

这里有一个你可以尝试的小提琴:http://jsfiddle.net/tkahn/Humu3/21/

票数 1
EN

Stack Overflow用户

发布于 2013-05-09 20:27:15

这是另一种方法,使用jQuery .animate();

代码语言:javascript
运行
复制
$('.card2').click(function () {
    $('.card').animate({
        width: '200',
        height: '200',
        fontSize: '100%',
        opacity: '1'
    }, 500, function () {});
    $('.card2').animate({
        width: '0',
        height: '0',
        fontSize: '0%',
        opacity: '0'
    }, 500, function () {});

    $('.card').click(function () {
        $('.card2').animate({
            width: '200',
            height: '200',
            fontSize: '100%',
            opacity: '1'
        }, 500, function () {});
        $('.card').animate({
            width: '0',
            height: '0',
            fontSize: '0%',
            opacity: '0'
        }, 500, function () {});
    });
});

这种方法有几个优点:

  • 对于较旧的浏览器,它应该会优雅地降级,不透明度可能会丢失,但缩放仍然有效。
  • div内的文本将随div一起缩放/隐藏。
  • 边框将随div一起隐藏。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16456251

复制
相关文章

相似问题

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