css实现android类似的dialog效果

先上图:

原理:用两个div叠加,底层放内容,上层放dialog。

简单易懂,html的标签中带dialog,但是效果如下。

因此还是动手做一个比较好。

HTML

<div id="content" >



//这个div显示网页主要内容
   //设置一个按钮用于显示自定义的dialog
   <button id="loginbutton">显示登录界面</button>





</div>


<!--弹窗-->
<div class="dialog">
    <div  class="dialog1">


      //框框已经显示在正中间,在这个div里设计你的dialog内容



    </div>
</div>

CSS

首先要在body中重叠两个大小,为了设定dialog的中心位置,需要有dialog所在父div的宽高度,则div又需要父body固定宽高。

/*--------------固定body--------*/
html,body{
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;

}
body{
    position: relative;
    overflow: hidden;
}

/*------------网页内容主体div---------*/

/*主体*/
#content{
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    overflow-y:auto;
    overflow-x: hidden;
}
/*------------dialog设置----------------*/
/*--------dialog所在div----------------*/
.dialog{
    position: absolute;
    background:none;
    z-index: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    line-height: 100%;
    transition: all 0.3s linear;
}
/*用于js切换动画**/
.dialogshow{
    background: rgba(0,0,0,0.6);
    z-index: 4;
    opacity: 1;
}

/*--------真正的dialog窗口-------------*/

.dialog1{
    position: absolute;
    width: 300px;
    height: 400px;
    line-height: 400px;
    left: 50%;
    top:50%;
    margin-left: -150px;
    margin-top: -200px;
    border-radius: 10px;
    background-color: white;
    vertical-align: middle;
    text-align: center;
    padding: 20px;
}

JS


//点击按钮显示
$("#loginbutton").click(function () {
    $(".dialog").toggleClass("dialogshow");
});


//点击div时,关闭dialog
$(".dialog").click(function () {
    $(".dialog").toggleClass("dialogshow");

});
父div-窗口部分=窗口背景,即点击窗口背景关闭父div,窗口也随之隐藏。
$(".dialog1").click(function (){
    event.stopPropagation();//阻止点击操作传到父元素上
});

 最后,以上涉及的图片等内容来源网络,仅做学习使用,如有侵权请联系作者删除。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值