移动端 Tips插件代码
来源:互联网 发布:趴在桌上睡觉知乎 编辑:程序博客网 时间:2024/06/05 16:38
主要有4中提示窗口,成功,错误,提示和加载窗口(2个)。书写这个插件,用到了js的面向对象编程,css3的动画技术。应该有一点点学习价值,欢迎围观。由于是动态的提示框,不好截图,就不上效果图了,想看效果图,直接把代码拷过去,运行下就好了。话不多说,直接上代码。**这是页面代码:**
<!DOCTYPE HTML><html lang="en-US"><head> <meta charset="UTF-8"> <title>tips</title> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" /> <link rel="stylesheet" href="tips.css"> <script type="text/javascript" src="jquery-3.2.0.js"></script></head><body> <button id="success" onclick="success()">success</button> <button id="error" onclick="error()">error</button> <button id="info" onclick="info()">info</button> <button id="loading1" onclick="loading1()">loading1</button> <button id="loading2" onclick="loading2()">loading2</button> <!-- <div class="tip-mask"></div> <div class="tip-content"> <div class="icon success"> <div class="left-line"></div> <div class="right-line"></div> </div> <div class="text">加载成功</div> </div> --> <!-- <div class="tip-mask"></div> <div class="tip-content"> <div class="icon error"> <div class="left-line"></div> <div class="right-line"></div> </div> <div class="text">加载失败</div> </div> --> <!-- <div class="tip-mask"></div> <div class="tip-content"> <div class="icon info"> <div class="circle">i</div> </div> <div class="text">提示信息</div> </div> --> <!-- <div class="tip-mask"></div> <div class="tip-content"> <div class="icon loading"> </div> <div class="text">正在加载...</div> </div> --> <!-- <div class="tip-mask"></div> <div class="tip-content"> <div class="icon loading2"> <div class="cir-box1"> <div class="cir1"></div> <div class="cir2"></div> <div class="cir3"></div> <div class="cir4"></div> </div> <div class="cir-box2"> <div class="cir1"></div> <div class="cir2"></div> <div class="cir3"></div> <div class="cir4"></div> </div> <div class="cir-box3"> <div class="cir1"></div> <div class="cir2"></div> <div class="cir3"></div> <div class="cir4"></div> </div> <div class="cir-box4"> <div class="cir1"></div> <div class="cir2"></div> <div class="cir3"></div> <div class="cir4"></div> </div> </div> <div class="text">正在加载...</div> </div> --><script type="text/javascript"> function success(){ new TipBox({type:'success',str:'加载成功'}) } function error(){ new TipBox({type:'error',str:'加载失败'}); } function info(){ new TipBox({type:'info',str:'提示信息',clickDomCancel:true,autoClose:false}); } function loading1(){ var tip = new TipBox({type:'loading1',str:'正在加载...',autoClose:false,callback:function(){ new TipBox({type:'success',str:'加载成功'}); }}); // 模拟数据加载 setTimeout(function(){ tip._close(); },2000); } function loading2(){ var tip = new TipBox({type:'loading2',str:'正在加载...',autoClose:false,callback:function(){ new TipBox({type:'success',str:'加载成功'}); }}); // 模拟数据加载 setTimeout(function(){ tip._close(); },2000); } function TipBox(cfg){ this.config = { type:"success", str:"操作成功", time:"1000", autoClose:true, clickDomCancel:false, callback:null } $.extend(this.config,cfg); //初始化控件 this._init(this.config.type); //绑定事件 this._bindEvent(); } TipBox.prototype._bindEvent = function(){ var that = this; this.config.autoClose && setTimeout(function(){ that._close(); },this.config.time); this.config.clickDomCancel && this.mask.click(function(){ that._close(); }); } TipBox.prototype._init = function(type){ var that = this; this._initUI(type); $('body').append(TipBox.prototype.contentBox).append(TipBox.prototype.mask); } TipBox.prototype._initUI = function(type){ TipBox.prototype.contentBox = $('<div class="tip-content"></div>'); TipBox.prototype.mask = $('<div class="tip-mask"></div>'); type=='success' && this._initSuccessUI(); type=='error' && this._initErrorUI(); type=='info' && this._initInfoUI(); type=='loading1' && this._initLoading1UI(); type=='loading2' && this._initLoading2UI(); } TipBox.prototype._initSuccessUI = function(){ var arr = '<div class="icon success"><div class="left-line"></div>' +'<div class="right-line"></div></div><div class="text">'+this.config.str+'</div>'; this.contentBox.append(arr); } TipBox.prototype._initErrorUI = function(){ var arr = '<div class="icon error"><div class="left-line"></div>' +'<div class="right-line"></div></div><div class="text">'+this.config.str+'</div>'; this.contentBox.append(arr); } TipBox.prototype._initInfoUI = function(){ var arr = '<div class="icon info"><div class="circle">i</div>' +'<div class="text">'+this.config.str+'</div>'; this.contentBox.append(arr); } TipBox.prototype._initLoading1UI = function(){ var arr = '<div class="icon loading"></div>' +'<div class="text">'+this.config.str+'</div>'; this.contentBox.append(arr); } TipBox.prototype._initLoading2UI = function(){ var arr = '<div class="icon loading2">'; for(var i=1;i<=4;i++){ arr+='<div class="cir-box'+i+'"><div class="cir1"></div><div class="cir2"></div><div class="cir3"></div><div class="cir4"></div></div>'; } arr+='</div><div class="text">'+this.config.str+'</div>'; this.contentBox.append(arr); } TipBox.prototype._close = function(){ this._destroy(); typeof this.config.callback === 'function' && this.config.callback() } TipBox.prototype._destroy = function(){ this.contentBox.remove(); this.mask.remove(); }</script></body></html>
**css代码:**
body{ font-family: "Microsoft Yahei","微软雅黑",Arial,Tahoma;}.tip-mask{ position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; z-index: 1000; background-color: #000; opacity: 0.6;}.tip-content{ position: absolute; top: 50%; left: 50%; height: auto; width: 180px; min-height: 150px; margin-top: -75px; margin-left: -90px; border-radius: 10px; z-index: 1001; background-color: #fff;}.tip-content .icon{ position: relative; width: 80px; height: 80px; margin: 15px auto 5px auto; border:4px solid; border-radius: 100%; }/* 成功 */.tip-content .success{ border-color: #66cc33;}.tip-content .success .left-line{ position: absolute; width: 25px; height: 5px; top: 46px; left: 14px; background-color: #66cc33; border-radius: 4px; transform: rotate(45deg); animation: left_success_animation 0.6s;}.tip-content .success .right-line{ position: absolute; width: 47px; height: 5px; top: 38px; right: 8px; background-color: #66cc33; border-radius: 4px; transform: rotate(-45deg); animation: right_success_animation 0.6s;}.tip-content .text{ position: relative; width: 100%; height: 26px; padding: 5px 0px 10px 0px; text-align: center; line-height: 26px; font-size: 16px; color:#666; }@keyframes left_success_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; } }@keyframes right_success_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; } }/* 警告 */.tip-content .error{ border-color: #FF9090;}.tip-content .error .left-line{ position: absolute; width: 50px; height: 5px; top: 50%; left: 50%; margin-left: -25px; background-color: #FF9090; border-radius: 4px; transform: rotate(45deg); animation: left_error_animation 0.6s;}.tip-content .error .right-line{ position: absolute; width: 50px; height: 5px; top: 50%; left: 50%; margin-left: -25px; background-color: #FF9090; border-radius: 4px; transform: rotate(-45deg); animation: right_error_animation 0.6s;}@keyframes left_error_animation{ 0% { width: 0px; margin-left: 0px; opacity: 0; } 20% { width: 20px; margin-left: -10px; opacity: 0.5; } 40% { width: 30px; margin-left: -15px; opacity: 1; } 80% { width: 50px; margin-left: -25px; } 100%{ width: 50px; margin-left: -25px; } }@keyframes right_error_animation{ 0% { width: 0px; margin-left: 0px; opacity: 0; } 20% { width: 20px; margin-left: -10px; opacity: 0.5; } 40% { width: 30px; margin-left: -15px; opacity: 1; } 80% { width: 50px; margin-left: -25px; } 100%{ width: 50px; margin-left: -25px; }}/* 提示 */.tip-content .info{ border-color: #6EB3B9; background-color: #6EB3B9;}.tip-content .info .circle{ width: 80px; height: 80px; border-radius: 80px; border:0px; font-size: 80px; line-height: 80px; color: #fff; text-align: center;}/* 加载动画1*/.tip-content .loading{ border: 0px; background-image: url('loading.png'); background-size: 80px 80px; animation: loading_animation 1.2s infinite linear;}@keyframes loading_animation{ 0%{ transform: rotate(0deg); } 100%{ transform: rotate(360deg); }}/* 加载动画2*/.tip-content .loading2{ border: 0px; width: 60px; height: 60px; margin: 25px auto 15px auto;}.tip-content .loading2>div{ position: absolute; width: 60px; height: 60px;}@keyframes loading1{ from{ transform: rotate(0deg); } to{ transform: rotate(360deg); }}@keyframes loading2{ from{ transform: rotate(30deg); } to{ transform: rotate(390deg); }}@keyframes loading3{ from{ transform: rotate(60deg); } to{ transform: rotate(420deg); }}@keyframes loading4{ from{ transform: rotate(90deg); } to{ transform: rotate(450deg); }}.cir-box1{ animation: loading1 1s infinite linear;}.cir-box2{ animation: loading2 1s infinite linear;}.cir-box3{ animation: loading3 1s infinite linear;}.cir-box4{ animation: loading4 1s infinite linear;}.tip-content .loading2>div>div{ position: absolute; height: 10px; width: 10px; border-radius: 10px; background-color: #ccc;}.cir1{ left: 0px; top: 0px;}.cir2{ right: 0px; top: 0px;}.cir3{ left: 0px; bottom: 0px;}.cir4{ right: 0px; bottom: 0px;}.cir-box4 .cir3{ background-color: gray!important;}.cir-box2 .cir1{ background-color: blue!important;}.cir-box3 .cir1{ background-color: green!important;}.cir-box4 .cir1{ background-color: yellow!important;}
jQuery插件,自行去下载一个就好了。本人只在chrome浏览器上调试运行,如果想兼容各种浏览器,自行加上,前缀(-moz-、-ms-、-o-、-webkit-)。
0 0
- 移动端 Tips插件代码
- 42 个移动端启动页面优化 Tips
- jquery Tips插件
- jquery tips提示插件
- 移动端滚动插件iScroll
- 移动端日期选择插件
- 移动端日期小插件
- C++代码优化Tips
- Java代码优化TIPS
- C++代码优化Tips
- 编程代码片段Tips
- 性能优化-代码-tips
- 代码风格tips
- 代码审计 TIPS(1)
- VC6 Tips 002: WndTabs 插件
- tips.js提示框插件
- bootstrap tips 插件学习笔记
- php识别移动端代码
- 2017浙江省选一试第三天游记
- Redis-3.2.8的集群安装部署
- [字符串操作]poj 1274 展开字符串
- QTableWidget操作之上移,下移,删除
- jsp使用servlet实现验证码
- 移动端 Tips插件代码
- Nginx的反向代理,负载均衡,缓存,URL重写以及读写分离
- 深入PHP面向对象、模式与实践——高级特性(5)
- HTML5之HTML+CSS3技术介绍
- Unity Shader Example 26 (Texture2DArray)
- 4种数据源
- L1-007. 念数字
- C++知识文档六_对象常量_静态成员_友元_抽象类
- linux注册字符设备和卸载字符设备函数