js弹出div层内容(按回退键关闭div层及遮罩)
<!--弹出的div列表对应的详情-->
<div id="newhtml" class="white_content">
<div style="height: 5%;">
<ul class="mui-table-view" id="cd_ul_top">
</ul>
</div>
<div style="top:5%;overflow:auto;height:95%;">
<ul class="mui-table-view" style="height: 100%;" id="cd_ul">
</ul>
</div>
</div>
<!--结合div的遮罩层-->
<div id="fade" class="black_overlay">
</div>
如下是弹出div和遮罩层的样式.初始默认为隐藏.
.black_overlay{
display: none;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 998;//该属性如果不写,如果div的position属性值为fixed,则会出现遮罩层盖不住的情况
background-color: black;
opacity:.35;
}
.white_content {
display: none;
position: fixed;
top: 40%;
width: 100%;
height: 30px;
background-color: white;
z-index:1002;
text-align: center;
}
mui实例中统计图显示:mychart.setOption();
//使用刚制定的配置和数据显示图表
mychart.setOption(option);
getli(list_dc_id,list_num,list_sum,list_name);
//生成li列表,用mui设置每个li的监听事件,.this.id获取该li标签的动态id,,this.innerHTML查看li标签内的内容(子标签的所有内容).this.outerHTML显示整个li标签的所有内容(包括自己的所有内容)
function getli(list_dc_id,list_num,list_sum,list_name){
var ul_li = document.getElementById('ul_li');
if(list_num==""&&list_sum==""&&list_name==""){
ul_li.innerHTML="";
}else{
var ul_li_html = '<li class="mui-table-view-cell mui-col-xs-12" style="text-align: center;" >'+
'<span class="mui-pull-left"style="width: 33.30%;">姓名</span>'+
'<span style="width: 33.30%;">单数</span>'+
'<span class="mui-pull-right"style="width: 33.30%;">金额</span></li>';
for(var i = 0;i<list_name.length;i++){
var li_html='<li class="mui-table-view-cell mui-col-xs-12" style="text-align: center;"id='+list_dc_id[i]+'>'+
'<span class="mui-pull-left"style="width: 33.30%;">'+list_name[i]+'</span>'+
'<span style="width: 33.30%;">'+list_num[i]+'</span>'+
'<span class="mui-pull-right"style="width: 33.30%;">'+list_sum[i]+'</span></li>';
ul_li_html+=li_html;
}
ul_li.innerHTML=ul_li_html;
}
}
如下图,通过监听li标签,设置div层和遮罩层样式display属性值为block.显示div和遮罩层
//菜单列表ul_li的监听
mui('#ul_li').on('tap','li',function(){
var dc_id = this.id;
if(dc_id==""){
return;
}
//传统ajax的post请求方式
mui.ajax('http://192.168.1.23:8080/YSE/back/queryapp_getFoodSale.action', {
data: {
type: type,
user:dc_id,
date: nd,
token: token
},
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
success: function(data) {
//服务器返回响应,根据响应结果,分析是否登录成功;
if(data == null) {
mui.toast('服务器连接失败,请重新尝试!!!');
}else if(data==""){
mui.toast('未查询到该点餐数据!!!');
}else if(data == '1') {//成功
}else{
var newData = JSON.stringify(data);//在这里stringfy()的作用是用于将一个对象解析成字符串
var newData2 = eval('('+newData+')');
var newhtml = '<li class="mui-table-view-cell mui-col-xs-12" style=" width:100%; margin-top:0px;text-align: center; color: white;background-color: #1C86EE;z-index:99">'+
'<span class="mui-pull-left"style="width: 33.30%;">菜名</span>'+
'<span style="width: 33.30%;">数量</span>'+
'<span class="mui-pull-right"style="width: 33.30%;">金额</span></li>';
var li_html="";
for(var i = 0;i<newData2.length;i++){
var name = newData2[i].name;
var num = newData2[i].num;
var sum = newData2[i].sum;
li_html += '<li class="mui-table-view-cell mui-col-xs-12" style="text-align: center;">'+
'<span class="mui-pull-left"style="width: 33.30%;">'+name+'</span>'+
'<span style="width: 33.30%;">'+num+'</span>'+
'<span class="mui-pull-right"style="width: 33.30%;">'+sum+'</span></li>';
}
document.getElementById('cd_ul_top').innerHTML = newhtml;
document.getElementById("cd_ul").innerHTML = li_html;
document.getElementById('newhtml').style.display='block';
document.getElementById('fade').style.display='block';
}
},
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(xhr + "," + type + "," + errorThrown);
mui.toast("服务器连接异常!!!");
}
});
});
利用mui框架设置手机回退按键功能.如果div属性为block,点击回退执行操作:设置属性none隐藏div层和遮罩层,否则继续执行回退按键回退webview操作.
第二个为监听点击遮罩层,同样隐藏div层和遮罩层
//回退按钮
var oldBack = mui.back;
mui.back = function(event) {
if(document.getElementById('newhtml').style.display=='block'){
document.getElementById('newhtml').style.display='none';
document.getElementById('fade').style.display='none';
return false;
}else{
oldBack();
}
};
document.getElementById('fade').addEventListener('tap',function(){
document.getElementById('newhtml').style.display='none';
document.getElementById('fade').style.display='none';
})
//弹出层后,设置样式,禁止底部滑动:
主要是设置html和body两个标签的overflow属性:hidden超出部分隐藏.实现不能滑动
.noscroll{
height: 100%;
overflow: hidden;
}
//添加属性class="noscroll",禁止滑动
document.getElementsByTagName('html')[0].className="noscroll";
document.getElementsByTagName('body')[0].className="noscroll";
js弹出div层内容(按回退键关闭div层及遮罩)的更多相关文章
- JS弹出层制作,以及移动端禁止弹出层下内容滚动,overflow:hidden移动端失效问题
HTML <div class="layer"> <div class="menu-list"> <span>社会</ ...
- js弹窗 js弹出DIV,并使整个页面背景变暗
1.首先写一个遮罩层div,然后再写一个弹窗的div <!-- 遮罩层 --> <div id="cover" style="background: # ...
- js弹出层
js弹出层 1.div附近显示 <div id="message"></div> $().delay().hide(); 2.遮罩层 表单提交后遮住页面,等 ...
- 文字添加响应事件,js动态加载CSS, js弹出DIV
文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- bootstrap中popover.js(弹出框)使用总结+案例
bootstrap中popover.js(弹出框)使用总结+案例 *转载请注明出处: 作者:willingtolove: http://www.cnblogs.com/willingtolove/p/ ...
- JS弹出浮层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js弹出对话框的方法总结
九种js弹出对话框的方法总结,需要的朋友可以参考一下 [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: <script LANGUAGE=" ...
- JS弹出下载对话框以及实现常见文件类型的下载
写在前面 JS要实现下载功能,一般都是这么几个过程:生成下载的URL,动态创建一个A标签,并将其href指向生成的URL,然后触发A标签的单击事件,这样就会弹出下载对话框,从而实现了一个下载的功能. ...
- python selenium-webdriver 处理JS弹出对话框(六)
在实际系统中,在完成某些操作时会弹出对话框来提示,主要分为"警告消息框","确认消息框","提示消息对话"三种类型的对话框. 1.警告消息框 ...
随机推荐
- Hive之示例一:基本操作与案例
1. 创建数据库,切换数据库 create database testdb; use testdb; 2. 创建管理表 create table emp( empno int, empname str ...
- NodeJs针对Express框架配置Mysql进行数据库操作
Express版本:4.14.1 说明:如下配置以express为例进行配置并进行测试,当然mysql中间件也可以在nodejs中单独使用. 参考:NodeJs的Mysql中间件Github地址 1. ...
- [UE4]装饰器:Blackboard(装饰器的一种,不是黑板)
装饰器Blackboard可以检查黑板的值是否满足期望的条件: 添加“Blackboard装饰器”:在组合或者任务节点上右键“添加装饰器...”,跟普通装饰器一样. Notify Observer:通 ...
- Java IO网络编程经典模板
本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...
- 在线学习和在线凸优化(online learning and online convex optimization)—凸化方法4
一些在线预测问题可以转化到在线凸优化框架中.下面介绍两种凸化技术: 一些在线预测问题似乎不适合在线凸优化框架.例如,在线分类问题中,预测域(predictions domain)或损失函数不是凸的.我 ...
- Oracle数据库类型
Oracle数据库类型 字符类型char[(length)] 定长字符 最长2000字节varchar2[(length)] 可变长度的字符数据类型,最长4000字节NCHAR[(length)] 固 ...
- 深入理解Apache Flink
Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮 ...
- 关于百度world 编辑器改变上传图片的保存路径图片不显示的问题
在ueditor.mini for asp.net 中,将上传的图片保存的路径更改了,可图片在 world 编辑器中不显示,但却可以上传到指定的保存目录下,解决这个问题的方法 是: 在udditor_ ...
- 性能测试day02_预习知识
在进入第二天的学习之前,我想我们需要提前先了解一下基础的知识,所以这一篇主要讲解的就是预习课程,关于协议和抓包的讲解(原理和工具). 可以说基于服务器的性能一般都是基于协议的,所以我们就需要懂协议,以 ...
- 打包django项目
1.安装pip install pyinstaller2.在django项目目录下执行pyi-makespec -D manage.py # 生成manage.spec文件3.执行pyinstalle ...