jquery - jQuery 在另一个图标上切换(脉动)一个图标
问题描述
我尝试实现以下目标:
我正在使用 MDI 图标集,但它当然应该与任何其他图标集相同(fa,...)。我们有一个票务系统启动并运行,我们也在实施类似“建议一个功能”的东西。
现在我们有了表单的提交按钮,旁边有一个图标:
我发现 jquery 也有$( "#toggle" ).toggle( "pulsate" );
,而且看起来很棒。
让我们想象“o”是一个没有打开的灯泡,“ö”是一个打开的灯泡。如果在用户点击它之前一直关闭灯泡,它会看起来很棒。和灯泡闪烁。就像一个旧灯泡。提交本身的延迟当然应该延迟。
默认图标是 mdi-lightbulb (o) 并且 onclick mdi-lightbulb-on (ö) 应该会在 mdi-lightbulb 图标上闪烁
编辑:按钮是 type="button" 来测试效果,而不是在尝试时永久重新加载站点。
<button type="button" class="btn btn-success toggleicon">
<i class="mdi mdi-lightbulb tochange"></i>
Idee absenden
</button>
*************************************************************
<script>
$('.toggleicon').on('click', function(){
// $('.tochange').removeClass('mdi-lightbulb');
// $('.tochange').addClass('mdi-lightbulb-on');
$('.tochange').toggle( "pulsate" );
});
$('form').submit( function(event) {
var formId = this.id,
form = this;
mySpecialFunction(formId);
event.preventDefault();
setTimeout( function () {
form.submit();
}, 1000);
});
</script>
我有切换本身,但没有脉动:
$('.toggleicon').on('click', function(){
$('.toggleicon').find('i').toggleClass('mdi-lightbulb mdi-lightbulb-on');
});
解决方案
您可以使用effect
as 相反,toggle
这样它就不会隐藏目标元素,并且从这里您可以简单地在类之间切换,而不是元素的可见性。
$('#lightbulb').click(function() {
var $bulb = $(this);
var state = $bulb.data('on');
var switches = {
'false': 'mdi-lightbulb-on',
'true': 'mdi-lightbulb-outline'
};
$('.mdi', this).effect('pulsate', {
complete: function() {
$bulb.data('on', !state);
$(this).removeClass(this.className).addClass('mdi ' + switches[state]);
}
})
});
#lightbulb > .mdi-lightbulb-on {
color: #ef950f;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//cdn.materialdesignicons.com/3.3.92/css/materialdesignicons.min.css">
<button id="lightbulb" data-on="false">
<span class="mdi mdi-lightbulb-outline"></span>
<span class="light-state">Light</span>
</button>
推荐阅读
- reactjs - 反应状态 - 无法更新状态
- java - H2 数据库填充了不正确的值,但开发环境按预期工作
- excel - Excel - 按特定字符串拆分单元格值?
- mysql - 如何在 mySQL 中获取对应的 FIELD 到 MAX(DATE)?
- reactjs - 如何使用 withStyles 返回一个反应组件?
- r - 从同一模型中渲染 R 中的多个图
- oracle - 找到相同的并替换它
- ios - Storyboard Xcode 10,iOS 中的自动布局 16:9 动画 GIF
- html - div 出现在兄弟 div 中,而不是在他的父 div 中
- windows - Docker 中的 Windows Server Core、防火墙