在 Javascript 中 运行 函数后的成功或错误祝酒词
Success or error toast after running function in Javascript
我有两个函数,如下所示:
function functionOne(par1, par2, par3) {
// this functions patches using an api, re-usable
}
function functionTwo(par2) {
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
}
这按预期工作,但如果用户按下按钮并且 functionTwo 成功运行或出错,我想给用户一些反馈。
我发现了这个:https://www.w3schools.com/howto/howto_js_snackbar.asp 这是我想要的,而不是弹出窗口,但是是否可以在成功或错误后显示它,如果可以,如何显示?谢谢!
看看下面的片段:
HTML 和 CSS 是从 W3C 示例中提取的代码。 JS 函数 showToast()
基于他们的示例,但采用具有默认值的可选参数并将该参数值附加到 toast。
我制作了一个 API (yourApiFuncton()
) 调用的迷你示例来演示其用法。
当然这只是一个基本示例,您可以从那里开始工作以获得更高级的东西。
function yourApiFunction(){
//Do your api calls, the "error" variable is only set to demonstrate the use of the success/error message
let error = false;
if(error){
showToast("Oh no...");
}else{
showToast("Hell yeah");
}
}
function showToast(content = "Unknown error") { //You can change the default value
// Get the snackbar DIV
var x = document.getElementById("snackbar");
//Change the text (not mandatory, but I think you might be willing to do it)
x.innerHTML = content;
// Add the "show" class to DIV
x.className = "show";
// After 3 seconds, remove the show class from DIV
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}
//Simulating a call to your API
yourApiFunction();
/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
visibility: hidden; /* Hidden by default. Visible on click */
min-width: 250px; /* Set a default minimum width */
margin-left: -125px; /* Divide value of min-width by 2 */
background-color: #333; /* Black background color */
color: #fff; /* White text color */
text-align: center; /* Centered text */
border-radius: 2px; /* Rounded borders */
padding: 16px; /* Padding */
position: fixed; /* Sit on top of the screen */
z-index: 1; /* Add a z-index if needed */
left: 50%; /* Center the snackbar */
bottom: 30px; /* 30px from the bottom */
}
/* Show the snackbar when clicking on a button (class added with JavaScript) */
#snackbar.show {
visibility: visible; /* Show the snackbar */
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
However, delay the fade out process for 2.5 seconds */
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@-webkit-keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
<!-- The actual snackbar -->
<div id="snackbar">Some text some message..</div>
尝试使用 ToastMaker 库。
$('#successbutton').click(() =>
ToastMaker("Success", 5000, {
styles: {
backgroundColor: 'green'
}
})
);
$('#failbutton').click(() =>
ToastMaker("Failure", 5000, {
styles: {
backgroundColor: 'red'
}
})
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/toastmaker/dist/toastmaker.min.css">
<script type="text/javascript" src="https://unpkg.com/toastmaker/dist/toastmaker.min.js"></script>
<button id="successbutton"> Success Toast</button>
<button id="failbutton"> Fail Toast</button>
查看 documentation 以获取更多示例。
我有两个函数,如下所示:
function functionOne(par1, par2, par3) {
// this functions patches using an api, re-usable
}
function functionTwo(par2) {
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
functionOne(par1, par2, par3);
}
这按预期工作,但如果用户按下按钮并且 functionTwo 成功运行或出错,我想给用户一些反馈。
我发现了这个:https://www.w3schools.com/howto/howto_js_snackbar.asp 这是我想要的,而不是弹出窗口,但是是否可以在成功或错误后显示它,如果可以,如何显示?谢谢!
看看下面的片段:
HTML 和 CSS 是从 W3C 示例中提取的代码。 JS 函数 showToast()
基于他们的示例,但采用具有默认值的可选参数并将该参数值附加到 toast。
我制作了一个 API (yourApiFuncton()
) 调用的迷你示例来演示其用法。
当然这只是一个基本示例,您可以从那里开始工作以获得更高级的东西。
function yourApiFunction(){
//Do your api calls, the "error" variable is only set to demonstrate the use of the success/error message
let error = false;
if(error){
showToast("Oh no...");
}else{
showToast("Hell yeah");
}
}
function showToast(content = "Unknown error") { //You can change the default value
// Get the snackbar DIV
var x = document.getElementById("snackbar");
//Change the text (not mandatory, but I think you might be willing to do it)
x.innerHTML = content;
// Add the "show" class to DIV
x.className = "show";
// After 3 seconds, remove the show class from DIV
setTimeout(function(){ x.className = x.className.replace("show", ""); }, 3000);
}
//Simulating a call to your API
yourApiFunction();
/* The snackbar - position it at the bottom and in the middle of the screen */
#snackbar {
visibility: hidden; /* Hidden by default. Visible on click */
min-width: 250px; /* Set a default minimum width */
margin-left: -125px; /* Divide value of min-width by 2 */
background-color: #333; /* Black background color */
color: #fff; /* White text color */
text-align: center; /* Centered text */
border-radius: 2px; /* Rounded borders */
padding: 16px; /* Padding */
position: fixed; /* Sit on top of the screen */
z-index: 1; /* Add a z-index if needed */
left: 50%; /* Center the snackbar */
bottom: 30px; /* 30px from the bottom */
}
/* Show the snackbar when clicking on a button (class added with JavaScript) */
#snackbar.show {
visibility: visible; /* Show the snackbar */
/* Add animation: Take 0.5 seconds to fade in and out the snackbar.
However, delay the fade out process for 2.5 seconds */
-webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
/* Animations to fade the snackbar in and out */
@-webkit-keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@keyframes fadein {
from {bottom: 0; opacity: 0;}
to {bottom: 30px; opacity: 1;}
}
@-webkit-keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
@keyframes fadeout {
from {bottom: 30px; opacity: 1;}
to {bottom: 0; opacity: 0;}
}
<!-- The actual snackbar -->
<div id="snackbar">Some text some message..</div>
尝试使用 ToastMaker 库。
$('#successbutton').click(() =>
ToastMaker("Success", 5000, {
styles: {
backgroundColor: 'green'
}
})
);
$('#failbutton').click(() =>
ToastMaker("Failure", 5000, {
styles: {
backgroundColor: 'red'
}
})
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/toastmaker/dist/toastmaker.min.css">
<script type="text/javascript" src="https://unpkg.com/toastmaker/dist/toastmaker.min.js"></script>
<button id="successbutton"> Success Toast</button>
<button id="failbutton"> Fail Toast</button>