M端错误提醒

JS:

window.pop = {
/*alert提示框
*@param title 提示的标题
*@param desc 提示的描述
*@param btnNum 按钮的数量,假如为1,则无视e2,t2,l2参数
*@param e1 第一个按钮的类型,0为关闭类型,1为链接类型
*@param t1 第一个按钮的显示文字
*@param l1 第一个按钮的链接,如果该按钮为关闭类型,此处填0,链接类型填写该按钮链接
*@param e2 第二个按钮的类型,0为关闭类型,1为链接类型
*@param t2 第二个按钮的显示文字
*@param l2 第二个按钮的链接,如果该按钮为关闭类型,此处填0,链接类型填写该按钮链接
*/
alert: function(title, desc, btnNum, e1, t1, l1, e2, t2, l2) {

/*initialize main dom*/
var _body = $(‘body‘);
var popShadow = $(‘<div class="shadow"></div>‘);
var popWrap = $(‘<div class="pop-wrap"></div>‘);
var popContent = $(‘<div class="pop-content"></div>‘)
.html(‘<p class="pop-title">‘ + title + ‘</p><p class="pop-describe">‘ + desc + ‘</p>‘)
.appendTo(popWrap);

var popButtonBox = $(‘<div class="pop-button-box"></div>‘);
var typeClass = (btnNum == 1) ? ‘pop-button-single‘ : ‘pop-button-double‘

var btnNum = parseInt(btnNum);//get button‘s number
var buttonData = [[e1, t1, l1], [e2, t2, l2]];//save data to array

/*loop append buttons to pop-button-box*/
for (var i = 0; i < btnNum; i++) {
if(parseInt(buttonData[i][0]) == 0){
popButtonBox.append(closeDom(buttonData[i][1]));
}else{
popButtonBox.append(linkDom(buttonData[i][1], buttonData[i][2]));
}
};

/*create the close type dom
*@return dom
*/
function closeDom (text) {
return $(‘<span class="pop-button pop-button-close ‘ + typeClass + ‘">‘ + text + ‘</span>‘).bind(‘click‘, closeFun);
}

/*create the link type dom
*@return dom
*/
function linkDom (text, link) {
return $(‘<a class="pop-button pop-button-close ‘ + typeClass + ‘" href="‘ + link + ‘">‘ + text + ‘</a>‘);
}

/*close pop function*/
function closeFun () {
popShadow.remove();
popWrap.remove();
}

/*append pop to document*/
popShadow.appendTo(_body).fadeIn(‘fast‘);
popWrap.append(popButtonBox).appendTo(_body).fadeIn(‘fast‘);
popOffset(popWrap);
},

/*确认提示
*@param title 确认提示标题
*@param desc 确认提示描述
*@param fn 确认后回调函数
*/
confirm: function(title, desc, fn) {

var _body = $(‘body‘);
var popShadow = $(‘<div class="shadow"></div>‘);
var popWrap = $(‘<div class="pop-wrap"></div>‘);
var popContent = $(‘<div class="pop-content"></div>‘)
.html(‘<p class="pop-title">‘ + title + ‘</p><p class="pop-describe">‘ + desc + ‘</p>‘)
.appendTo(popWrap);

var popButtonBox = $(‘<div class="pop-button-box"></div>‘);

var closeBtnDom = $(‘<span class="pop-button pop-button-close pop-button-double">取消</span>‘)
.on(‘click‘, function(){
popShadow.remove();
popWrap.remove();
})
.appendTo(popButtonBox);

var isFn = typeof fn === ‘function‘;
if (isFn) {
var fnBtnDom = $(‘<span class="pop-button pop-button-close pop-button-double">确定</span>‘)
.on(‘click‘, fn)
.on(‘click‘, function(){
popShadow.remove();
popWrap.remove();
})
.appendTo(popButtonBox);
};

popButtonBox.appendTo(popWrap);

/*append pop to document*/
popShadow.appendTo(_body).fadeIn(‘fast‘);
popWrap.appendTo(_body).fadeIn(‘fast‘);
popOffset(popWrap);
},

/*错误信息提示
*@param text 错误信息文本
*@param sec 错误信息显示时间,单位毫秒,选填,不填则默认3秒
*/
error: function (text, sec, fn) {
var _body = $(‘body‘);
var popError = $(‘<div class="pop-wrap-error">‘ + text + ‘</div>‘);
$(‘.pop-wrap-error‘).remove();
popError.appendTo(_body).fadeIn(‘fast‘);
popOffsetX(popError);
sec = sec ? sec : 3000;
setTimeout(function() {
popError.fadeOut(‘fast‘,function() {
popError.remove();
});
if (typeof fn == ‘function‘) fn()
},sec);
},

/*loading信息提示
*@param text 读取中提示信息
*/
loading: function (text) {
var _body = $(‘body‘);
var popLoading = $(‘<div class="pop-loading"></div>‘);
var popContent = $(‘<p>‘ + text + ‘</p>‘);
var popLoadingEffect = $(‘<div class="pop-loading-effect"><i class="bounce1"></i><i class="bounce2"></i><i class="bounce3"></i><i class="bounce4"></i><i class="bounce5"></i><i class="bounce6"></i></div>‘);

popLoading.append(popContent).append(popLoadingEffect).appendTo(_body).fadeIn(‘fast‘);
popOffset(popLoading);
},

/*tips信息提示
*@param text 提示信息,强调部分请用strong标签包裹
*/
tips: function () {
var _body = $(‘body‘);
var allTips = $(‘.icon-question-circle‘);//选取页面中所有问号图标
allTips.each(function(index, el) {//遍历所有问号图标
var _this = $(this);
var text = _this.data(‘pop-tips‘);//获取当前tip的文案
_this.on(‘touchstart‘, function(){//为此图标绑定事件
$(‘.pop-tips‘).remove();
var popTips = $(‘<div class="pop-tips"></div>‘);
var popContent = $(‘<p><span>‘ + text + ‘</span></p>‘);
popTips.append(popContent).appendTo(_body);
var arrThisOffset = getElementOffset(_this);//获得此图标的距离页面顶端的距离和左边的距离
var arrTipOffset = [popTips.width(),popTips.height()]//获得tip的宽高
var tipFinalOffset = [
arrThisOffset[0] - (arrTipOffset[0]/2) + (_this.width()/2),//图标上偏移距离-tip高度的一般
arrThisOffset[1] - arrTipOffset[1] - 10//图标左偏移距离-tip宽度的一般+图标宽度的一半
];
popTips.css({
‘left‘: tipFinalOffset[0],
‘top‘: tipFinalOffset[1] - 5
});
popTips.fadeIn(‘fast‘).animate({‘top‘: tipFinalOffset[1],‘opacity‘:1}, 200);
setTimeout(function(){
popTips.remove();
}, 3000)
})
});
},

/*
*清除所有pop弹层
*/
remove: function () {
$(‘.shadow, .pop-wrap, .pop-wrap-error, .pop-loading‘).remove();
}

};
/*
*修正元素的定位,使之绝对定位于页面中间
*@param e 目标元素
*/
function popOffset (e){
var popHeight = e.height();
var popWidth = e.outerWidth();
e.css({‘margin-top‘: -popHeight / 2, ‘margin-left‘: -popWidth / 2});
}
/*
*修正元素的X轴定位,使之X轴绝对定位于页面中间
*@param e 目标元素
*/
function popOffsetX (e){
var popWidth = e.outerWidth();
e.css({‘margin-left‘: -popWidth / 2});
}
/*
*返回元素距离页面顶端的距离和左边的距离
*@param e 目标元素
*@return array [左边距,顶边距]
*/
function getElementOffset(e){
return [e.offset().left,e.offset().top];
}
//渲染时初始化
$(function(){
if ($(‘.icon-question-circle‘).length > 0) {//按需加载
pop.tips();
};
})

CSS:

.pop-wrap{
position: fixed;
left: 50%;
top: 50%;
z-index: 102;
width: 80%;
margin-left: -40%;
background: #fff;
border-radius: 10px;
text-align: center;
display: none;
}
.pop-wrap .pop-content{
margin: 20px 20px 0;
border-bottom: 1px solid #ccc;
}
.pop-wrap .pop-content .pop-title{
font-size: 15px;
color: #333;
margin-bottom: 10px;
}
.pop-wrap .pop-content .pop-describe{
font-size: 13px;
color: #666;
margin-bottom: 10px;
}
.pop-wrap .pop-content .pop-describe b{
color: #f90;
}
.pop-wrap .pop-button-box{
overflow: hidden;
}
.pop-wrap .pop-button-box .pop-button{
float: left;
margin: 10px 0;
font-size: 17px;
color: #808;
}
.pop-wrap .pop-button-box .pop-button-single{
width: 100%;
}
.pop-wrap .pop-button-box .pop-button-double{
width: 50%;
border-left: 1px solid #ccc;
margin-left: -1px;
}

时间: 2024-10-28 04:45:37

M端错误提醒的相关文章

css实现移动端消息提醒按钮

1.利用css实现移动端消息提醒按钮,页面效果如下: 2.代码实现思路和关键点分析: 代码的结构如下图所示,一共有4个提醒模块,每个模块都用li标签包裹起来,li标签里设置两个div,左边的div是文案,右边的div用于包裹按钮. css样式一看就懂,就不啰嗦了.本文的重点是按钮效果的实现. 2.1 如上图,我们用一个class为“.setting_btn”的div 绘制椭圆,设置背景色.1个像素的补白.以此让中间白色的圆与外框看起来有1px的间距. 用class为“.setting_circl

vscode写python时的代码错误提醒和自动格式化

python的代码错误检查通常用pep8.pylint和flake8,自动格式化代码通常用autopep8.yapf.black.这些工具均可以利用pip进行安装,这里介绍传统的利用pip.exe安装和在VScode中安装两种方式.[温馨提醒:我用的是pylint]要使用flake8或要想flake8等工具起作用,前提是必须把settings.json文件中的"python.linting.enabled"值设为“true”,否则即使安装了这些工具,也起不到代码的错误提醒. [传统安装

Dubbo消费端错误: ClassNotFoundException: org.apache.zookeeper.proto.WatcherEvent

出现错误的原因是消费端war没有启动成功, 但是zkClient和Dubbo的对应Thread启动了, web container无法加载对应的类, INFO: Initializing ProtocolHandler ["http-bio-8081"] Jun 01, 2016 9:48:24 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-801

go使用TCP连接服务端错误

自己写了一个跑在Linux服务端的go程序,从客户端连接时提示:No connection could be made because the target machine actively refused it.然后关闭防火墙该,双向ping都能同,依然心灰意冷.但作为程序小白,百度了很多都无用,看了go的文档,在示例显示监听端口的代码net.Listen("tcp", ":8080"),我以前的监听代码net.Listen("tcp", &q

iMPACT错误提醒 “A Xilinx Application has encountered an unexpected error.It is recommended that you save any unsaved work in the event that this condition persists ...“程序烧写时点iMPACT突然崩溃

将错误窗口关闭, 双击Boundary Scan,跳出窗口”Do you want to continue and ...”直接关闭, 再跳出一个窗口“This device supports attached Flash PROM .....“窗口再直接关闭,再点击图示的SPI/BPI接口添加.mcs文件 原文地址:https://www.cnblogs.com/cx-qiao/p/11259536.html

MAC 下 mamp环境开启php错误提醒

1.第一步修改php.ini文件:打开 /Applications/MAMP/bin/php/{your PHP version}/conf/php.ini 文件找到 display_errors = Off (大概在 277 行的位置),改成 display_errors = On和找到设成error_reporting = E_ALL(大概在 270 行的位置,值类型有3种,根据自己的需要去设置) 2.第二步设置mamp pro的Log errors选项: Main Window->php-

错误提醒

1:注意数组,有关于时间的数组要小心,不要出现TLE.关于其他的数组要尽量开大.(你已经被坑n次了,该张张记性了!!!). 2:看清题目,有些条件不要自以为是的就当来用.不然爆0就不要埋怨了,尽量跟着题目的意思走. 3:每次打完代码记得静态查错,尤其是for循环里的i,j,k什么的不要忽然间就窜了位.还有一些关键性代码,三思而后行!!! 未完待续... 原文地址:https://www.cnblogs.com/gcfer/p/10349286.html

MVC扩展Filter,通过继承HandleErrorAttribute,使用log4net或ELMAH组件记录服务端500错误、HttpException、Ajax异常等

□ 接口 public interface IExceptionFilter{    void OnException(ExceptionContext filterContext);} ExceptionContext继承于ControllerContext,从中可以获得路由数据route data.HttpContext. □ 的HandleErrorAttribute是对IExceptionFilter的实现,默认是启用的 public static void RegisterGlobal

基于SS5服务端的客户端

SS5停止更新已经好几年了,用作socks5代理的服务端还是比较稳定的.但是如果要使用加密账号和密码的协议,有些坑需要去填. 1.服务端的账号密码验证方式配置为“s”时,客户端进行协议验证时,需要用“0x21”,此时服务端会提醒不存在该协议或者错误的请求.是因为服务端的代码有问题. 在服务端SS5Mod_socks5.c文件的unsigned char GetMethod(struct _SS5ClientInfo *ci )函数中,有一段判断协议的代码是这样的 do { if( (node->