每次点击时Jquery触发动画(问题)

时间:2017-10-04 09:55:29

标签: jquery html css css3 animation

我需要触发每个按钮上的动画点击不切换按钮类,就像我在我的代码片段上所示:

我尝试使用addClass()removeClass()类似的方法,但它没有按预期工作,这是代码:



$(document).ready(function () {
    $("button[class*='navbar-toggler']").click(function () {
        $(this).toggleClass("my-animation")
    });
})

@keyframes my-animation {
	16.65% {
		transform: translateY(8px);
	}

	33.3% {
		transform: translateY(-6px);
	}

	49.95% {
		transform: translateY(4px);
	}

	66.6% {
		transform: translateY(-2px);
	}

	83.25% {
		transform: translateY(1px);
	}

	100% {
		transform: translateY(0);
	}
}

.my-animation {
		animation-name: my-animation;
		animation-duration: 1s;
		animation-timing-function: ease-in-out;
		animation-iteration-count: 1;
}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navToggler" aria-controls="navToggler" aria-expanded="false" aria-label="Toggle navigation">
                            <i class="fa fa-bars"></i>
                        </button>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

使用setTimeout功能删除my-animation类并使用

.navbar-toggler{
outline:0!important;
}

$(document).ready(function () {
    if(!$("button[class*='navbar-toggler']").hasClass('my-animation')){
    $("button[class*='navbar-toggler']").click(function () {
        $(this).addClass("my-animation");
        setTimeout(function(){  $("button[class*='navbar-toggler']").removeClass("my-animation"); }, 1000);
    });
    }
})
@keyframes my-animation {
	16.65% {
		transform: translateY(8px);
	}

	33.3% {
		transform: translateY(-6px);
	}

	49.95% {
		transform: translateY(4px);
	}

	66.6% {
		transform: translateY(-2px);
	}

	83.25% {
		transform: translateY(1px);
	}

	100% {
		transform: translateY(0);
	}
}

.my-animation {
		animation-name: my-animation;
		animation-duration: 1s;
		animation-timing-function: ease-in-out;
		animation-iteration-count: 1;
}

.navbar-toggler{
outline:0!important;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navToggler" aria-controls="navToggler" aria-expanded="false" aria-label="Toggle navigation">
                            <i class="fa fa-bars"></i>
                        </button>

答案 1 :(得分:0)

这可能对您有帮助 使用

$(document).ready(function () {
    $("button[class*='navbar-toggler']").click(function () {
        $(this).addClass("my-animation");
            setTimeout(function () {
                $('#YourId').removeClass('my-animation');
            }, 200);
    });
})