再探 butterfly.js - 抛砖引玉篇(notification.js)

再探 butterfly.js - 抛砖引玉篇(notification.js)

事情经过

今天又来研究butterfly.js的源码(打酱油),发现了一个notification.js。顾名思义notification就是公告栏嘛,那么这个notification.js到底有什么用途呢?题外话:还有十几天就过年… 我的新年愿望是:准时出粮

正片

先贴效果图:

显然,这真的是一个显示状态的公告栏。万万没有想到butterfly.js会内置了这类插件。那个这个notification.js到底要怎么用呢?下面只贴出关键代码,详情请自行查阅notification.js

defaults: {
    duration: 2000,
    autoDismiss: true,
    type: ‘info‘,
    showSpin: false
},

这是notification.js的默认参数,又来顾名思义,duration时长autoDismiss自动消失type类型showSpin显示spin(菊花图)


initialize: function(options) {
    _.extend(this, this.defaults, options);
    this.el.classList.add(this.type);
    this.el.innerHTML = options.message;
    document.body.appendChild(this.el);
    if (this.showSpin) this.spinner = new Spinner({
        left: ‘20px‘,
        lines: 7,
        speed: 1.3,
        length: 3,
        radius: 3,
        color: ‘#666‘
    }).spin(this.el);
},

initialize是用来初始化的function_.extend()这是个承继的functionnew Spinner()是用来定义菊花图。总的来说,这个initialize就是用来处理默认参数自定义参数。源代码就介绍到这里,具体还是要自行查阅,原理和实现的方法都比较简单。

用法

新建一个butterfly.js项目:

<input type="button" value="click" class="btn">
```javascript
events:{
    ‘click .btn‘:‘cl‘
},

cl:function(){
    new Notification({
        message: ‘我是info‘,
        type: ‘info‘
    }).show();
}

点击效果如下:

这个notification的样式由butterfly.css内控制:

.notification {
  position: fixed;

  bottom: -40px;
  -webkit-transition: bottom 1.25s;
     -moz-transition: bottom 1.25s;
          transition: bottom 1.25s;
}
.notification.active {
  bottom: 0px;
}

初始位置为bottom: -40px,添加.activebuttom: 0px。由于transition: bottom 1.25s;,会出现从下至上的出现效果。默认duration2s,而且autoDismiss: true,所以在2s后公告栏会消失,移除.active。公告栏的位置由当前的0px,变为-40px。同理,因为有transition,会有一个从上至下的消失效果。

目前,notification.js提供4种type : wellinfowarningerror。具体的操作,还请大家亲自动手折腾一下。

时间: 2024-10-18 08:18:17

再探 butterfly.js - 抛砖引玉篇(notification.js)的相关文章

再探 butterfly.js - grunt.js篇(一)

再探 butterfly.js - grunt.js篇(一) 神器 grunt.js 久仰grunt.js的大名,学习grunt.js一直是我todo List的第一位.趁着新春佳节来临之际(打酱油的日子),就来填了这个坑,完了这个心愿. grunt.js的强大,强大在于它拥有很多用途丰富的插件,和不同插件之间的联动实现更牛逼的功能. 这里默认大家已经安装了npm和会用npm install等指令,就不详细讲了.下面讲用到grunt-contrib-watch和grunt-contrib-con

再探 butterfly.js - 奇异的留白

再探 butterfly.js - 奇异的留白 事情经过 在 梓凡兄 捣鼓他的 豆瓣FM 播放器的时候,发现了butterfly.js会在ipad的横屏模式(landscape mode)的时候对<html>添加class="ipad ios7".更加离奇的是在butterfly.css有以下样式: @media (orientation:landscape){ html.ipad.ios7 > body{ position:fixed;bottom:0;width:

Chrome下的语音控制框架MyVoix.js使用篇(四)

在上一篇博文中,我为大家介绍了myvoix.js中的smart learning模块,以及何如使用该功能.(myvoix.js的源码地址会在每一篇文章末尾放出) 文本将拓展 Chrome下的语音控制框架MyVoix.js使用篇(二) 中的实例(没看过的同学请猛戳链接),具象地介绍smart learning模块的使用.在之前的实例中,我们通过语音输入,让 Hello My Voix 标题变化成各种颜色, 并且通过预存指令来增加语音指令的识别率.在本文中将去除预存指令这一块,通过smart lea

js学习篇1--数组

javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会改变数组的大小的,例如: var array=[1,2,3]; console.log(array.length);//输出array的长度为3 array.length=5;//给array的长度赋值为5,此时array的内容变为[1,2,3,undefined,undefined] consol

js进阶篇学习

今天,闲来没什么事觉得要恶补一下js基础,虽说昨天听了尚大大的课,什么松耦合,紧耦合,各种组件化,可复用性.小小懵逼!硬着头皮也要上啊!但是还有一周的时间写这个组件化之前,觉得先恶补一下,js进阶比较好,所以有了今天的笔记. -----js进阶篇 因为之前看过慕课的js进阶篇但是好久不看,基本也给就馍吃的七七八八了,狠心从头开始 第一章,让你认识js 第二章,你要懂得规则,基础语法,变量啦,运算符拉 第三章,数组,(这个当初学的时候些些的懵逼,数组是个坎,二维更是懵逼,现在再看,依然是,迈过去了

[老老实实学WCF] 第五篇 再探通信--ClientBase

原文:[老老实实学WCF] 第五篇 再探通信--ClientBase 老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创建了通道,实现了和服务端的通信.然而,与服务端通信的编程模型不只一种,今天我们来学习利用另外一个服务类ClientBase<>来完成同样的工作,了解了这个类的使用方法,我们对服务引用中的关键部分就能够理解了. ClientBase

17javascript看到的一篇关于JS函数的介绍

17javascript看到的一篇关于JS函数的介绍,下面用自己的话来介绍一下JS函数是什么.在W3C中函数的定义是这么说的:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. 诚然,从这种抽象的定义中我们得不到什么有价值的东西.下面,举例来列举出函数的几种定义方式: 复制代码function add(num1, num2) {  return num1 + num2;}var add = function (num1, num2) {  return num1 + num2;}//这

python 微信开发入门篇-调用JS SDK 含微信支付(二)

本章节完成微信js sdk + 微信支付调用,项目基础部分请参照入门篇第一章:https://www.cnblogs.com/wangcongxing/p/11546780.html 1.微信服务号设置    登录服务号后台设置如下: 1.登录地址:https://mp.weixin.qq.com/ 2.设置-->公众号设置-->功能设置 设置后结果如下 2.微信商户后台设置 登录微信支付平台设置如下: 1.登录地址(因为需要安装exe插件, 设置浏览为兼容模式  建议使用QQ浏览器):htt

JS基础篇--HTML DOM classList 属性

页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋予了某个CSS类. 添加类(add) document.getElementById("myDIV").classList.add("mystyle"); 为 <div> 元素添加多个类: document.getElementById("myDIV").cla