javascript右下角弹层及自动隐藏
在编写项目中总会需要有个右下角弹层提示公告的需求,怎么用更简单方面,更简洁代码,实现更好用户体验这个就是我们的所要做的内容。市场这块弹层很多,但功能不尽如人意。下面分享早些时候自己编写,以及现在还在应用的自动弹层。
弹层示例图:
实现代码如下:
Css样式:
- /*通知提示层*/
- .msg_info{ font-size: 12px; text-align: left; z-index: 100; position: absolute; display: none; bottom: 0; right: 0; overflow: hidden;}
- .msg_info h3{float: left;margin: 0px;height: 0px;width: 100%; color: #fff; height: 30px;}
- .msg_info h3 span, .msg_info h3 b, .msg_info h3 em, .msg_info small span, .msg_info small b, .msg_info small em{ background-image: url(/img/msg_bg.png);}
- .msg_info h3 b, .msg_info h3 em, .msg_info small b, .msg_info small em{ float: left;font-size: 1px; width: 6px; height: 30px;}
- .msg_info h3 b{ background-position: 0px 0px;}
- .msg_info h3 em{ background-position: 0px -32px;}
- .msg_info h3 span{background-position: 0px -64px;float: left;line-height: 30px;}
- .msg_info h3 span font{float: left;text-align: left;overflow: hidden; margin-left: 12px;}
- .msg_info h3 span i{ float: right; margin-right: 10px; cursor: pointer;font-style:normal;}
- .message_content{ float: left;color: #515F62;overflow: hidden;border-left: solid 1px #C2C2C2; background-color: #F1F2F7; margin-top: -1px; min-height: 145px; height: auto !important; height: 145px;}
- .message_content div{ float: left; margin: 0px; padding: 10px 14px;height: 100%;position:relative;}
- .message_content div p.message_txt{ float: left;width: 100%;height: 80%;margin: 0px; padding: 0px;min-height:60px;}
- .message_content div i{float: left; font-style: normal; margin-top: 2px;text-align:right;position:fixed;bottom:2px;right:4px;}
- .message_content b.bright{ float: right; width: 1px; font-size: 1px;background-color: #C2C2C2; border-right: solid 1px #828282;height: 100%;}
- .msg_info small{float: left; width: 100%; height: 5px; font-size: 5px;}
- .msg_info small span{ background-position: 0px -101px;height: 5px; float: left;}
- .msg_info small b{height: 5px; background-position: 0px -96px;}
- .msg_info small em{ height: 5px; background-position: 0px -106px; float: right;}
Js部分:
1。自定义右下角弹层函数
- //右下角弹层
- function Messager() {
- this.layer = { 'width': 200, 'height': 100 };
- this.title = '信息提示';
- this.time = 4000;
- this.anims = { 'type': 'slide', 'speed': 600 };
- this.timer1 = null;
- this.isTiming = false;
- this.obj_id = "msg_" + $(document.body).find('msg_info').length;
- var _obj, _title, _anims, _time;
- _timer2 = null;
- //初始化
- this.inits = function (title, text) {
- _anims = this.anims;
- _title = title;
- var _html = '<div class="msg_info ' + this.obj_id + '">';
- _html += ' <h3>';
- _html += ' <b></b>';
- _html += ' <span class="msg_bg_middle">';
- _html += ' <font>' + title + '</font>';
- _html += ' <i class="message_close">×</i>';
- _html += ' </span>';
- _html += ' <em></em>';
- _html += ' </h3>';
- _html += ' <div class="message_content">';
- _html += ' <div class="msg_txt">' + text + '</div>';
- _html += ' <b class="bright"></b>';
- _html += ' </div>';
- _html += ' <small><b></b><span class="msg_bg_middle"></span><em></em></small>';
- _html += '</div>';
- $(document.body).prepend(_html);
- _obj = $("." + this.obj_id);
- if ($.browser.msie) {
- _obj.css('bottom', -5);
- }
- _obj.css('width', this.layer.width);
- _obj.find('.msg_bg_middle').css('width', this.layer.width - 12);
- _obj.find('.message_content').css('width', this.layer.width - 2);
- _obj.find('.msg_txt').css('width', this.layer.width - 34);
- _obj.find(".message_close").click(function () {
- setTimeout(function () { closeMsg(); }, 1);
- });
- _obj.hover(function () {
- clearTimeout(timer1);
- clearInterval(_timer2);
- _timer2 = timer1 = null;
- }, function () {
- timer1 = setTimeout(function () { closeMsg(); }, _time * 1000);
- timing(_time * 1000);
- });
- };
- //显示
- this.show = function (title, text, time) {
- if (title == 0 || !title) title = this.title;
- this.inits(title, text);
- if (time >= 0) this.time = time;
- switch (this.anims.type) {
- case 'slide': _obj.slideDown(this.anims.speed); break;
- case 'fade': _obj.fadeIn(this.anims.speed); break;
- case 'show': _obj.show(this.anims.speed); break;
- default: _obj.slideDown(this.anims.speed); break;
- }
- this.rmmessage(this.time);
- };
- //设置宽高
- this.lays = function (width, height) {
- if (width != 0 && width) this.layer.width = width;
- if (height != 0 && height) this.layer.height = height;
- };
- //呈现属性
- this.anim = function (type, speed) {
- if (type != 0 && type) this.anims.type = type;
- if (speed != 0 && speed) {
- switch (speed) {
- case 'slow': ; break;
- case 'fast': this.anims.speed = 200; break;
- case 'normal': this.anims.speed = 400; break;
- default: this.anims.speed = speed; break;
- }
- }
- };
- //移除层时间
- this.rmmessage = function (time) {
- if (time > 0) {
- timer1 = setTimeout(function () { closeMsg(); }, time);
- if (this.isTiming) {
- timing(time);
- }
- }
- };
- //计时
- timing = function (time) {
- _time = time / 1000;
- _timer2 = setInterval(function () {
- _obj.find('.msg_bg_middle').find('font').html(_title + ' [' + (--_time) + '秒后自动关闭]');
- }, 1000);
- }
- //关闭层
- closeMsg = function () {
- switch (_anims.type) {
- case 'slide': _obj.slideUp(_anims.speed); break;
- case 'fade': _obj.fadeOut(_anims.speed); break;
- case 'show': _obj.hide(_anims.speed); break;
- default: _obj.slideUp(_anims.speed); break;
- }
- setTimeout(function () { _obj.remove(); }, _anims.speed);
- }
- }
示例函数:
- var msg = '<p class="message_txt">当前有' + json.total + '个待审核用户等待您审核。</p><i>' + json.stadate + '</i>';
- var msgDiv = new Messager();
- msgDiv.isTiming = true;
- msgDiv.lays(300, 180);
- msgDiv.show("用户审核提醒", msg, 10000);
javascript右下角弹层及自动隐藏的更多相关文章
- javascript实现弹层效果
首先,需要有一个按钮来模拟登录: <button id="btnLogin"class="login-btn">登录</button> ...
- IOS 微信返回按钮事件控制弹层关闭还是返回上一页
在微信公共号内绑定域名后或微信内打开第三方链接跳转非单页面网站时,经常会有弹层Modal的需求,此时如果用户习惯性点击微信自带的返回“<”按钮,就会跳转回上一页或退出网站,而为了避免这种不好的误 ...
- 弹层,iframe页面
前台页面: <img src="chb/老玩家 好礼送.jpg" border="0" width="202" height=&quo ...
- mui popover 自定义 弹出位置 显示 隐藏
mui popover 一.要显示.隐藏弹出菜单插件,mui推荐使用锚点方式. 1.页面顶部导航栏.底部工具栏固定位置 <header class="mui-bar mui-bar-n ...
- 弹层组件-layer
layer是Layui的一个弹层组建,功能强大,总之我很喜欢,下面介绍这个组件的基本用法. 首先如果只需要使用layer而不想使用Layui可以单独下载layer组件包,页面引入jquery1.8以上 ...
- 富文本编辑器UEditor自定义工具栏(二、插入图片、音频、视频个性化功能按钮和弹层及自定义分页符)
导读:本篇将简单探讨插入图片.音频.视频的功能按钮实现方式 传送门:富文本编辑器UEditor自定义工具栏(一.基础配置与字体.背景色.行间距.超链接实现) 一.效果图 1.UEditor自定义工具栏 ...
- layer,一个可以让你想到即可做到的javascript弹窗(层)解决方案
学习网址:http://layer.layui.com/ 下载地址:http://res.layui.com/download/layer-v2.1.zip 我们提到的基础参数主要指调用方法时用到的配 ...
- FineUI window弹层设置
需在页面先设置 <f:Window ID="Window1" runat="server" Height="600px" Widt ...
- Bootstrap~大叔封装的弹层
回到目录 对于Bootstrap的弹层,插件有很多,今天主要用的是它自带的功能,通过bootstrap提供的模式窗口来实现的,而大叔主要对使用方法进行了封装,开发人员可以自己动态传入弹层的HTML内容 ...
随机推荐
- k8s本地搭建相信步骤
搭建前的准备: 主机名配置 cat >/etc/hosts<<EOF127.0.0.1 localhost localhost.localdomain localhost4 loca ...
- 题解 P2598 【[ZJOI2009]狼和羊的故事】
P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Orez听到这首歌,心想:狼 ...
- vue 一开始
项目安装 vue init webpack bibivue-router Y npm run dev
- libc、glibc与gcc
转http://blog.163.com/dragon_sjl@126/blog/static/100473339201107101517380/ 1.gcc(gnu collect compiler ...
- Java运行原理研究(未完待续)
java的介绍和定性 java的优缺点分析 jdk的组成结构 jvm的工作原理 java的跨平台原理 java的编译和运行过程
- Vue.js随笔二(新建路由+component+添加样式+变量的显示)
创建一个页面: 1.首先让我们看一下整个vue.js的目录,如下图所示: 2.现在让我们创建一个页面吧: 2-1首先你需要新建路由(就和建立一个如何找到项目文件的目录一个意思):进入src/route ...
- UVA 1575 Factors
https://vjudge.net/problem/UVA-1575 题意: 令f(k)=n 表示 有n种方式,可以把正整数k表示成几个数的乘积的形式. 例 10=2*5=5*2,所以f(10)=2 ...
- 【leetcode 简单】第五十题 位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000 ...
- vue安装说明
1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) --以下操作在nodejs安装路径下进行(记得不要在C盘)-- ...
- Vue的keep-alive
Vue的keep-alive: 简答的做下理解 缓存!页面从某一个页面跳转到另一个页面的时候,需要进行一定的缓存,然后这个时候调用的钩子函数是actived,而在第一次加载的时候,created.ac ...