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 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
基于jquery的二级联动菜单实现代码
Apr 25 Javascript
JavaScript DOM元素尺寸和位置
Apr 13 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
整理关于Bootstrap列表组的慕课笔记
Mar 29 Javascript
JavaScript控制浏览器全屏显示简单示例
Jul 05 Javascript
深入理解vue-class-component源码阅读
Feb 18 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
Jun 14 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
实现一个简单得数据响应系统
Nov 11 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 mysql 封装类实例代码
2016/09/18 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
jquery搜索框效果实现方法
2015/01/16 Javascript
javascript 实现map集合
2015/04/03 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
用Angular实现一个扫雷的游戏示例
2020/05/15 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
Python threading多线程编程实例
2014/09/18 Python
Python用模块pytz来转换时区
2016/08/19 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python中字符串的操作方法大全
2018/06/03 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
python列表推导式操作解析
2019/11/26 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Python用SSH连接到网络设备
2021/02/18 Python
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
Unix/Linux开发面试题
2016/08/16 面试题
后勤管理员岗位职责
2014/08/27 职场文书
先进员工事迹材料
2014/12/20 职场文书
语文教师求职信范文
2015/03/20 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
使用CSS实现音波加载效果
2023/05/07 HTML / CSS