First paste the renderings:

Pros: The ICONS are animated and do not require a background image.

1. You need to reference a dialog.css as follows:

/ * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = @ des: dialog. Less @ author: mickey software development studio @ QQ: 15577969 @ sponsorship platforms: wing payment (18) pay.net @ time: 2021-01-10 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = * /

@charset "utf-8";
.clearfix {
  *zoom: 1;
}
.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: "";
  clear: both;
  height: 0; {} *margin: 0;
  padding: 0;
}
ul.ol {
  list-style: none;
}
img {
  border: none;
}
input,
select,
textarea {
  outline: none;
  border: none;
  background: none;
}
textarea {
  resize: none;
}
a {
  text-decoration: none;
}
.body {
  font-family: 14px "Microsoft Yahei".Microsoft Yahei, Arial, Tahoma;
}
.btn-container {
  width: 100%;
  display: flex;
  display: -webkit-flex;
  display: -moz-flex;
  justify-content: space-around;
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
}
.btn-container input[type='button'] {
  width: 20%;
  padding: 0.357 rem;
  color: #fff;
  border-radius: 3px;
  -webkit-radius: 3px;
  -moz-radius: 3px;
  background-color: #3B9DFF;
}
.btn-container input[type='button']:active {
  background-color: #1966b3;
}
/* Reset the box model */
.boxContent * {
  box-sizing: content-box;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
}
/*animation start*/
#animationTipBox {
  width: 100%;
  height: auto;
  background-color: #fff;
  border-radius: 8px;
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  position: fixed;
  left: 50%;
  top: 30%;
  margin-left: -50%;
  margin-top: -75px;
  z-index: 1001;
  -webkit-animation: alertAnimation 0.3 s ease-in-out 0s 1;
  -moz-animation: alertAnimation 0.3 s ease-in-out 0s 1;
  animation: alertAnimation 0.3 s ease-in-out 0s 1;
}
#animationTipBox * {
  box-sizing: content-box;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
}
#animationTipBox .icon {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 50px;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  border: 4px solid #66cc33;
  margin: 15px auto 5px auto;
}
#animationTipBox .icon_box {
  width: 80px;
  height: 80px;
  margin: 0 auto;
  text-align: center;
  position: relative;
}
#animationTipBox .lose .icon {
  border-color: #FF9090;
}
#animationTipBox .lose .icon_box {
  -webkit-animation: lose_Animation 0.5 s ease 0s 1;
  -moz-animation: lose_Animation 0.5 s ease 0s 1;
  animation: lose_Animation 0.5 s ease 0s 1;
}
#animationTipBox .dec_txt {
  font-size: 16px;
  text-align: center;
  color: # 666;
  line-height: 26px;
  height: 26px;
  padding: 5px 0 10px 0;
}
.tip .icon {
  width: 80px;
  height: 80px;
  background-color: #66cc33;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  color: #fff;
  font-size: 80px;
  text-align: center;
  line-height: 80px;
}
.success .line_short {
  width: 25px;
  height: 5px;
  position: absolute;
  left: 14px;
  top: 46px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  background-color: #66cc33;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -webkit-animation: success_short_Animation 0.65 s ease 0s 1;
  -moz-animation: success_short_Animation 0.65 s ease 0s 1;
  animation: success_short_Animation 0.65 s ease 0s 1;
}
.success .line_long {
  width: 47px;
  height: 5px;
  position: absolute;
  right: 8px;
  top: 38px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  background-color: #66cc33;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -webkit-animation: success_long_Animation 0.65 s ease 0s 1;
  -moz-animation: success_long_Animation 0.65 s ease 0s 1;
  animation: success_long_Animation 0.65 s ease 0s 1;
}
.lose .line_left..lose .line_right {
  width: 47px;
  height: 5px;
  position: absolute;
  left: 17px;
  top: 37px;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  background-color: #FF9090;
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
}
.lose .line_right {
  right: 11px;
  top: 37px;
  transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
}
/* Overall animation function */
/*all animate*/
@-webkit-keyframes alertAnimation {
  0% {
    -webkit-transform: scale(0.5);
  }
  45% {
    -webkit-transform: scale(1.25);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1); }}@-moz-keyframes alertAnimation {
  0% {
    -webkit-transform: scale(0.5);
  }
  45% {
    -webkit-transform: scale(1.25);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1); }}@-webkit-keyframes alertAnimation {
  0% {
    -webkit-transform: scale(0.5);
  }
  45% {
    -webkit-transform: scale(1.25);
  }
  80% {
    -webkit-transform: scale(0.95);
  }
  100% {
    -webkit-transform: scale(1); }}/*all animate*/
/*success short animate*/
@-webkit-keyframes success_short_Animation {
  0% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  54% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  70% {
    width: 50px;
    left: -4px;
    top: 37px;
  }
  84% {
    width: 17px;
    left: 21px;
    top: 48px;
  }
  100% {
    width: 25px;
    left: 14px;
    top: 45px; }}@-moz-keyframes success_short_Animation {
  0% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  54% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  70% {
    width: 50px;
    left: -4px;
    top: 37px;
  }
  84% {
    width: 17px;
    left: 21px;
    top: 48px;
  }
  100% {
    width: 25px;
    left: 14px;
    top: 45px; }}@-webkit-keyframes success_short_Animation {
  0% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  54% {
    width: 0;
    left: 1px;
    top: 19px;
  }
  70% {
    width: 50px;
    left: -4px;
    top: 37px;
  }
  84% {
    width: 17px;
    left: 21px;
    top: 48px;
  }
  100% {
    width: 25px;
    left: 14px;
    top: 45px; }}/*success short animate*/
/*success long animate*/
@-webkit-keyframes success_long_Animation {
  0% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  65% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  84% {
    width: 55px;
    right: 0px;
    top: 35px;
  }
  100% {
    width: 47px;
    right: 8px;
    top: 38px; }}@-moz-keyframes success_long_Animation {
  0% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  65% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  84% {
    width: 55px;
    right: 0px;
    top: 35px;
  }
  100% {
    width: 47px;
    right: 8px;
    top: 38px; }}@-webkit-keyframes success_long_Animation {
  0% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  65% {
    width: 0;
    right: 46px;
    top: 54px;
  }
  84% {
    width: 55px;
    right: 0px;
    top: 35px;
  }
  100% {
    width: 47px;
    right: 8px;
    top: 38px; }}/*success long animate*/
/*load_Animation*/
@-webkit-keyframes load_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}@-moz-keyframes load_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}@-webkit-keyframes load_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}/*load_Animation*/
/*lose_Animation*/
@-webkit-keyframes lose_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}@-moz-keyframes lose_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}@-webkit-keyframes lose_Animation {
  0% {
    -webkit-transform: scale(0.6);
    opacity: 0.2;
  }
  50% {
    -webkit-transform: scale(0.6);
    opacity: 0.5;
  }
  80% {
    -webkit-transform: scale(1.15);
    opacity: 0.8;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1.0; }}/*lose_Animation*/
.load {
  position: relative;
  width: 60px;
  height: 80px;
  border-radius: 50px;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  border: 4px solid #fff;
  margin: 15px auto 5px auto;
  top: 10px;
}
.load .icon_box {
  margin: 10px auto;
  width: 60px;
  height: 60px;
}
.load .cirBox1..load .cirBox2..load .cirBox3 {
  width: 60px;
  height: 60px;
  position: absolute;
  left: 0;
  top: 0;
}
.load .cirBox1 > div..load .cirBox2 > div..load .cirBox3 > div {
  width: 10px;
  height: 10px;
  border-radius: 100%;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  background-color: #ccc;
  position: absolute;
}
.load .cirBox1 {
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
}
.load .cirBox2 {
  transform: rotate(60deg);
  -webkit-transform: rotate(60deg);
  -moz-transform: rotate(60deg);
}
.load .cirBox3 {
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
}
.load .cir1 {
  left: 0;
  top: 0;
}
.load .cir2 {
  right: 0;
  top: 0;
}
.load .cir3 {
  right: 0;
  bottom: 0;
}
.load .cir4 {
  left: 0;
  bottom: 0;
}
.load .cir1..load .cir2..load .cir3..load .cir4 {
  -webkit-animation: cir_Animation 1.2 s ease 0s infinite;
  -moz-animation: cir_Animation 1.2 s ease 0s infinite;
  animation: cir_Animation 1.2 s ease 0s infinite;
}
.cirBox1 .cir2 {
  -webkit-animation-delay: -1.1 s;
  -moz-animation-delay: -1.1 s;
  animation-delay: -1.1 s;
}
.cirBox1 .cir3 {
  -webkit-animation-delay: -0.8 s;
  -moz-animation-delay: -0.8 s;
  animation-delay: -0.8 s;
}
.cirBox1 .cir4 {
  -webkit-animation-delay: -0.5 s;
  -moz-animation-delay: -0.5 s;
  animation-delay: -0.5 s;
}
.cirBox2 .cir2 {
  -webkit-animation-delay: -1s;
  -moz-animation-delay: -1s;
  animation-delay: -1s;
}
.cirBox2 .cir3 {
  -webkit-animation-delay: -0.7 s;
  -moz-animation-delay: -0.7 s;
  animation-delay: -0.7 s;
}
.cirBox2 .cir4 {
  -webkit-animation-delay: -0.4 s;
  -moz-animation-delay: -0.4 s;
  animation-delay: -0.4 s;
}
.cirBox3 .cir2 {
  -webkit-animation-delay: -0.9 s;
  -moz-animation-delay: -0.9 s;
  animation-delay: -0.9 s;
}
.cirBox3 .cir3 {
  -webkit-animation-delay: -0.6 s;
  -moz-animation-delay: -0.6 s;
  animation-delay: -0.6 s;
}
.cirBox3 .cir4 {
  -webkit-animation-delay: -0.3 s;
  -moz-animation-delay: -0.3 s;
  animation-delay: -0.3 s;
}
@-webkit-keyframes cir_Animation {
  0%.80%.100% {
    -webkit-transform: scale(0.4);
  }
  40% {
    -webkit-transform: scale(1); }}@-moz-keyframes cir_Animation {
  0%.80%.100% {
    -webkit-transform: scale(0.4);
  }
  40% {
    -webkit-transform: scale(1); }}@-webkit-keyframes cir_Animation {
  0%.80%.100% {
    -webkit-transform: scale(0.4);
  }
  40% {
    -webkit-transform: scale(1); }}.mask {
  width: 100%;
  height: 100%;
  background-color: # 000;
  opacity:.8;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
}
Copy the code

2. Modify the default template file in application/config. PHP

// View output string content replacement
'view_replace_str'= > ['__STATIC__'= >'/static'].// Skip to the template file corresponding to the page by default
//'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
//'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_success_tmpl'  => THINK_PATH . 'tpl' . DS .'default_jump.tpl'.'dispatch_error_tmpl'    => THINK_PATH . 'tpl' . DS .'default_jump.tpl'.Copy the code

Add default_jump.tpl to thinkphp/ TPL directory with the following code:

{__NOLAYOUT__}<! DOCTYPEhtml PUBLIC "- / / / / W3C DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="Width = device - width, initial - scale = 1.0, the minimum - scale = 1.0, the maximum - scale = 1.0, user - scalable = no"/>
    <title>Jump prompt</title>
	<! -- Introduce dialog.css style -->
    <link rel="stylesheet" href="__STATIC__/css/dialog.css">
    <style type="text/css">
		.system-message p{ text-align: center; }.system-message .jump{ padding-top: 10px}
		.system-message .jump a{ color: # 333; }.system-message .jump-btn{margin-top: 40px}
		.system-message .jump-btn a{font-size: 16px;color: #fff;border-radius: 4px;background-color: #0d65a3;padding: 6px 16px;text-decoration: none; }</style>
</head>
<body>
    <div class="system-message">
		<div id='animationTipBox'><? php switch ($code) {? > <? php case 1:? ><! -- -- -- > success          
				<div class='success'>
				   <div class='icon'>
					   <div class='icon_box'>
						   <div class='line_short'></div>
						   <div class='line_long'></div>
					   </div>
				   </div>
					<div class='dec_txt'><? php echo(strip_tags($msg)); ? ></div>					
				</div><? php break; ? > <? php case 0:? ><! - error - >
				<div class='lose'>
				   <div class='icon'>
					   <div class='icon_box'>
						   <div class='line_left'></div>
						   <div class='line_right'></div>
					   </div>
				   </div>
					<div class='dec_txt'><? php echo(strip_tags($msg)); ? ></div>					
				</div><? php break; ? > <? php } ? ><p class="jump">Page automatically<a id="href" href="
       ">jump</a>Waiting time:<b id="wait"><? php echo($wait); ? ></b>
			</p>
			<p class="jump-btn"><a id="href" href="
       ">Click the jump</a></p>
		</div>		
    </div>
    <script type="text/javascript">
        (function(){
            var wait = document.getElementById('wait'),
                href = document.getElementById('href').href;
            var interval = setInterval(function(){
                var time = --wait.innerHTML;
                if(time <= 0) {
                    location.href = href;
                    clearInterval(interval);
                };
            }, 1000); }) ();</script>
</body>
</html>
Copy the code

Note: The path to dialog.css should be written according to your own website