移动端dialog组件

dialogView是满足移动端下,用户自定义的dialog组件,API可扩展性强,使用便捷。现版本是基于jquery库编写的,在使用之前需要引入jquery库或者Zepto库,后续将会和其他组件整合成一个轻量级UI组件库中。

引用

页面引入dialog.min.js和dialog.min.css即可。

使用讲解

组件提供了一个全局dialogView接口,和一个open()主函数,使用的时候只需要dialogView.open()就可以了。

dialogView提供了常用的几种移动端dialog类型:alert,confirm,msg,footConfirm,footMsg。对前3种常用类型的dailog弹窗,暴露出了3个函数,便于使用,如dialogView.alert(),dialogView.confirm()和dialogView.msg(),三个函数拥有默认的类型值,所以使用这三个函数时不需要传入type值,当然也可以这样使用:dialogView.open({type:"alert"}),dialogView.open({type:"confirm"}),dialogView.open({type:"msg"})。

dialogView支持链式调用,如:dialogView.alert({message: "alert默认信息框"}).open({type:"footMsg",message: "我是提示类型框"})。

并且还暴露出了一个close()函数,用于关闭弹窗,使用如下:dialogView.close(),close()函数只支持传入一个参数,即需要关闭的弹窗的DOM元素,不传参时,将会默认关闭页面上所有的弹窗。

参数

message: 弹窗区域内容,参数类型可以是String类型,也可以是DOM对象。

type: 弹窗类型,参数类型为String类型,提供了5种默认的类型:alert,confirm,msg,footConfirm,footMsg,弹窗类型值可供用户自行扩展。

showTime: 弹窗显示时长,参数类型为Number类型。

className: 自定义class名,参数类型为String类型,会在弹窗的最外层元素上扩展class,一般用于特殊情况下使用。

skin: 弹窗区域自定义皮肤,参数类型为String类型,用于扩展弹窗区域的样式,其值会被扩充为弹框的class,比如你想给弹窗换掉默认背景色,换成自己定义的颜色,就可以先在样式文件中定义好一个class样式,然后skin值为定义的class值就可以了,用法如下:

 dialogView.open({
type: "msg",
message: "我是提示类型框",
shade: false,
skin: "dialog-msg" //自定义的皮肤样式
})

项目的css文件下定义dialog-msg样式:

.mobile-dialogView .dialogView-m-main .dialog-msg{background-color:blue;}

效果如下:

styles: 弹窗区域添加自定义css样式,与skin值得作用一致,不同的是skin参数值的自定义css样式是定义在样式文件中的,而styles值则是直接扩展到行内样式中,如:

 dialogView.open({
type: "footmsg",
animate: "up",
message: $("#info").show() || document.getElementById("info"),
styles: "position: fixed;height: 100%;width: 100%;padding: 0;bottom: 0px;opacity: 1;", //自定义css样式,将直接扩展为行内样式
showTime: 3000
})

shade: 是否需要遮罩层,参数类型为Boolean值。

shadeClose: 点击弹窗以外的区域是否关闭弹窗,参数类型为Boolean值。

closeable: 点击button按钮是否关闭弹窗,参数类型为Boolean值,默认值是true,如有特殊情况点击按钮不需要关闭弹窗,将改值设置为false就可。

animate: 弹窗动画效果,定义了两种弹窗动画效果,值为“open”和"up",第一种弹窗显示效果"open",其对应的关闭效果是"close",另一种弹窗显示效果"up",其对应的关闭效果是"down",默认动画效果为“open”。

buttons: 弹窗按钮组,参数类型为Array值,当dialog类型是alert时,有且只允许添加一个按钮,当dailog类型值是confirm或者footConfirm时,有且只允许添加两个按钮,当dailog类型值是msg或者footMsg时,不会添加任何按钮,其他dailog类型,用户写了多少按钮,就往按钮组添加多少按钮。
按钮的参数类型为Object键值对类型,有以下几种参数:

  • text: 按钮文字,参数类型可以是String类型
  • skin: 自定义按钮皮肤,使用如上面所述
  • callback: 回调函数,点击按钮时触发
  • closeable:参数类型为Boolean值,用于判定按钮点击之后是否关闭弹窗,默认值为true。

使用如下:

dialogView.confirm({
message: "要前往我的github吗?",
buttons: [{
skin: "yes",
text: "可以",
callback: function(){
window.location.href="https://github.com/webproblem";
}
},{
skin: "no",
text: "不要"
}]
})

注: 在弹窗里的DOM元素上添加closeable=true属性,点击该DOM元素时会触发事件关闭弹窗,比如在自定义的标题上添加一个关闭按钮图标,使其点击时触发关闭事件,可以这样使用:

dialogView.open({
title: {
content: "<span>我是自定义标题</span><i class='demo-title-close' closeable=true></i>"
},
message: "自定义风格标题,第一个参数为标题内容,第二个参数为自定义的样式,<br>关闭按钮是自定义加上去的哦!"
})

title: 自定义标题区域,参数类型为Object键值对类型,有三个参数,一个参数是content,对应的值为自定义标题内容,参数类型可以是String类型,也可以是DOM对象。另两个参数是styles和skin,都是为自定义标题添加的样式,两个参数的区别如上面所述的一样。用法如下:

dialogView.open({
title: {
content: "<span>我是自定义标题</span>"
}
})

完整代码及示例见我的github,github地址: https://github.com/webproblem/hello-world/tree/master/dialogDemo
Demo示例效果预览地址: https://webproblem.github.io/hello-world/dialogDemo/dialog.html
如果喜欢,请记得Star哈!
如有不对之处,欢迎及时指出!

移动端dialog组件的更多相关文章

  1. Vue结合slot插槽分发父组件内容实现高度复用、更加灵活的dialog组件

    之前写过一篇关于vue实现dialog会话框组件的文章(http://www.cnblogs.com/fozero/p/8546883.html)[http://www.cnblogs.com/foz ...

  2. MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹

    为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...

  3. MVC文件上传08-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹

    当需要为每个用户建立一个专属上传文件夹的时候,可以在提交文件的视图中添加一个隐藏域,并设置name="objectContext". 相关兄弟篇: MVC文件上传01-使用jque ...

  4. MVC文件上传07-使用客户端jQuery-File-Upload插件和服务端Backload组件裁剪上传图片

    本篇通过在配置文件中设置,对上传图片修剪后保存到指定文件夹. 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  MVC文件上传02-使用HttpPostedFileB ...

  5. MVC文件上传06-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义控制器上传多个文件

    当需要在控制器中处理除了文件的其他表单字段,执行控制器独有的业务逻辑......等等,这时候我们可以自定义控制器. MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证 ...

  6. MVC文件上传05-使用客户端jQuery-File-Upload插件和服务端Backload组件自定义上传文件夹

    在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  MVC文 ...

  7. MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小  ...

  8. element-ui dialog组件添加可拖拽位置 可拖拽宽高

    edge浏览器下作的gifhttp://www.lanourteam.com/%E6... 有几个点需要注意一下 每个弹窗都要有唯一dom可操作 指令可以做到 拖拽时要添加可拖拽区块 header 由 ...

  9. 移动端 Modal 组件开发杂谈

    Vant 是有赞开发的一套基于 Vue 2.0 的 Mobile 组件库,在开发的过程中也踩了很多坑,今天我们就来聊一聊开发一个移动端 Modal 组件(在有赞该组件被称为 Popup )需要注意的一 ...

随机推荐

  1. $.ajax(),传参要用data

    $("#modal").find(".btn-primary").unbind("click").click(function(){ var ...

  2. 什么是NVMe硬盘?

    本文摘自:https://zhidao.baidu.com/question/590890784.html NVMe硬盘指的是非易失性内存主机控制器接口规范(Non-Volatile Memory e ...

  3. Django框架(十一)—— 常用字段、参数、元信息、多对多关联关系

    目录 常用字段和参数 一.ORM字段 二.ORM参数 三.关系字段 1.ForeignKey 2.OneToOneFiled 3.ManyToManyField 四.元信息 五.多对多关联关系的三种方 ...

  4. CentOS7 网卡配置文件解释

    注:此网卡配置文件摘自CentOS7.4.1708系统 Linux 默认配置网卡的信息 TYPE=Ethernet 网卡类型:以太网 PROXY_METHOD=none 代理方式:关闭状态 BROWS ...

  5. java8如何对List<Bean>进行去重和覆盖

    背景:有一批数据源从kafka给过来,接收到后需要处理,然后入库,我们用一个线程消费下来,一次消费30000条, 按照对象的概念,可以用List<Person>来表示,因为某种原因,需要根 ...

  6. WebStorage篇

    [WebStorage篇] 用户登录状态.计数器或者小游戏等,但是又不希望用到数据库,就可以利用Web Storage技术将数据存储在用户浏览器中. Web Storage是一种将少量数据存储在客户端 ...

  7. JDK8新特性之Stream流

    是什么是Stream流 java.util.stream.Stream Stream流和传统的IO流,它们都叫流,却是两个完全不一样的概念和东西. 流可以简单的说是处理数据集合的东西,可以申明式流式A ...

  8. C# 设计模式 (一)

    学习来自<大话设计模式>有兴趣可以研究一下 一.简单工厂模式 原理 子类对象可以赋值给父类对象.同一个父类对象的子类,通过switch语句new出来(当然用if也可以但那样判断就多了起来) ...

  9. 行动带来力量,周三(5月7日)晚IT讲座通知

    讲座简单介绍     ITAEM团队负责人骆宏等和大家周三晚8点(5月7日)相约钟海楼03035.和大家分享团队成员的"编程入门之路",在这里,同龄人(大三)以学生的角度.和大家分 ...

  10. null == null 或者 [] == [] 或者{} == {} 或者alert(1|| 2) 或者alert(1&& 2) 结果及原理

    相信面试的小伙伴们都会遇到此头大的问题,是不是很想骂一句面试官:你白痴啊,鬼都用不着的东西拿来问,你还别说,这些看似用不着的东西却包含着最基础的原理,那我们来理一理. 1.alert(1||2)和 a ...