【问题标题】:CSS3 animation onclickCSS3 动画点击
【发布时间】:2015-07-07 18:40:06
【问题描述】:

我有两个数字,一个蓝色和一个红色。我有四个按钮,它们使用 JavaScript 来切换蓝色和红色方块的 CSS 规则。

问题是当我点击“播放红色”按钮开始为红色方块设置动画时,它消失了。我已经检查了代码,但我不知道我在这里错过了什么。

当我使用左/右按钮旋转蓝色方块时,会出现第二个问题。当我第一次击中它时,它会旋转。但是每当我再次按下左/右按钮时,它都会重置到起始位置,然后再次旋转 60 度。我的目标是禁用位置重置。因此,如果您按两次左右按钮,蓝色方块现在应该旋转了 120 度。

小提琴:https://jsfiddle.net/pbukq2vu/

右键 :

document.getElementById('button1').addEventListener('click', function() {
    document.getElementById('blue').classList.remove('rotateright', 'rotateleft');
    setTimeout(function(){
        document.getElementById('blue').classList.add('rotateright');    
    },100)

});

左键:

document.getElementById('button2').addEventListener('click', function() {
    document.getElementById('blue').classList.remove('rotateleft');
    setTimeout(function(){
        document.getElementById('blue').classList.add('rotateleft');        
    },100)
});

播放红色按钮:

document.getElementById('button3').addEventListener('click', function() {
    document.getElementById('red').classList.add('animate');
});

停止红色按钮:

document.getElementById('button4').addEventListener('click', function() {
    document.getElementById('red').classList.remove('animate');
});

【问题讨论】:

    标签: javascript html css


    【解决方案1】:

    用css替换这两个类

    #red {
        background-color:#ffaaaa;
        width:50px;
        height:50px;
        position:relative;
        margin-left: 150px;
        margin-top:20px;
        border:thin;
        border-color:#000;
        border-width:1px;
        -webkit-transition: left 3s; 
        transition: left 3s;
        left:10px;
    }
    .animate {
        left: 100px !important;
    }
    

    JSfiddle

    【讨论】:

    • 我忘了补充一点,红色方块应该从它的位置向右移动,然后慢慢地回到原来的位置,循环设置为无限,直到你按下停止按钮。如果您检查我应用于元素的 css 规则,您就会明白我的意思。我试图在这个例子中添加无限,但它不起作用。你能告诉我怎么做吗?同样,你有没有解决蓝色为什么会这样的问题?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多