一个简单的弹出框组件

  个人写这个弹出框的原因就一个,就是能给我带来可复用,追求新,要简单,可扩展。要达到炫酷有点难度,分析后还是决定以功能为主,因为是用jq和animation实现的弹出框组件,所以看起来难度不大,简称co-dialog

  灵感来源,因为工作中用到dialog,发现UI设计的弹出框的风格一直在变化,于是每次都要重新写一个弹出框,无意中增加了无用的工作量,所以果断就封装成一个弹出框组件,目前的锥形仅支持PC,然后又加入了CSS3动画效果,如果要引入动画效果就需要高版本的Browser才能使用,期望你能一起加入参与改进!+1

  目前支持一个CSS3动画组件的功能,当然在co-dialog也能调用动画方法coani,调用方式和.use().app()方法一样,加入动画.coani()方法,具体动画api参考co-ani文档。

  这个弹出框使用起来很简单,只要实例一次对象,就可以调用api。

var codialog = new codialog();

  现在我们可以使用对象(codialog),调用一个方法(app),只需要传入一个节点(.class)或(#id)名,类型为字符串格式。

codialog.app(‘.open-success‘)

  之后我们继续接下来的方法(use)调用,使用弹出框的方法传入一个对象,对象的格式是keys and value形式,功能主要围绕弹出框的基础布局设置以及布局属性和样式、数据的填充、公用方法的事件处理。基础布局的设置有哪些属性?(边距的默认值之后改过)

  如下:

  

  dialogWidth

弹出框的整体宽度

  default: 558
  options: integer

  dialogHeight

弹出框的整体高度

  default: 300
  options: integer

  headerMargin

标题的外边距设置

  default: 10 || { horizontal: 0, vertical: 0} || { horizontal: ‘10px 10px‘, vertical: ‘10px 10px‘ }
  options: integer || { horizontal: integer, vertical: integer } || { horizontal: string, vertical: string }

  bodyMargin

容器的内容外边距(其实内部封装的时候设置为内边距)

  default: 10 || { horizontal: 0, vertical: 0} || { horizontal: ‘10px 10px‘, vertical: ‘10px 10px‘ }
  options: integer || { horizontal: integer, vertical: integer } || { horizontal: string, vertical: string }

  footerMargin

底部的内容外边距(同上)

  default: 10 || { horizontal: 0, vertical: 0} || { horizontal: ‘10px 10px‘, vertical: ‘10px 10px‘ }
  options: integer || { horizontal: integer, vertical: integer } || { horizontal: string, vertical: string }

  以上都是在methods方法之前调用的属性,也就是说给弹出框设置的这些属性都会直接被使用,如果你发现还有更好的方案,可以去git上直接讨论,如果提的建议nice那么必会采纳。我更佳喜欢人性化,自由开放的发言。    下面是数据的填充:

  title

标题的内容填充

  default: ‘‘
  options: string

  message

容器的内容填充

  default: ‘‘
  options: string

  footerText

底部内容的填充(可以和按钮共存)

  default: [‘‘,...]
  options: array ([string, string])
  以上都是填充弹出框的自定义内容,其中底部的文本填充需要注意,这个(footerText)的值是写在数组里面的一组字符串。如果以上填充内容的写法,我们甚至还可以在methos方法里面使用this操作内容填充。
methods: function (nodes) {
     this.title = ‘协议已开通‘;
     this.message = ‘<a href>赶快充值吧!</a>‘;
},

  接下来,我们还需要在methods公用方法之前处理一些api的调用,比如onHeaderBefore、onBodyBefore、onFooterBefore的函数方法的执行,在这里我们可以做哪些操作?我们仅仅在此出设置布局的样式,为啥要在这里,因为这里设置的方法能实现自适应的布局居中的功能。

下面是布局居中、属性和样式的方法:

  onHeaderBefore

设置头部的节点元素的attribute和style

  default: callback
  options: function

  onBodyBefore

设置容器的节点元素的attribute和style

  default: callback
  options: function

  onFooterBefore

设置底部的节点元素的attribute和style

  default: callback
  options: function
 接下里的公用的方法的设置和调用,帮助我们实现更加人性化的操作,避免我们的业务需求,减少考虑的事件处理,比如关闭的事件(isClose),还有多级的按钮的作用(footerButtonCount)。

  footerButtonCount

底部按钮的个数(如果设置0,就会remove移除按钮块,最多有2个按钮)

  default: 1
  options: integer(0 / 1 / 2)

  isClose

关闭的按钮事件,默认位true,点击右侧关闭按钮就会隐藏弹出框,反之同理。

  default: true
  options: boolean(true / false)
  如果你看了之后,还有其他更好的想法,请直接砸过来,我刚刚度娘了一下今天的日子,原来今天是汶川大地震,为同胞祈福。
  每天打坐大久了,大佬轻点砸。  以上就是这个弹出框插件(co-dialog)的所有功能,看效果和code直接进。

原文地址:https://www.cnblogs.com/hao5599/p/9029540.html

时间: 2024-11-07 21:06:16

一个简单的弹出框组件的相关文章

代码录播:jQueryMobile 实现一个简单的弹出框效果

今天给大家带来的是 jQueryMobile 实现一个简单的弹出框效果,有兴趣的童鞋可以试试哦~ ^_^ 阅读原文:www.gbtags.com

jquery实现一个简单的弹出框

自己改写一些jquery的部分代码,自己总结出来一个比较好用的jquery弹出框,留着以后工作时候再用.喜欢就拿走吧! 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999

弹出框组件,可拖拽

/** * 弹出框组件 */ (function($) { var Utils = { showMask: function() { var $mask = $("#mask"); if( $mask.length === 0 ) { $('body').prepend("<div id='mask' class='mask'></div>"); } $("#mask").css({ width: Math.max(doc

co-dialog弹出框组件-版本v2.0.1

具体案例查看co-dialog:https://koringz.github.io/co-dialog/index.html 2.0.1版本优化项,代码压缩,修复PC和移动端自适应,修复显示弹出框浏览器边框隐藏对body产生内容错位,添加 onResize 默认为 true, 添加选项 type 不同类型显示弹出框 ['success', 'error', 'warning', 'info', 'question']. 压缩内容的实现方式,主要是通过重构了内部代码,整理静态方法,抽离被多次调用的

android如何使用DOM来解析XML+如果做一个表情的弹出框

效果图: 如何解析以下的xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <array> <string>(#大笑)</string

【原创】贡献一个JS的弹出框代码...

一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开始 在这里我们来一个获取验证码的页面来说明,也是在我项目用用到的一个页面.我们首先创建一个HTML的静态页面.其中代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www

实现一个简单的弹出层

弹出层的实现方式是让一个块层遮挡住最底下的层,在最顶上显示相应的内容,因为最底下的块级和最上面的块级属于一个页面,他们之间也可以共享一些数据(实现一些特定的操作) 下面是简单的一个实现的过程 首先我们定义一个基本的页面结构 <div id="show"> //最底下的层 <input type="button" value="测试" id="test"/> </div> <div id

一个简单的弹出alv窗口例子

利用SALV可以简单的实现一个alv弹出窗口,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 REPORT ztest_salv_popup. DATA go_alv TYPE REF TO cl_salv_table. DATA:git_alv TYPE STANDARD TABLE OF ekko. DATA: lr_functions TYPE R

【咸鱼教程】一个简单的弹出二级菜单UIPopupMenu

一. 实际效果 演示地址 二.实现原理主要用Button+List组件,和遮罩实现. 1. 点击Button时,将List下移展开.2. 再次点击Button,或者选中List中的某一项时,将List上移收缩. 三.使用方法 1. 拖动UIPopupMenu自定义组件到场景exml上 2. 根据需求自定义UIPopupMenuSkin,并为组件UIPopupMenu设置皮肤(自定义皮肤UIPopupMenuSkin具体查看Demo) 3. 根据需求自定义List条目皮肤(自定义List条目皮肤具