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 相关文章推荐
基于jQuery的弹出框插件
Mar 18 Javascript
中国地区三级联动下拉菜单效果分析
Nov 15 Javascript
用Javascript获取页面元素的具体位置
Dec 09 Javascript
JS执行删除前的判断代码
Feb 18 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
node.js中的console.log方法使用说明
Dec 09 Javascript
JS实现超炫网页烟花动画效果的方法
Mar 02 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 Javascript
JavaScript正则表达式实例详解
Oct 16 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
详细介绍Next.js脚手架完整搭建封装
Apr 26 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 面试碰到过的问题 在此做下记录
2011/06/09 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python将多个excel表格合并为一个表格
2021/02/22 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
招标授权委托书样本
2014/09/23 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
行政上诉状范文
2015/05/23 职场文书
2016公司新年问候语
2015/11/11 职场文书
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle