Files
2026-07-09 17:30:10 +08:00

1 line
4.9 KiB
JavaScript

layui.define(["jquery","layer","form"],function(t){var e=layui.jquery,c=layui.form,s=layui.layer,l=layui.device(),a=(function(){var v=".slider-item{height:38px;line-height:38px;background-color:#d0d0d0;position:relative;border: 1px solid white;}.slider-bg{position:absolute;width:40px;height:100%;z-index:100}.slider-btn{width:40px;height:96%;position:absolute;border:1px solid #ccc;cursor:move;text-align:center;background-color:#fff;user-select:none;color:#666;z-index:120}.slider-btn-success{font-size:26px}.slider-text{position:absolute;text-align:center;width:100%;height:100%;user-select:none;font-size:14px;color:#fff;z-index:120}.slider-error{animation:glow 800ms ease-out infinite alternate;}@keyframes glow{0%{border-color:#e6e6e6}100%{border-color:#ff5722}}",w=document.createElement("style");w.innerHTML=v;w.type="text/css";(e("head link:last")[0]&&e("head link:last").after(w))||e("head").append(w)})(),i={version:"1.7.2"},n=function(v){return v[0]},p=function(){var v=this;return{isOk:function(){return v.isOk.call(v)},reset:function(){return v.reset.call(v)}}},h="sliderVerify",j="slider-btn",k="slider-bg",r="slider-text",b="layui-icon-next",u="layui-icon-ok-circle",g="slider-btn-success",o="layui-bg-green",d="slider-error",q="请拖动滑块验证",f="验证通过",m=function(v){var w=this;w.config=e.extend({},w.config,v);w.render()};m.prototype.config={elem:"",onOk:null,isOk:false,isAutoVerify:true,timer:null,bg:o,text:q};m.prototype.render=function(){var x=this,v=x.config,w=e(v.elem);if(!w[0]){return}if(v.domid){v.domid.remove()}v.domid=x.createIdNum();var y=e(['<div id="'+v.domid+'"'+(v.isAutoVerify?'lay-verify="sliderVerify"':"")+'class="slider-item">','<div class="'+k+" "+v.bg+'"></div>','<div class="'+r+'">'+v.text+"</div>",'<div class="'+j+' layui-icon layui-icon-next"></div>'].join(""));w.hide().after(y);v.domid=e("#"+v.domid);x.events();if(v.isAutoVerify){c.verify({sliderVerify:function(z,A){if(!z){A.classList.add(d);return v.text}}})}};m.prototype.isMobile=function(){return(l.os=="ios"||l.os=="android"||l.android||l.ios||(l.weixin&&typeof l.weixin===Boolean))};m.prototype.createIdNum=function(){return(h+(+new Date()).toString()+Math.random().toString().substr(2,7))};m.prototype.isOk=function(){return this.config.isOk};m.prototype.error=function(v){return s.msg(v,{icon:5})};m.prototype.distance=function(){var v=this.config.container;return v.box.offsetWidth-v.btn.offsetWidth};m.prototype.reset=function(){this.config.isOk=false;return this.render()};m.prototype.resize=function(x){var w=this,v=w.config.container;var x=x||w.distance();v.btn.style.left=x+"px";v.bg.style.width=x+"px"};m.prototype.cancelTransition=function(){var v=this.config.container;this.config.domid[0].classList.remove(d);v.btn.style.transition="";v.bg.style.transition=""};m.prototype.down=function(z){var y=this,x=y.config,w=x.container,z=z||window.event,A=z.clientX||z.touches[0].clientX;y.cancelTransition();var v=function(B){y.move(A,B)};y.events.move=v;if(y.isMobile()){document.addEventListener("touchmove",y.events.move)}else{document.onmousemove=v}if(navigator.userAgent.indexOf("UCBrowser")>-1){z.preventDefault()}};m.prototype.move=function(D,C){var B=this,z=B.config,v=z.container;var C=C||window.event;var x=C.clientX||C.touches[0].clientX;var A=x-D;if(A>v.distance){A=v.distance}else{if(A<0){A=0}}v.btn.style.left=A+"px";v.bg.style.width=A+"px";if(A==v.distance){v.text.innerHTML=f;var w=window.getComputedStyle?window.getComputedStyle(v.bg,null):v.bg.currentStyle;v.btn.style.border="1px solid "+w.backgroundColor;v.btn.style.color=w.backgroundColor;v.btn.classList.remove(b);v.btn.classList.add(u,g);z.isOk=true;v.box.value=true;if(B.isMobile()){v.btn.removeEventListener("touchstart",B.events.down,false);document.removeEventListener("touchmove",B.events.move,false)}else{v.btn.onmousedown=null;document.onmousemove=null}z.onOk&&typeof z.onOk=="function"&&z.onOk();return}var y=function(E){B.stop(E)};B.events.seup=y;if(B.isMobile()){document.addEventListener("touchend",y)}else{document.onmouseup=y}};m.prototype.stop=function(y){var x=this,w=x.config,v=w.container;if(x.isOk()){return}else{v.btn.style.left=0;v.bg.style.width=0;v.btn.style.transition="left 1s";v.bg.style.transition="width 1s"}document.onmousemove=null;document.onmouseup=null;if(x.isMobile()){document.removeEventListener("touchmove",x.events.move,false);document.removeEventListener("touchend",x.events.seup,false)}};m.prototype.events=function(){var A=this,z=A.config;if(!z.domid){return A.error("创建滑块验证失败")}var y=z.domid.find("."+j),x=z.domid.find("."+k),B=z.domid.find("."+r),w={box:n(z.domid),btn:n(y),bg:n(x),text:n(B)};z.container=w;w.distance=A.distance();var C=function(D){A.down(D)};A.events.down=C;if(A.isMobile()){w.btn.addEventListener("touchstart",A.events.down)}else{w.btn.onmousedown=C}var v=e(window);v.on("resize",z.domid,function(){if(A.config.isOk){A.resize()}else{clearTimeout(z.timer);z.timer=setTimeout(function(){A.render()},400)}})};i.render=function(v){var w=new m(v);return p.call(w)};t(h,i)});