JS 实现自定义弹窗
复制下面代码到浏览器的控制台 直接可以使用
/**
*自定义的alert弹窗
* @param title 标题
* @param infoContent 需要显示的提示信息
* @param OkBtnContent 确定按钮的文本信息
* @param calcelBtnContent 取消按钮的文本信息
*/
function MyAlert(title,infoContent,OkBtnContent,calcelBtnContent) {
return new Promise(function (resolve) {
const confirmWrap = document.createElement('div')
confirmWrap.className = 'MyAlertBox'
const style = document.createElement('style')
style.innerHTML = `
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.postbird-box-container {
width: 100%;
height: 100%;
overflow: hidden;
position: fixed;
top: 0;
left: 0;
z-index: 210000001;
background-color: rgba(0, 0, 0, 0.2);
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.postbird-box-container.active {
display: block;
}
.postbird-box-content {
width: 400px;
max-width: 90%;
min-height: 150px;
background-color: #fff;
border: solid 1px #dfdfdf;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* margin-top: -100px; */
}
.postbird-box-header {
width: 100%;
padding: 10px 15px;
position: relative;
font-size: 1.1em;
letter-spacing: 2px;
}
.postbird-box-close-btn {
cursor: pointer;
font-weight: 700;
color: #000;
float: right;
opacity: 0.5;
font-size: 1.3em;
margin-top: -3px;
display: none;
}
.postbird-box-close-btn:hover {
opacity: 1;
}
.postbird-box-text {
width: 100%;
padding: 0 10%;
text-align: center;
line-height: 15px;
font-size: 14px;
letter-spacing: 1px;
}
.postbird-box-footer {
width: 100%;
position: absolute;
bottom: 0;
padding: 0;
margin: 0;
display: flex;
display: -webkit-flex;
justify-content: space-around;
border-top: solid 1px #dfdfdf;
align-items: flex-end;
}
.postbird-box-footer .btn-footer {
line-height: 44px;
border: 0;
cursor: pointer;
background-color: #fff;
color: #0e90d2;
font-size: 1.1em;
letter-spacing: 2px;
transition: background-color .5s;
-webkit-transition: background-color .5s;
-o-transition: background-color .5s;
-moz-transition: background-color .5s;
outline: 0;
}
.postbird-box-footer .btn-footer:hover {
background-color: #e5e5e5;
}
.postbird-box-footer .btn-block-footer {
width: 100%;
}
.postbird-box-footer .btn-left-footer,
.postbird-box-footer .btn-right-footer {
position: relative;
width: 100%;
}
.postbird-box-footer .btn-left-footer::after {
content: "";
position: absolute;
right: 0;
top: 0;
background-color: #e5e5e5;
height: 100%;
width: 1px;
}
.postbird-box-footer .btn-footer-cancel {
color: #333333;
}
.postbird-prompt-input {
width: 100%;
font-size: 16px;
border: 1px solid #cccccc;
outline: none;
padding:5px 10px 5px 10px;
}`
confirmWrap.innerHTML = `
<div class="postbird-box-container active">
<div class="postbird-box-container">
<div class="postbird-box-dialog">
<div class="postbird-box-content">
<div class="postbird-box-header">
<span class="postbird-box-close-btn">×</span>
<span class="postbird-box-title">
<span >${title}</span>
</span>
</div>
<div class="postbird-box-text"><span style="color:red;">${infoContent}</span>
</div>
<div class="postbird-box-footer">
<button class="btn-footer btn-left-footer btn-footer-cancel" style="color:undefined;">${calcelBtnContent}</button>
<button class="btn-footer btn-right-footer btn-footer-ok" style="color:#0e90d2;">${OkBtnContent}</button>
</div>
</div>
</div>
</div>
</div>`
document.getElementsByTagName('head').item(0).appendChild(style)
document.body.appendChild(confirmWrap)
const okBtn = document.getElementsByClassName('btn-footer-ok')
okBtn[okBtn.length - 1].focus()
okBtn[okBtn.length - 1].onclick = function () {
console.log('点击了确定')
const box = document.getElementsByClassName('MyAlertBox')
document.body.removeChild(box[box.length - 1])
resolve(1)
}
const cancelBtn = document.getElementsByClassName('btn-footer-cancel')
cancelBtn[cancelBtn.length - 1].onclick = function () {
console.log('点击了取消')
const box = document.getElementsByClassName('MyAlertBox')
document.body.removeChild(box[box.length - 1])
resolve(0)
}
})
}
//调用
MyAlert('提示','这里是具体显示的信息','取消','确定').then(result=>{
console.log('这里是点击了确定或者取消按钮后续的操作')
console.log('result' + result)
})
效果图:
备注:有些网页注入后会出现字体过大或者过小的问题,这种大部分是因为继承了一些当前页面的基础属性,可以把font 的权重(!important)设置为不可修改即可
例如本文中的:postbird-box-footer .btn-footer
中的font-size:1.1em 可以修改为 15px!important即可
JS 实现自定义弹窗相关推荐
- JS函数自定义弹窗;纯JS实现弹窗
弹窗 获取弹窗内穿出的数据: 在弹窗页面调用父级页面的方法,例:parent.xxx(data); 在 xxx()方法中将获取到的数据赋值给 abc 变量:在的点击弹窗确定按钮后调用 yyy()方法, ...
- 【微信小程序】自定义弹窗蒙版输入框效果图完整代码
[微信小程序]自定义弹窗文本输入框效果图&完整代码 效果图 在输入框中进行内容的输入 点击确认后在姓名一栏进行更新修改 点击返回后姓名一栏不做任何修改 在这个的基础上你可以自定义任何弹窗 wx ...
- 微信小程序点击按钮弹出弹窗_微信小程序自定义弹窗(可通用)
本文为自定义弹窗,该内容可满足如下需求: 自定义各种布局弹窗. 点击弹窗布局外消失弹窗 弹出弹窗时背景阴影半透明 各方向弹出效果(本文为自下而上弹出). (后续可能会补充新需求,或可以留言讨论你的需求 ...
- 微信H5、移动端自定义弹窗事件穿透、底层页面滑动解决方案
前言 之前有个项目是运行在移动端Web,和微信H5中,由于默认的弹窗UI不太好看,而且还不统一,所以页面需要自定义弹窗,添加icon.提示信息.操作按扭等样式. 问题描述: 如果在页面内容的高度超过了 ...
- html怎么写点击后弹出提示框 是否确认,基于JS+HTML实现弹窗提示是否确认提交功能...
需求:当点击input按钮时候,弹出确认框,确认后提交到指定url,效果如下 分析:这里面要,引入三个库文件,如下是下载地址 代码:下载后放入响应的项目目录,最后代码如下 console.log(1) ...
- flutter -各类自定义弹窗(图片预览,输入框,键盘)以及如何阻止事件冒泡
开局废话:由于公司app后期需要做混合开发,又担心h5的性能问题.于是迫不得已,只能两端齐搞,验证一些性能优化的问题.打开了一年前flutter正式发布时,蹭热度创建的现已布满藤蔓的仓库,微微颤抖的双 ...
- ucharts tooltip自定义换行及自定义弹窗位置
ucharts tooltip自定义换行及自定义弹窗位置 以下通过条形图进行演示 <!-- 重点: 1. 绑定 @getIndex 事件 2. 绑定 canvasId--> <qiu ...
- php提交成功js弹窗,基于JS+HTML实现弹窗提示是否确认提交功能
需求:当点击input按钮时候,弹出确认框,确认后提交到指定url,效果如下 分析:这里面要,引入三个库文件,如下是下载地址 代码:下载后放入响应的项目目录,最后代码如下 console.log(1) ...
- js layui跳转页面_Layer.js提示层弹窗结束之后自动跳转到新页面的效果
弹层之美 Layer 是一款近年来备受青睐的web弹层组件,提供layer.open(options)核心调用方法.她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的 ...
最新文章
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- WebJars 进行 css js 资源文件管理
- CodeChefSeries Sum (伯努利数+生成函数+FFT)
- Android之内存泄露、内存溢出、内存抖动分析
- 探索RequestBody报com.alibaba.fastjson.JSONObject cannot be cast to xxx
- 久玩玉之魂服务器维护,玉之魂1级到57级挂机心得详情分享
- 华为fusionsphere整体架构及其各组件功能_华为数据之道:面向业务的信息架构建设...
- NET报表工具 EastReport
- 运维派送福利,就是这么任性!
- Number and String in JS
- SiteMesh配置下载使用(简单介绍)
- java 强制声明为引用_JAVASERIPT高级程序设计35~45页
- 计算机专业必装软件mac,MAC电脑可运行的常用软件有哪些?
- Visual Studio 2019上安装AnkhSVN2019
- A股明日风口:央行工作会议要求推进法定数字货币研发
- 水文---服务端学习路线(听别人说的,记录以激励自己)
- 嵌入式linux音频播放器设计,基于嵌入式Linux下Madplay音频播放器设计论文.docx
- sql判断整除_SQL操作符/运算符
- BGP路径属性与选路原则
- MySQL - 8 递归查询树结构
热门文章
- 卷积神经网络中卷积层、池化层、全连接层的作用
- IT创业四大“险滩”
- 国际博物馆日,百度超级链多款上新数字藏品
- Linux配置主机名、IP、主机映射及其虚拟网络
- 驰名商标行政认定方式有哪些
- 中美印程序员“土味情话”哪家强?
- 数据库专题训练------T-SQL编程
- 计算机24点游戏几把,24点游戏的玩法,要有准确介绍的!谢,这是初一上册数学上的,...
- 中国机场输送机行业市场供需与战略研究报告
- 封闭式基金改革.发展提上日程