Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码


Posted in Javascript onAugust 27, 2020

最近用到bootstrap的告警框时发现只有html的说明,就自己写了一个弹出告警框和弹出短暂显示后上浮消失的告警框。

Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码

使用效果

Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码

移入时停止上浮的效果

Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码

直接上JS代码了,可以copy过去直接用(使用bootstrap的UI框架的情况下)

var commonUtil = {
  /**
   * 弹出消息框
   * @param msg 消息内容
   * @param type 消息框类型(参考bootstrap的alert)
   */
  alert: function(msg, type){
    if(typeof(type) =="undefined") { // 未传入type则默认为success类型的消息框
      type = "success";
    }
    // 创建bootstrap的alert元素
    var divElement = $("<div></div>").addClass('alert').addClass('alert-'+type).addClass('alert-dismissible').addClass('col-md-4').addClass('col-md-offset-4');
    divElement.css({ // 消息框的定位样式
      "position": "absolute",
      "top": "80px"
    });
    divElement.text(msg); // 设置消息框的内容
    // 消息框添加可以关闭按钮
    var closeBtn = $('<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>');
    $(divElement).append(closeBtn);
    // 消息框放入到页面中
    $('body').append(divElement);
    return divElement;
  },
  
  /**
   * 短暂显示后上浮消失的消息框
   * @param msg 消息内容
   * @param type 消息框类型
   */
  message: function(msg, type) {
    var divElement = commonUtil.alert(msg, type); // 生成Alert消息框
    var isIn = false; // 鼠标是否在消息框中
    
    divElement.on({ // 在setTimeout执行之前先判定鼠标是否在消息框中
    mouseover : function(){isIn = true;},
    
mouseout : function(){isIn = false;}
    });

    // 短暂延时后上浮消失
    setTimeout(function() {
      var IntervalMS = 20; // 每次上浮的间隔毫秒
      var floatSpace = 60; // 上浮的空间(px)
      var nowTop = divElement.offset().top; // 获取元素当前的top值
      var stopTop = nowTop - floatSpace;  // 上浮停止时的top值
      divElement.fadeOut(IntervalMS * floatSpace); // 设置元素淡出
      
      var upFloat = setInterval(function(){ // 开始上浮
        if (nowTop >= stopTop) { // 判断当前消息框top是否还在可上升的范围内
          divElement.css({"top": nowTop--}); // 消息框的top上升1px
        } else {
          clearInterval(upFloat); // 关闭上浮
          divElement.remove();  // 移除元素
        }
      }, IntervalMS);

      if (isIn) { // 如果鼠标在setTimeout之前已经放在的消息框中,则停止上浮
        clearInterval(upFloat);
        divElement.stop();
      }
      
      divElement.hover(function() { // 鼠标悬浮时停止上浮和淡出效果,过后恢复
        clearInterval(upFloat);
        divElement.stop();
      },function() {
        divElement.fadeOut(IntervalMS * (nowTop - stopTop)); // 这里设置元素淡出的时间应该为:间隔毫秒*剩余可以上浮空间
        upFloat = setInterval(function(){ // 继续上浮
          if (nowTop >= stopTop) {
            divElement.css({"top": nowTop--});
          } else {
            clearInterval(upFloat); // 关闭上浮
            divElement.remove();  // 移除元素
          }
        }, IntervalMS);
      });
    }, 1500);
  }
}

调用部分

function login() {
  $.ajax({
    url: "/apis/login/session",
    data: $('#loginForm').serialize(),
    dataType:"json",
    contentType: "application/json",
    success: function(result) {
      commonUtil.message(result.message); // 直接调用commonUtil对象的message方法
    }
  });
}

总结

到此这篇关于Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的文章就介绍到这了,更多相关Bootstrap告警框(alert)内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript web对话框与弹出窗口
Feb 22 Javascript
写出更好的JavaScript之undefined篇(上)
Nov 22 Javascript
取消选中单选框radio的三种方式示例介绍
Dec 23 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
Mar 04 Javascript
JavaScript如何禁止Backspace键
Dec 02 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
Aug 16 Javascript
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
dropload.js插件下拉刷新和上拉加载使用详解
Oct 20 Javascript
ES6 fetch函数与后台交互实现
Nov 14 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 Javascript
javascript操作向表格中动态加载数据
Aug 27 #Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 #Javascript
js实现批量删除功能
Aug 27 #Javascript
js利用拖放实现添加删除
Aug 27 #Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 #jQuery
Javascript call及apply应用场景及实例
Aug 26 #Javascript
Javascript类型判断相关例题及解析
Aug 26 #Javascript
You might like
一棵php的类树(支持无限分类)
2006/10/09 PHP
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
生成静态页面的PHP类
2006/11/25 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
Flask框架的学习指南之用户登录管理
2016/11/20 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
英文自荐信格式
2013/11/28 职场文书
实习鉴定范文
2013/12/19 职场文书
七年级政治教学反思
2014/02/03 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
出国留学英文自荐信
2015/03/25 职场文书
2015年党小组工作总结
2015/05/26 职场文书