更改背景图像的多状态动画按钮
multi-state animated button to change background-image
我有一个问题已经解决了一天多了,我发现javascript/jquery非常具有挑战性,所以非常感谢您尽可能多地减少噪音/握手。我试图创建一个有3个状态的动画按钮,每个状态都是可点击的,然后还将div的背景图像更改为相应的图像。例如,点击按钮时,按钮本身会从状态1变为状态2,还会导致div的背景图像从图像1变为图像2。现在点击处于状态2的按钮会使其从2动画化为状态3,同时将div的背景图像从图像2更改为图像3,依此类推https://jsfiddle.net/datCodeTho/9cczqjs8/3/),但我不知道如何同时更改div的背景图像?我对不同的解决方案持开放态度,"noob友好"比优雅的代码更重要!谢谢
这是我的Jquery:
function animateButton() {
var button = $('.hi');
if (button.hasClass('animate-moustache-beard')) {
button.removeClass('animate-moustache-beard').addClass('animate-beard-scissors');
}
else if (button.hasClass('animate-beard-scissors')) {
button.removeClass('animate-beard-scissors').addClass('animate-scissors-moustache');
}
else if (button.hasClass('animate-scissors-moustache')) {
button.removeClass('animate-scissors-moustache').addClass('animate-moustache-beard');
}
else {
button.addClass('animate-moustache-beard');
}
};
$(document).ready(function() {
$('.hi').on("click", function() {
animateButton();
});
});
这是css:
.hi {
width: 50px;
height: 72px;
background-image: url("http://s.cdpn.io/79/sprite-steps.png");
}
.animate-hi {
animation: play 2s steps(9) forwards;
}
.animate-hi-reverse {
animation: play-reverse 2s steps(9) forwards;
}
@keyframes play {
from { background-position: 0px; }
to { background-position: -450px; }
}
@keyframes play-reverse {
from { background-position: -450px; }
to { background-position: 0px; }
}
您可以使用与使用以下方法更改按钮状态相同的方法:
removeClass()
addClass()
或者你可以使用jQuery
css()
方法指定每次单击按钮时的背景图像。
Fiddle是第一种方法:
相关文章:
- CSS 动画将恢复为原始状态
- 使用AngularJS在ng重复中从一个状态到另一个状态制作动画
- Angular JS具有在状态转换期间可见的来自两个不同状态的页面(用于动画目的)
- Chrome动画CSS3三维立方体与悬停状态问题
- 如何在 CSS3 中的动画之间保持状态
- 确定 GIF 动画状态
- 关于平滑状态反向动画
- Jquery 无法返回到动画菜单列表上的活动状态
- 停止无限CSS3动画并平滑恢复到初始状态
- 向上滚动时,基于滚动位置的 javascript 动画不会恢复到其原始状态
- iOS 7+ 向后滑动手势与状态更改动画冲突
- 在 AngularJS 中更改不同状态的动画
- 是否可以在单击时将类(特别是其动画)重置回其初始状态
- 要在其中设置动画的元素的初始状态
- 更改背景图像的多状态动画按钮
- 如何在原始状态下暂停css动画
- Framer.js:操作层's通过另一层的动画状态's单击事件
- 保持css动画状态
- 如何在Raphael中将停止时的动画重置为其初始状态
- 使平滑状态动画和砌体一起工作