Skip to content

code661/ZakasUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 12, 2019
cf0041d · Nov 12, 2019

History

18 Commits
Aug 19, 2018
Nov 12, 2019
Feb 27, 2019
Feb 27, 2019
Aug 18, 2018
Aug 19, 2018
Aug 19, 2018
Aug 19, 2018
Aug 22, 2018
Aug 20, 2018
Aug 20, 2018
Aug 17, 2018

Repository files navigation

ZakasUI

在学习了 JavaScript 的面向对象的知识后,造一些简单的轮子来检验自己的学习效果。 取名叫 ZakasUI 是因为刚才想名字时发现摆在桌子上的几本 JavaScript 书的作者都是 Nicholas C.Zakas,也就是被称做 JavaScript 红宝书的《JavaScript 高级程序设计》一书的作者。在学习的过程中对我帮助很大,所以就有了这个名字 ZakasUI(

组件目录

  • Tab 组件
  • Sticky 组件
  • Dialog 组件
  • Suggestion 组件
  • Slides 组件
  • 拖拽组件
  • EventHub 组件

使用

内部实现依赖于 jQuery 库,在使用前需安装 jQuery

Tab 组件

  1. 引入Tab.css文件
  2. 在页面添加如下 HTML 代码
<div class="tabs">
    <ol class="tabs-bar">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
    </ol>
    <ol class="tab-content">
      <li>Content1</li>
      <li>Content2</li>
      <li>Content3</li>
      <li>Content3</li>
    </ol>
  </div>
  1. 添加 JavaScript 代码
new Tab('.tabs')

Sticky 组件

  1. 添加 CSS 代码
.sticky {
  position: fixed;
  top: 0;
  left: 0;
}
  1. 添加 JavaScript 代码
new Sticky(selector,val)

第一参数为需要设置为 Sticky 的元素选择器,第二个参数为距离视窗顶部的高度值

Slides 组件

  1. HTML
<div class="slides">
  <ol>
    <li><img src="https://picsum.photos/500/400/?image=008" alt=""></li>
    <li><img src="https://picsum.photos/500/400/?image=020" alt=""></li>
    <li><img src="https://picsum.photos/500/400/?image=010" alt=""></li>
  </ol>
</div>
  1. 引入 CSS 文件 slides.css
  2. JavaScript 代码
var slides = new Slides({
  element: '.slides',
  autoPlay: true
})

拖拽组件

  1. 导入 JavaScript 文件
<script src='https://raw.githubusercontent.com/code661/ZakasUI/master/Drag.js'></script>
  1. 使用示例 给构造函数传入字符传
var drag = new Drag('.drag-element')

或者传入 DOM 对象

var elem = document.querySelector('.drag-element')
var drag = new Drag(elem)

事件中心(EventHub)

学习和理解 Redux 的过程中,先理解事件中心的方案实现组件通讯。 代码照抄了 mqyqingfeng/EventEmitter: 一个简单的 EventEmitter,可在浏览器中使用,帮助你实现事件的订阅和发布。

var emitter = new EventEmitter();

on

添加一个事件监听器,支持链式调用

emitter.on(eventName, listener)
  • eventName 事件名称
  • listener 监听器函数

off

删除一个事件监听器,支持链式调用

emitter.off(eventName, listener)
  • eventName 事件名称
  • listener 监听器函数

once

添加一个只能触发一次的事件监听器,支持链式调用

emitter.once(eventName, listener)
  • eventName 事件名称
  • listener 监听器函数

emit

触发事件,支持链式调用

emitter.emit(eventName, args)
  • eventName 事件名称
  • arg 数组形式,传入事件监听器的参数

About

⚙️ZakasUI is a tiny UI library

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published