js实现上下左右弹框划出效果
效果图:
图(1)初始图
图(2)点击“从右侧划出”
代码如下:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"> <title>上下左右弹框划出效果</title> <style> /*css document*/ body,div,ol,ul,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,p,form,fieldset,legend,input,button,aside{ padding: 0; margin: 0; -webkit-tap-highlight-color:rgba(255,255,255,0);} body { font-family: "Microsoft YaHei"; } .btn button { display: block; width: 240px; line-height: 30px; margin: 20px auto; background-color: #cd0000; color: #fff; text-align: center; outline: none; border: none; cursor: pointer; font-family: "Microsoft YaHei"; } .aside, .aside-overlay { position: fixed; top: 0; right: 0; left: 0; bottom: 0; } .aside { -webkit-transition: visibility .25s; transition: visibility .25s; z-index: 3; visibility: hidden; overflow: hidden; } .aside > div { text-align: center; } .aside.active { -webkit-transition: none; transition: none; visibility: visible; } .aside-overlay { background-color: rgb(0,0,0); opacity: 0; -webkit-transition: opacity .25s; transition: opacity .25s; } .active > .aside-overlay { opacity: .6; } .rightContent { position: absolute; bottom: 0; right: 0; top: 0; left: 40px; background:#fff; -webkit-transition: transform .15s; transition: transform .15s; -webkit-transform:translateX(100%); transform:translateX(100%); } .active > .rightContent { -webkit-transform:translateX(0%); transform:translateX(0%); } .leftContent { position: absolute; bottom: 0; right: 40px; top: 0; left: 0; background:#fff; -webkit-transition: transform .15s; transition: transform .15s; -webkit-transform:translateX(-100%); transform:translateX(-100%); } .active > .leftContent { -webkit-transform:translateX(0%); transform:translateX(0%); } .topContent { position: absolute; bottom: 40px; right: 40px; top: 0; left: 40px; background:#fff; -webkit-transition: transform .15s,top .15s; transition: transform .15s; -webkit-transform:translateY(-100%); transform:translateY(-100%); } .active > .topContent { top: 40px; -webkit-transform:translateY(0%); transform:translateY(0%); } .botContent { position: absolute; bottom: 0; right: 40px; top: 40px; left: 40px; background:#fff; -webkit-transition: transform .15s,bottom .15s; transition: transform .15s; -webkit-transform:translateY(100%); transform:translateY(100%); } .active > .botContent { bottom: 40px; -webkit-transform:translateY(0%); transform:translateY(0%); } </style> </head> <body> <!-- 按钮 --> <div class="btn"> <button id="rightBtn">从右侧划出</button> <button id="leftBtn">从左侧划出</button> <button id="topBtn">从上面划下</button> <button id="botBtn">从下面划上</button> </div> <!-- 弹出层 --> <aside id="aside" class="aside"> <i class="aside-overlay hideAside"></i> <div class="rightContent"> 右侧划出 </div> <div class="leftContent"> 左侧划出 </div> <div class="topContent"> 从上面划下 </div> <div class="botContent"> 从上面划下 </div> </aside> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var rightBtn = $('#rightBtn'),leftBtn = $('#leftBtn'),topBtn = $('#topBtn'),botBtn = $('#botBtn'); var oAside = $('#aside'); rightBtn.on("click",function(){ $('.leftContent').hide(); $('.topContent').hide(); $('.botContent').hide(); $('.rightContent').show(); oAside.addClass('active'); }); leftBtn.on("click",function(){ $('.rightContent').hide(); $('.topContent').hide(); $('.botContent').hide(); $('.leftContent').show(); oAside.addClass('active'); }); topBtn.on("click",function(){ $('.rightContent').hide(); $('.leftContent').hide(); $('.botContent').hide(); $('.topContent').show(); oAside.addClass('active'); }); botBtn.on("click",function(){ $('.rightContent').hide(); $('.leftContent').hide(); $('.topContent').hide(); $('.botContent').show(); oAside.addClass('active'); }); $('.hideAside').on("click",function(){ oAside.removeClass('active'); }); }) </script> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
赞 (0)