JavaScript State Manager是一种轻量级的、易于使用的状态管理器,主要用于响应式网站。它不须要任何的JavaScript框架。你能够定义断点将运行在当前断点的JavaScript代码打包在一块儿。javascript
我为何要使用SimpleStateManager而不是媒体查询?java
媒体查询容许您改变一个网站是基于一系列的条件,相反,SimpleStateManager容许你改变你的网站的功能。这样,媒体查询和SimpleStateManager称赞对方,在状况你改变网站的外观也可能改变功能。框架
主要特性网站
超轻量级spa
不依赖任何第三方类库code
支持不一样状态添加删除 - add/remove,拥有一个完整的API文档blog
支持扩展事件
示例代码图片
ssm.addState({ id: 'mobile', maxWidth: 767, onEnter: function(){ console.log('enter mobile'); } }); ssm.addState({ id: 'tablet', minWidth: 768, maxWidth: 1023, onEnter: function(){ console.log('enter tablet'); } }); ssm.addState({ id: 'desktop', minWidth: 1024, onEnter: function(){ console.log('enter desktop'); } }); 添加多个状态 ssm.addStates([ { id: 'mobile', maxWidth: 767, onEnter: function(){ console.log('enter mobile'); } }, { id: 'tablet', minWidth: 768, maxWidth: 1023, onEnter: function(){ console.log('enter tablet'); } }, { id: 'desktop', minWidth: 1024, onEnter: function(){ console.log('enter desktop'); } } ]); ssm.removeState('mobile'); //删除单个状态 ssm.removeStates(['tablet', 'mobile']); //删除多个状态
态添加后,须要调用ready()方法来触发,以下:ip
ssm.ready();
支持链式操做,以下:
ssm.addState({ id: 'mobile', maxWidth: 767, onEnter: function(){ document.getElementById('hero').style.backgroundColor = "#daa23e"; } }).ready();
当屏幕大于979px的时候:
当小于979px的时候就会给他添加一些事件: