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 boxy弹出层插件中文演示及使用讲解
Feb 24 Javascript
javascript比较两个日期的先后示例代码
Dec 31 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
jquery实现用户打分评分特效
May 28 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
Apr 06 Javascript
jQuery下拉菜单的实现代码
Nov 03 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
Mar 09 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
Jan 31 Javascript
vue项目打包之后背景样式丢失的解决方案
Jan 17 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
OpenLayers3实现图层控件功能
Sep 25 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
基于mysql的论坛(3)
2006/10/09 PHP
提高PHP编程效率的方法
2013/11/07 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
2014/06/23 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
JS回调函数深入理解
2019/10/16 Javascript
Python爬虫文件下载图文教程
2018/12/23 Python
python中dict()的高级用法实现
2019/11/13 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
python实现单机五子棋
2020/08/28 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
绿里奇迹观后感
2015/06/15 职场文书
好员工观后感
2015/06/17 职场文书
PHP策略模式写法
2021/04/01 PHP
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技