wcPop.js 是一款基于原生javascript开发的前端 web版 弹窗组件,遵循原生 H5/css3/JS 的书写规范,简单实用、拿来即用(压缩后仅10KB)。已经兼容各大主流浏览器。内含多种弹窗类型(普通型弹窗、仿微信|android|ios弹窗、定位弹窗、全屏弹窗),多种动画展示效果,可以让您的网页对话框千变万化。

◆ 一睹风采

◆ 在页面只需引入wcPop.js即可:

<script src="wcPop.js"></script>

◆ API调用方式极为简单:

/** ====== 弹窗演示( 普通型弹窗 )*/
//msg提示
btn_click1_01 = function(){
wcPop({
anim: 'fadeIn',
content: '这里是msg提示框测试(5s后窗口关闭)',
shadeClose: false,
time: 5
});
} //msg提示(自定义背景)
btn_click1_02 = function(){
wcPop({
anim: 'fadeIn',
content: 'msg提示(自定义背景)',
style: 'background:rgba(25,175,25,.7);color:#fff;text-align:center;',
shadeClose: true,
area: "300px",
xclose: true,
time: 5
});
} //信息框
btn_click1_03 = function(){
var index03 = wcPop({
content: '信息框 (这里演示信息框功能效果,这里演示信息框功能效果,这里演示信息框功能效果) <br><br> 可自定义弹窗高度 <br>自定义拖拽区域', shadeClose: true,
xclose: true,
area: ["", "100px"],
resize: true,
drag: '.popui__panel-main', btns: [
{
text: '知道了',
style: 'color: #999',
onTap: function() {
console.log("知道了");
wcPop.close(index03);
}
}
]
});
} //询问框
btn_click1_04 = function(){
var index04 = wcPop({
anim: 'fadeInUpBig',
title: '标题提示',
content: '询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示<br>询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示,询问框弹窗演示<br><br> 可自定义弹窗宽高',
shadeClose: false,
xclose: true,
maxmin: true,
area: ["500px", "200px"], resize: true, btns: [
{
text: '取消',
onTap: function() {
console.log('您点击了取消!');
wcPop.close(index04);
}
},
{
text: '确定',
onTap: function() {
console.log('您点击了确定!');
}
}
]
});
} //自定义多按钮
btn_click1_05 = function(){
wcPop({
title: '^-^支付是一种态度',
content: '尊敬的用户,我们为您提供了“现金支付”和“微信支付两种方式”,请选择一种您的常用支付方式进行支付操作!!!',
anim: 'fadeInUp',
fixed: false,
maxmin: true,
drag: false, btns: [
{
text: '微信支付',
style: 'color:#1aad19;',
onTap: function() {
console.log('您选择了微信支付!');
}
},
{
text: '支付宝支付',
style: 'color:#108eff;',
onTap: function() {
console.log('您选择了支付宝支付!');
}
},
{
text: '取消',
onTap: function() {
console.log('您点击了取消!');
wcPop.closeAll();
}
}
]
});
} //actionSheet弹出式菜单
btn_click1_06 = function(){
wcPop({
skin: 'actionsheet',
content: '<span style="color:#aaa;">弹窗内容,告知当前状态、信息和解决方法,描述文字尽量控制在三行内</span>',
anim: 'footer',
shadeClose: true, btns: [
{
text: '拍照',
style: 'color:#4eca33;',
onTap: function() {
console.log('拍照'); //删除回调提示
wcPop({
anim: 'fadeIn',
content: '您点击了拍照',
shade: true,
time: 3
});
}
},
{
text: '从手机相册选择',
style: 'color:#808080;'
},
{
text: '保存图片',
style: 'color:#e63d23;'
},
{
text: '取消',
onTap: function() {
console.log('您点击了取消!');
wcPop.close();
}
}
]
});
} //actionSheet(仿微信picker)
btn_click1_07 = function(){
wcPop({
skin: 'actionsheetPicker',
title: '选择支付方式',
content: '<span style="color:#aaa;">这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。这是一个底部自定义页面层。</span>',
anim: 'footer',
shadeClose: true,
resize: true, btns: [
{
text: '取消',
onTap: function() {
console.log('您点击了取消!');
wcPop.close();
}
},
{
text: '确定',
style: 'color:#4eca33;',
onTap: function() {
console.log('您点击了确定!');
//回调函数
wcPop({anim: 'fadeIn',content: '您点击了确定!',time: 3, position: 'bottom'});
}
}
]
});
} //Toast演示
btn_click1_08 = function(){
wcPop({
id: 'xwToast',
skin: 'toast',
content: '数据加载中...',
icon: 'loading', //success | info | error | loading
shade: false,
time: 3
});
}
wcPop = function(options){
var _this = this,
config = {
id: 'wcPop', //弹窗ID标识 (不同ID对应不同弹窗)
title: '', //标题
content: '', //内容
style: '', //自定弹窗样式
padding: '', //弹窗内容区内边距
skin: '', //自定弹窗显示风格 toast(Toast提示)、actionsheet|actionsheetPicker(底部弹出式菜单)、ios|android|androidSheet(仿微信样式) 、contextmenu(右键菜单) 、fullscreen(全屏)
icon: '', //弹窗小图标(success | info | error | loading) shade: true, //是否显示遮罩层
shadeClose: true, //是否点击遮罩时关闭层
opacity: .6, //遮罩层透明度
xclose: false, //自定义关闭按钮(默认右上角)
maxmin: false, //弹窗最大化
area: 'auto', //弹窗宽高 默认'auto',只定义宽度area:'600px' 定义宽高area:['600px','250px']
maxWidth: 320, //最大宽度 只有当area:'auto' maxWidth设定才有效 anim: 'scaleIn', //scaleIn:缩放打开(默认) fadeIn:渐变打开 fadeInUpBig:由下向上打开 fadeInDownBig:由上向下打开 rollIn:左侧翻转打开 shake:震动 footer:底部向上弹出
follow: null, //跟随定位(适用于在点击位置定位弹窗)
time: 0, //设置弹窗自动关闭秒数1、 2、 3
zIndex: 9999, //设置元素层叠 fixed: true, //是否固定
resize: false, //是否允许拉伸
drag: '.popui__panel-tit', //拖拽元素(可单独定义 drag:false禁止拖拽)
dragOut: true, //窗体是否可以拖出
dragEnd: null, //拖动完毕后回调函数 btnStyle: '', //自定按钮层样式
btns: null //不设置则不显示按钮,btn参数: [{按钮1配置}, {按钮2配置}]
}; _this.opts = util.extend(options, config);
_this.init();
};
html.html__overflow{overflow-y: hidden; touch-action:none;}

.wcPop *{font-style: normal; font-weight: normal; list-style: none;}
.popui__panel-mask {background: black;opacity: .6;pointer-events: auto;height: 100%;_height:expression(document.body.offsetHeight+"px");width: 100%;position: fixed;top:;left:;animation: mask-fadeIn .5s;}
@keyframes mask-fadeIn {0% {opacity:;}}
.popui__panel-main{background-color:#fff;border-radius:2px;box-shadow:1px 1px 30px rgba(0,0,0,.2); font-size:14px; /*font-family: Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif;*/ font-family: 宋体,helvetica,arial,sans-serif; pointer-events: auto; position: fixed; left:; top:;}
/*标题*/
.popui__panel-tit{background:#f9f9f9; border-bottom:1px solid #eee; border-radius:2px 2px 0 0; color:#1f1f1f; font-size: 14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding: 0 60px 0 20px; height:40px; line-height:40px; -webkit-touch-callout:none; -webkit-user-select:none; -moz-user-select:none; user-select:none;}
/*内容*/
.popui__panel-cnt{overflow-x:hidden; overflow-y:auto;padding: 20px; line-height: 1.3; word-wrap: break-word; word-break: break-all; min-width:200px; position:relative;}
/*自定义滚动条样式*/
.wcPop ::-webkit-scrollbar {height:6px;width:6px;}
.wcPop ::-webkit-scrollbar-track {background: transparent;}
.wcPop ::-webkit-scrollbar-track-piece {background: transparent;}
.wcPop ::-webkit-scrollbar-thumb {background:rgba(0,0,0,.25);border-radius:20px;min-height:15px;width:6px; transition:all .3s;}
.wcPop ::-webkit-scrollbar-thumb:hover {background:rgba(0,0,0,.35);}
.wcPop ::-webkit-scrollbar-thumb:active {background:rgba(0,0,0,.45);}
/*按钮*/
.popui__panel-btn{
display: flex; align-items: center; line-height: 40px; position: relative;
-webkit-touch-callout:none; -webkit-user-select:none; -moz-user-select:none; user-select:none;
}
.popui__panel-btn:after{content: ''; border-top: 1px solid #d5d5d5; color:#d5d5d5; height:1px; position: absolute; left:; right:; top:; z-index:; transform:scaleY(.5);-webkit-transform:scaleY(.5);transform-origin:0 0;-webkit-transform-origin:0 0;}
.popui__panel-btn .btn{color:#1f1f1f;cursor: pointer; display: block; flex:; font-size: 14px; text-align: center; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); position: relative; z-index:; transition:background .3s;}
.popui__panel-btn .btn:active{background: #eee;}
.popui__panel-btn .btn:after{content:"";border-left:1px solid #d5d5d5;color:#d5d5d5; width:1px; position:absolute;top:;bottom:;left:; transform:scaleX(.5);-webkit-transform:scaleX(.5);transform-origin:0 0;-webkit-transform-origin:0 0;}
.popui__panel-btn .btn:first-child:after{display:none;}
.popui__panel-btn .btn:first-child{border-bottom-left-radius: 2px;}
.popui__panel-btn .btn:last-child{border-bottom-right-radius: 2px;}

wcPop弹窗插件之前还有开发过移动端版本

https://www.cnblogs.com/xiaoyan2017/p/8695783.html

并且在一些项目中已经有应用,而且兼容性挺不错哒。

https://www.cnblogs.com/xiaoyan2017/p/9266179.html

原生Js弹窗插件|web弹出层组件|对话框的更多相关文章

  1. layer:web弹出层解决方案

    layer:web弹出层解决方案 一.总结 一句话总结:http://layer.layui.com/ 1.layer中弹出层tips的使用(代码)是怎样的? 使用还是比较简单方便的 //tips层- ...

  2. 基于Vue.js PC桌面端弹出框组件|vue自定义弹层组件|vue模态框

    vue.js构建的轻量级PC网页端交互式弹层组件VLayer. 前段时间有分享过一个vue移动端弹窗组件,今天给大家分享一个最近开发的vue pc端弹出层组件. VLayer 一款集Alert.Dia ...

  3. js制作带有遮罩弹出层实现登录小窗口

    要实现的效果如下 点击“登录”按钮后,弹出登录小窗口,并且有遮罩层(这个名词还是百度知道的,以前只知道效果,却不知道名字) 在没有点击“登录”按钮之前登录小窗口不显示,点击“登录”按钮后小窗口显示,并 ...

  4. 一步步编写avalon组件01:弹出层组件

    avalon2已经稳定下来,是时候教大家如何使用组件这个高级功能了. 组件是我们实现叠积木开发的关键. avalon2实现一个组件非常轻松,并且如何操作这个组件也比以前的avalon2,还是react ...

  5. zepto弹出层组件

    html: <!DOCTYPE html> <html> <meta charset="utf-8"> <title></ti ...

  6. easyDialog 简单、实用的弹出层组件

    easyDialog 简单.实用的弹出层组件 使用背景 在完成导师需求时,导师要求寻找比一个layer弹出层组件体积小得多的.最好能嵌入在进HTML代码中而非src引用的弹出层组件,在这个需求下,我找 ...

  7. Layui 弹出层组件——layer的模块化开发实例应用

    Layui 弹出层组件——layer的模块化开发实例应用 1.首先在package.json中引入layer组件依赖 2.在源码中应用这个依赖 3.在源码中编写代码应用此组件 4.效果验证:点击日历上 ...

  8. Js实例——模态框弹出层

    1.描述 百度登录就是一个模态框弹出层.思路分析:先将灰色大背景和登陆盒子设为不可见,利用JS将其动态加载可见. 2.代码 <!DOCTYPE html> <html> < ...

  9. js,ajax,layer笔记(弹出层,在弹出一个弹框)

    整体认识: 因为作用域的问题,js 在页面初次加载时已近加载好了,所以要有第二次弹窗的效果,必须得在第一次成功之后再次让他加载js 代码: /*shaun*/showdetailsPag: funct ...

随机推荐

  1. Part 6 - Class-Based Views(21-26)

    https://github.com/sibtc/django-beginners-guide/tree/v0.6-lw urlpatterns = [ views.PostUpdateView.as ...

  2. 03-vue-router

    前端路由的实现原理 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. Linux下Git安装及配置

    转载自:https://blog.csdn.net/u013256816/article/details/54743470:加了一些自己的注释. yum安装 这里采用的是CentOS系统,如果采用yu ...

  4. springMVC学习(注解实现依赖注入)

    原文:http://blog.csdn.net/mockingbirds/article/details/45399691 上一篇博客,学习了spring的依赖注入,即利用spring容器来为类中的属 ...

  5. MySQL性能调优与架构设计——第 14 章 可扩展性设计之数据切分

    第 14 章 可扩展性设计之数据切分 前言 通过 MySQL Replication 功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我 ...

  6. centos7 磁盘管理—— lvm的使用

    Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不 ...

  7. Android-intent.addFlags-Activity启动模式

    之前写的Android-Activity启动模式(launchMode),Android-Activity启动模式-应用场景,讲解的都是在AndroidManifest.xml配置launchMode ...

  8. CSS盒子坍塌问题的4种解决方案

    一.问题重述 嗯,这个就是坍塌的盒子了.外部盒子本应该包裹住内部的两个浮动盒子,结果却没有. 二.问题出现的原因 3个盒子都只设置了width,而没有规定height,内部两个盒子分别设置了左右浮动. ...

  9. [ASP.NET]NTKO插件使用常见问题

    一.环境要求 NTKO OFFICE文档控件能够在IE.谷歌Chrome.Firefox等浏览器中直接编辑MS Office.WPS.金山电子表.永中Office等文档并保存到WEB服务器.(标准版对 ...

  10. leetcode 之突然不做了

    最近心情也不好,学不会的东西太多,以前能懂为什么,现在完全不知道为什么,只能依葫芦画瓢了,所以我写出了的代码到底是会了吗?还是瓢画的好? 热血之三分钟热度小张发现leetcode里会做的好像都做了,剩 ...