延迟 sweetalert2 中按钮的出现
Delay appearance of buttons in sweetalert2
我正在使用 SweetAlert2 向用户传达一些反馈。这是一个学习应用程序,因此,我希望反馈能持续一段时间。我不想在显示反馈后立即显示任何按钮,因为人们倾向于只点击 'OK' 或 'Cancel',而不阅读文本。
反馈中的字符数因屏幕而异,因此,我将 sweetalert2 的计时器参数设置为文本中字符数的倍数。但是,计时器功能并不完善,因为人们的阅读速度不同。理想情况下,我希望 'OK' 按钮在计时器超时后出现。我可以进行某种 API 调用来动态更改警报框的 属性 吗?
swal({
html: feedback,
timer: feedback.length*50,
showCloseButton: false,
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
});
您好,要实现此目的,您可以使用设置超时功能并在您希望显示的按钮上调用 jQuery 的 .show() 功能(假设您可以使用 jQuery ).
下面的代码应该能帮到你
swal({
html: feedback,
timer: feedback.length*50,
showCloseButton: false,
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
});
setTimeout(function () {
$(".swal2-cancel").show();
$(".swal2-confirm").show();
$(".swal2-close").show();
}, 3000);
希望对您有所帮助:-)
我没有看到任何隐藏和显示按钮的方法,但您可以禁用和启用它们:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
swal.disableButtons();
setTimeout(swal.enableButtons, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">
或使它们透明:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
var b = swal.getConfirmButton()
b.style.opacity = 0
b.disabled = true
setTimeout(function() {
b.disabled = false
b.style.opacity = 1
}, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">
或隐藏和显示:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
var b = swal.getConfirmButton()
b.hidden = true
b.disabled = true
setTimeout(function() {
b.disabled = false
b.hidden = false
}, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">
我正在使用 SweetAlert2 向用户传达一些反馈。这是一个学习应用程序,因此,我希望反馈能持续一段时间。我不想在显示反馈后立即显示任何按钮,因为人们倾向于只点击 'OK' 或 'Cancel',而不阅读文本。
反馈中的字符数因屏幕而异,因此,我将 sweetalert2 的计时器参数设置为文本中字符数的倍数。但是,计时器功能并不完善,因为人们的阅读速度不同。理想情况下,我希望 'OK' 按钮在计时器超时后出现。我可以进行某种 API 调用来动态更改警报框的 属性 吗?
swal({
html: feedback,
timer: feedback.length*50,
showCloseButton: false,
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
});
您好,要实现此目的,您可以使用设置超时功能并在您希望显示的按钮上调用 jQuery 的 .show() 功能(假设您可以使用 jQuery ).
下面的代码应该能帮到你
swal({
html: feedback,
timer: feedback.length*50,
showCloseButton: false,
showCancelButton: false,
showConfirmButton: false,
allowOutsideClick: false,
});
setTimeout(function () {
$(".swal2-cancel").show();
$(".swal2-confirm").show();
$(".swal2-close").show();
}, 3000);
希望对您有所帮助:-)
我没有看到任何隐藏和显示按钮的方法,但您可以禁用和启用它们:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
swal.disableButtons();
setTimeout(swal.enableButtons, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">
或使它们透明:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
var b = swal.getConfirmButton()
b.style.opacity = 0
b.disabled = true
setTimeout(function() {
b.disabled = false
b.style.opacity = 1
}, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">
或隐藏和显示:
swal({
html: 'test',
allowOutsideClick: false,
allowEscapeKey: false,
onOpen: function () {
var b = swal.getConfirmButton()
b.hidden = true
b.disabled = true
setTimeout(function() {
b.disabled = false
b.hidden = false
}, 'test'.length * 500)
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/6.6.9/sweetalert2.min.css">