html css 仿微信底部自定义菜单
来源:互联网 发布:解码软件下载 编辑:程序博客网 时间:2024/05/20 21:42
最近几个月一直从事微信开发,从刚开始的懵懂渐渐成长了一点。今天觉得微信底部自定义菜单,如果能在html的页面上也能显示就好了.
记得以前看过某个网页有类似效果.查找了该网页的css. ok现在html css 实现微信自定义菜单效果.
不多说直接上代码。
[java] view plaincopyprint?
- /**
- * 仿微信自定义菜单
- *
- * @author xuyw
- * @email xyw10000@163.com
- * @date 2014-07-27
- */
[html] view plaincopyprint?
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title> New Document </title>
- <meta name="Generator" content="EditPlus">
- <meta name="Author" content="">
- <meta name="Keywords" content="">
- <meta name="Description" content="">
- <link rel="stylesheet" type="text/css" href="menu.css" media="all">
- </head>
- <body>
- <div class="bg">
- <img src="imgs/home-default17.jpg" width="100%" height="100%;">
- </div>
- <div data-role="widget" data-widget="nav4" class="nav4">
- <nav>
- <div id="nav4_ul" class="nav_4">
- <ul class="box">
- <li>
- <a href="javascript:;" class=""><span>关于我们</span></a>
- <dl>
- <dd>
- <a href="#"><span>电话</span></a>
- </dd>
- <dd>
- <a href="#"><span>地址</span></a>
- </dd>
- <dd>
- <a href="#"><span>在线客服</span></a>
- </dd>
- <dd>
- <a href="#"><span>在线QQ</span></a>
- </dd>
- </dl>
- </li>
- <li>
- <a href="javascript:;" class=""><span>电商</span></a>
- <dl>
- <dd>
- <a href="#"><span>微信会员卡</span></a>
- </dd>
- <dd>
- <a href="#"><span>微社区</span></a>
- </dd>
- <dd>
- <a href="#"><span>微投票</span></a>
- </dd>
- <dd>
- <a href="#"><span>微调研</span></a>
- </dd>
- </dl>
- </li>
- <li>
- <a href="javascript:;" class="on"><span>会员专区</span></a>
- <dl>
- <dd>
- <a href="#"><span>微商城</span></a>
- </dd>
- <dd>
- <a href="#"><span>微餐饮</span></a>
- </dd>
- <dd>
- <a href="#"><span>微团购</span></a>
- </dd>
- <dd>
- <a href="#"><span>微汽车</span></a>
- </dd>
- </dl>
- </li>
- </ul>
- </div>
- </nav>
- <div id="nav4_masklayer" class="masklayer_div on"> </div>
- <script src="nav4.js"></script>
- <script type="text/javascript">
- nav4.bindClick(document.getElementById("nav4_ul").querySelectorAll("li>a"), document.getElementById("nav4_masklayer"));
- </script>
- </div>
- </body>
- </html>
css
[css] view plaincopyprint?
- *{padding:0; margin:0;}
- .bg {
- position: absolute;
- z-index: -1;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- opacity: 0.8;
- }
- ul, ol, li, dl {
- list-style-type: none;
- }
- .box {
- width: 100%;
- display: -webkit-box;
- display: -moz-box;
- -webkit-box-orient: horizontal;
- -moz-box-orient: horizontal;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- }
- .box > * {
- -webkit-box-flex: 1;
- -moz-box-flex: 1;
- }
- a:link, a:visited {
- color: #575757;
- text-decoration: none;
- }
- a {
- text-decoration: none;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0.35);
- }
- a:link, a:visited {
- color: #575757;
- text-decoration: none;
- }
- a {
- text-decoration: none;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0.35);
- }
- .nav4{
- height:45px;
- }
- .nav4 ul{
- position:fixed;
- z-index:200;
- bottom:0;
- left:0;
- width:100%
- }
- .nav4 li{
- border:1px solid rgba(190,190,190,1);
- height:45px;
- border-bottom:0;
- border-right:0;
- position:relative;
- -webkit-box-shadow:inset 0 0 3px #fff;
- }
- .nav4 li:nth-of-type(1){border-left;0;}
- .nav4 li>a{
- font-size:15px;
- -webkit-box-sizing:border-box;
- box-sizing:border-box;
- /*border:1px solid #f9f8f9;*/
- -webkit-tap-highlight-color:rgba(0,0,0,0);
- border-bottom:0;
- display:block;
- line-height:45px;
- text-align:center;
- background:-webkit-gradient(linear, 0 0, 0 100%, from(#f1f1f1), to(#dcdcdc), color-stop(35% ,#ededed), color-stop(50%, #e3e3e3) );
- }
- .nav4 li>a:only-child span{
- background:none;
- padding-left:0;
- }
- .nav4 li>a.on + dl{
- display: block;
- }
- .nav4 li>a span{
- color: #4f4d4f;
- display: inline-block;
- padding-left: 15px;
- background: url(imgs/1.svg#2) no-repeat 4px 18px;
- -webkit-background-size: 9px auto;
- text-shadow:0px 1px 0px #ffffff;
- }
- /***********************/
- .nav4 dl{
- display:none;
- position:absolute;
- z-index:220;
- bottom:60px;
- left:50%;
- width:100px;
- margin-left:-50px;
- background:red;
- /*min-height:100px;*/
- background:#e4e3e2;
- /*border:1px solid #afaeaf;*/
- border-radius:5px;
- -webkit-box-shadow:inset 0 0 3px #fff;
- background:url(imgs/2.svg#3) no-repeat center center;
- -webkit-background-size:100%;
- background-size:100%;
- }
- /*, .nav4 dl:after*/
- .nav4 dl:before{
- content:"";
- display:inline-block;
- position:absolute;
- z-index:240;
- bottom:0;
- left:50%;
- /*width:0;
- height:0;
- border:8px solid red;
- border-color:#afaeaf transparent transparent transparent;
- margin-left:-8px;
- margin-bottom:-16px;*/
- width:10px;
- height:8px;
- background: url(imgs/1.svg#2) no-repeat center -55px;
- -webkit-background-size: 10px auto;
- bottom: -7px;
- margin-left: -5px;
- }
- /*.nav4 dl:after{
- z-index:241;
- border-color:#e4e3e2 transparent transparent transparent;
- margin-bottom:-15px;
- }*/
- .nav4 dl dd{
- line-height:45px;
- text-align:center;
- background:-webkit-gradient(linear, 0 0, 100% 0, from(rgba(194,194,194,0.8)), to(rgba(194,194,194,0.8)), color-stop(50%, rgba(194,194,194,0.8)));
- background-size:80% 1px;
- background-repeat:no-repeat;
- background-position: center bottom;
- /*background: url(imgs/3.svg#4) no-repeat center bottom;
- -webkit-background-size:100px 1px;*/
- }
- .nav4 dl dd:last-of-type{
- background:none;
- }
- .nav4 dl dd a{
- font-size: 15px;
- display:block;
- color:#4f4d4f;
- text-shadow:0px 1px 0px #ffffff;
- white-space: pre;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .nav4 .masklayer_div{
- display: none;
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 180;
- background: rgba(0,0,0,0);
- }
- .nav4 .masklayer_div.on{display: block;}
[javascript] view plaincopyprint?
- var nav4 =(function(){
- bindClick = function(els, mask){
- if(!els || !els.length){return;}
- var isMobile = "ontouchstart" in window;
- for(var i=0,ci; ci = els[i]; i++){
- ci.addEventListener("click", evtFn, false);
- }
- function evtFn(evt, ci){
- ci =this;
- for(var j=0,cj; cj = els[j]; j++){
- if(cj != ci){
- console.log(cj);
- cj.classList.remove("on");
- }
- }
- if(ci == mask){mask.classList.remove("on");return;}
- switch(evt.type){
- case "click":
- var on = ci.classList.toggle("on");
- mask.classList[on?"add":"remove"]("on");
- break;
- }
- }
- mask.addEventListener(isMobile?"touchstart":"click", evtFn, false);
- }
- return {"bindClick":bindClick};
- })();
微信自定义菜单
效果图
附上下载链接 http://download.csdn.net/detail/a714115852/7684935
最后欢迎大家一起学习共同进步
转载自http://blog.csdn.net/xuyw10000/article/details/38188151
0 0
- html css 仿微信底部自定义菜单
- html css 仿微信底部自定义菜单
- html css html底部固定
- 暴走仿微信底部菜单HTML代码
- html css下拉 菜单
- html+css菜单
- Html/CSS菜单代码
- html css 菜单
- [HTML] CSS 下拉菜单
- html+css下拉菜单
- Android仿微信底部菜单
- Android仿微信底部菜单
- Android仿微信底部菜单
- 网站固定底部菜单(DIV+CSS)
- 自定义Dialog菜单如何显示在底部?
- 自定义 仿QQ底部菜单popWindow
- android开发 - 自定义 弹出 底部菜单
- 自定义PopupWindow实现底部弹出式菜单
- 软件测试的重要性
- HDU ACM 1054 Strategic Game 二分图最小顶点覆盖?树形DP
- hdu 5202 Rikka with string
- 我所理解的设计模式(C++实现)——模板方法模式(Template Method Pattern)
- 一起talk C栗子吧(第八回:C语言实例--素数)
- html css 仿微信底部自定义菜单
- Android平台中获取状态栏的高度代码实现
- UINavigationController应用之—-从无导航条push到有导航条
- 路由策略和策略路由
- 在普通用户下创建超级用户
- oracle中merge into..using..on..when..when..用法
- centos7 光盘本地yum源
- Opencv与matlab的混合编程
- Win7下Nginx的安装与配置