需要弹跳一个图标/按钮没有jQuery UI
Need to bounce an icon/button without jQuery UI
我有一个带有保存和重置按钮的表单。在表单的顶部有一个按钮图标。我试图使按钮图标反弹时,用户单击保存按钮。我不想使用jQuery UI。我已经尝试过了,但我只是想使用普通的CSS和一个简单的onclick javascript函数来完成这个工作。
这是我使用的弹跳CSS:
.bounce{
position: relative;
-webkit-animation: bounce 1s 5;
}
@-webkit-keyframes bounce{
0%{
bottom:5px;
}
25%, 75%{
bottom: 15px;
}
50%{
bottom: 20px;
}
100%{
bottom: 0;
}
}
Css工作得很好,但很明显,当页面加载时它会反弹,因为我在按钮图标上添加了class="bounce"。
<button class="container-list bounce" data-toggle="modal" data-target="#container-modal"><img src="images/container-rack.png"></button>
我有一个很长的表单,在最后,我有一个按钮容器,如下所示,其中包含保存和重置按钮。
<div class="container-buttons">
<button class="btn btn-success" id="save_container" type="submit">Save</button>
<button class="btn btn-warning" type="reset">Reset</button>
</div>
那么,我如何触发弹跳css属性,每当保存按钮被点击?请帮帮我。:)
必须在单击按钮时添加类。通过在1秒后移除类(或者你的动画有多长),你可以用相同的按钮再次添加它。
现在,我没有看到你的jQuery或其他东西,所以我要在这里放一些通用的jQuery:
$('#save_container').click(function () {
var b = $('.container-list');
b.addClass('bounce');
setTimeout(function () {
b.removeClass('bounce');;
}, 1000);
});
当单击#save_container
时,.container-list
将获得.bounce
类并在1秒后删除它(因为我在小提琴中的动画是1秒长)。
JSFIDDLE
回答2
根据Anthony Grist的建议,你可以把操作翻转过来,这样每一次点击都能让它工作。
解决方案可以在这里找到,jQuery看起来像这样:
$('#save_container').click(function (e) {
var b = $('button.container-list');
b.removeClass('bounce');
window.setTimeout(function() {
b.addClass('bounce');
}, 1);
});
在此代码中,.bounce
类被删除,并在1ms后再次添加。在第二小提琴$('.container-list')
包含button
,以及,但这只是因为HTML是有点不同。
您应该选择答案二的原因是它可以一次又一次地被触发,而不必等待先删除类。
感谢@AnthonyGrist!
从元素中移除.button
类,并在用户单击按钮时添加它:
var button = document.querySelector("button");
button.onclick = function() {
var secondButton = document.querySelector("#second-button");
secondButton.classList.remove("bounce");
secondButton.offsetWidth = secondButton .offsetWidth;
secondButton.classList.add("bounce");
};
.bounce {
position: relative;
-webkit-animation: bounce 1s 5;
}
@-webkit-keyframes bounce {
0% {
bottom: 5px;
}
25%,
75% {
bottom: 15px;
}
50% {
bottom: 20px;
}
100% {
bottom: 0;
}
}
<button>Click Me!</button>
<button id="second-button">Now Click Me!</button>
你会注意到,如果你多次按下按钮,动画将不会重复。要解决这个问题,可以使用本文中的一种技术:
var button = document.querySelector("button");
var secondButton = document.querySelector("#second-button")
button.onclick = function() {
secondButton.classList.remove("bounce");
secondButton.offsetWidth = secondButton .offsetWidth;
secondButton.classList.add("bounce");
}
我更新了代码片段
- 如何在已经有图标的滚动到顶部按钮中添加文本
- 如何将自定义图标添加到 JqGrid 顶级工具栏按钮
- 如何让登录按钮在用户登录时更改为图标
- 更改 JWPlayer 显示图标(播放按钮)的不透明度
- 添加/单击c#asp.netmvc5后禁用和更改按钮图标
- 页面更改时动态更改标题按钮图标,jQuery mobile 1.4.5
- 更新引导程序中的按钮图标
- 使用 Primefaces 5.1 如何在运行时仅使用 javascript 更改按钮图标样式.(没有 AJAX 调用)
- 自定义添加此按钮图标图形
- 如何在单击时更改按钮图标
- 按钮图标
- jQuery -数据库访问失败后的更新按钮图标
- 通过JavaScript切换按钮图标
- 使用javascript/bootstrap时,在onclick上更改按钮图标
- Jquery克隆和更新按钮图标
- 如何使用jQuery在选择HTML控件之外放置一个删除按钮图标
- 制作一个透明的播放按钮图标,就像airbnb网站上的一样
- 传单侧边栏v2:添加按钮&图标
- 如何用javascript改变一个特定的JQuery移动按钮图标
- 如何用javascript改变JQuery移动按钮图标