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 相关文章推荐
CSS JavaScript 实现菜单功能 改进版
Dec 09 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
全面解析Bootstrap布局组件应用
Feb 22 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
Jan 06 Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 Javascript
vue+SSM实现验证码功能
Dec 07 Javascript
vue.js实现图书管理功能
Sep 24 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
在Vue中获取组件声明时的name属性方法
2018/09/12 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
python求pi的方法
2014/10/08 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
Python如何定义有默认参数的函数
2020/08/10 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
遗体告别仪式主持词
2014/03/20 职场文书
法制宣传口号
2014/06/16 职场文书
委托证明范本
2014/11/25 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
Python 发送SMTP邮件的简单教程
2021/06/24 Python