整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「前端制作」移動端側邊滑出導航欄

          動端側邊滑出導航欄是一種常見的UI設計,可以提升用戶體驗和導航的可用性。本文將詳細介紹如何利用前端技術實現移動端側邊滑出導航欄,并給出相關的代碼示例。

          首先,我們需要一個觸發導航欄滑出的按鈕。通常情況下,這個按鈕會放在頁面的頂部或者底部,以便用戶方便點擊。我們可以使用HTML和CSS來創建這個按鈕。

          HTML代碼如下所示:

          ```html菜單```

          CSS代碼如下所示:

          ```css.nav-button { position: fixed; top: 20px; left: 20px; width: 60px; height: 60px; background-color: #000; color: #fff; border: 0; border-radius: 50%; font-size: 16px;}```

          以上代碼創建了一個圓形的按鈕,并設置了一些基本樣式,可以根據實際需求進行調整。

          接下來,我們需要實現導航欄滑出的效果。可以使用CSS來實現,具體代碼如下:

          HTML代碼如下所示:

          ```html```

          CSS代碼如下所示:

          ```css.nav-menu { position: fixed; top: 0; left: -80%; width: 80%; height: ; background-color: #fff; transition: all 0.3s ease;}

          .nav-menu.open { left: 0;}

          .nav-menu ul { list-style: none; padding: 0; margin: 0;}

          .nav-menu ul li { padding: 10px 20px; border-bottom: 1px solid #ccc; cursor: pointer;}

          .nav-menu ul li:last-child { border-bottom: none;}```

          以上代碼創建了一個導航欄,并設置了一些基本樣式。使用左側負值的left屬性隱藏了導航欄,當給導航欄添加open類名后,left屬性變為0,導航欄就可以滑出。

          接下來,我們需要使用JavaScript來處理按鈕的點擊事件,實現導航欄的滑出和收起。可以使用以下代碼:

          ```javascriptconst navButton = document.querySelector('.nav-button');const navMenu = document.querySelector('.nav-menu');

          navButton.addEventListener('click', () => { navMenu.classList.toggle('open');});```

          以上代碼添加了一個點擊事件監聽器,當按鈕被點擊時,toggle方法會切換導航欄元素的open類,從而實現導航欄的滑出和收起效果。

          至此,我們已經完成了移動端側邊滑出導航欄的制作。當用戶點擊按鈕時,導航欄將從左側滑出,再次點擊按鈕時,導航欄將收起。這種交互方式可以為用戶提供良好的導航體驗。

          總結一下,要實現移動端側邊滑出導航欄,我們需要使用HTML、CSS和JavaScript。通過添加一個按鈕和一個導航欄元素,利用CSS的transition屬性和JavaScript的事件監聽器,可以輕松實現這一效果。希望本文的內容對你有所幫助。

          果圖

          動態圖沒法彰顯它原本的魅力,可以自行下載后觀看!

          代碼過長需要文檔版源碼來我的前端群581549454,已上傳到群文件

          CSS3源碼:

          @charset "utf-8";

          html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td, textarea { margin: 0; padding: 0; font-size: 14px; line-height: 24px; color: #000; font-family: 'microsoft yahei',verdana,Tahoma; }

          ol, ul, li { list-style: none; line-height: 22px; }

          ol, ul { zoom: 1; }

          h1, h2, h3, h4, h5, h6 { font-size: 100%; }

          img { border: none; max-width: 100%; }

          a, a:link, a:visited { cursor: pointer; text-decoration: none;}

          a:hover { cursor: pointer; }

          .table { border-collapse: collapse; border-spacing: 0; }

          .table td { border: solid 1px #666; }

          .clear { clear: both; float: none; overflow: hidden; height: 0; font-size: 0; }

          .clearFix:after { clear: both; display: block; visibility: hidden; height: 0; line-height: 0; content: "."; }

          .clearFix { zoom: 1; }

          * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

          :after, :before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

          .font { font: 14px/24px "Comic Sans MS"; }

          :focus { outline: none; }

          .css3pie { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; behavior: url(css3pie/PIE.htc); }

          /*------------------------------------------------------------------------------------------------------------------------------------------------*/

          body{ font-size: 14px; font-family: "黑體-簡","黑體","微軟雅黑", Arial, Gotham, "Helvetica Neue", Helvetica, sans-serif; width: 100%; margin: 0 auto; background-color: #313131; overflow-x: hidden; }

          .wrap{width:100%;height:1000px;}

          .wrap p{font-size: 48px;text-align: center;color: #fff;padding-top: 280px;line-height: 60px;}

          .logo{

          text-align: center;

          vertical-align: middle;

          background: #357dd7;

          margin-left: 45%;

          top: 20%;

          z-index: 11;

          width: 240px;

          height: 240px;

          overflow: hidden;

          position: relative;

          }

          .logo:hover{

          box-shadow: 0px 0px 10px #333;

          }

          .logo h1{

          display: table-cell;

          vertical-align: middle;

          width: 240px;

          height: 240px;

          }

          .logo a{width: 240px;height: 240px;overflow: hidden;}

          .logo a:before{

          content: '';

          position: absolute;

          left: -230%;

          top: 0px;

          width: 200%;

          height: 120%;

          background: #1f415f;

          z-index: 1;

          transform:skew(30deg, 0);

          -webkit-transform:skew(30deg, 0);

          -ms-transform:skew(30deg, 0);

          -moz-transform:skew(30deg, 0);

          -o-transform:skew(30deg, 0);

          transition:all .5s;

          -moz-transition:all .5s;

          -webkit-transition:all .5s;

          -o-transition:all .5s;

          }

          .logo a:hover{

          background: #357dd7;

          }

          .logo a:hover:before {

          left: -60px;

          }

          .logo img {

          position: relative;

          z-index: 1;

          }

          /*一級導航*/

          .nav-main{

          position: fixed;

          top: 0;

          z-index: 12;

          height: 100%;

          width: 100px;

          color: #fff;

          background: #111213;

          }

          .nav-main a{color: #fff;}

          .nav-box{

          position: relative;

          perspective: 200px;

          -webkit-perspective: 200px;

          transform-style: preserve-3d;

          -webkit-transform-style: preserve-3d;

          height: 100%;

          z-index: 99;

          }

          .nav-ul li a{

          display: block;

          width: 100px;

          height: 100px;

          overflow: hidden;

          text-align: center;

          position: relative;

          transition: all .5s;

          -moz-transition: all .5s;

          -webkit-transition: all .5s;

          -o-transition: all .5s;

          }

          .nav-ul li a:before{

          content: '';

          position: absolute;

          left: -240px;

          top: 0px;

          width: 200px;

          height: 100%;

          background: #629feb;

          z-index: 1;

          transform: skew(30deg, 0);

          -webkit-transform: skew(30deg, 0);

          -ms-transform: skew(30deg, 0);

          -moz-transform: skew(30deg, 0);

          -o-transform: skew(30deg, 0);

          transition: all .5s;

          -moz-transition: all .5s;

          -webkit-transition: all .5s;

          -o-transition: all .5s;

          }

          .nav-ul li a:hover{background: #357dd7;}

          .nav-ul li a:hover:before{left: -30px;}

          .nav-ul li a:after{

          content: '';

          position: absolute;

          width: 100%;

          height: 30px;

          left: 0;

          top: 20px;

          z-index: 1;

          }

          .nav-ul li a span{

          display: block;

          margin-top: 60px;

          perspective: ;

          position: relative;

          z-index: 1;

          }

          .nav-slide{

          position: fixed;

          left: 100px;

          top: 0;

          width: 240px;

          height: 100%;

          background: #252829;

          transform: rotateY(120deg);

          -webkit-transform: rotateY(120deg);

          -moz-transform: rotateY(120deg);

          -o-transform: rotateY(120deg);

          -ms-transform: rotateY(120deg);

          z-index: 99;

          visibility: hidden;

          transform-origin: 0 0;

          -webkit-transform-origin: 0 0;

          -moz-transform-origin: 0 0;

          -o-transform-origin: 0 0;

          -ms-transform-origin: 0 0;

          backface-visibility: hidden;

          -webkit-backface-visibility: hidden;

          transition: all .5s;

          -webkit-transition: all .5s;

          -moz-transition: all .5s;

          -o-transition: all .5s;

          transition-timing-function: cubic-bezier(.08, .72, .71, .96);

          -webkit-transition-timing-function: cubic-bezier(.08, .72, .71, .96);

          }

          .nav-slide.hover{

          transform: rotateY(0deg);

          -webkit-transform: rotateY(0deg);

          -moz-transform: rotateY(0deg);

          -o-transform: rotateY(0deg);

          -ms-transform: rotateY(0deg);

          z-index: 15;

          visibility: visible;

          }

          /*二級菜單*/

          .nav-slide-o li a{

          line-height: 50px;

          display: block;

          padding: 0 20px;

          font-size: 14px;

          overflow: hidden;

          text-align: left;

          position: relative;

          transition: all .5s;

          -webkit-transition: all .5s;

          -moz-transition: all .5s;

          -o-transition: all .5s;

          }

          .nav-slide-o li a:before{

          content: '';

          position: absolute;

          left: -230%;

          top: 0px;

          width: 200%;

          height: 100%;

          background: #629feb;

          z-index: 1;

          transform: skew(30deg, 0);

          -webkit-transform: skew(30deg, 0);

          -moz-transform: skew(30deg, 0);

          -o-transform: skew(30deg, 0);

          -ms-transform: skew(30deg, 0);

          transition: all .5s;

          -webkit-transition: all .5s;

          -moz-transition: all .5s;

          -o-transition: all .5s;

          }

          .nav-slide-o li a:hover{background: #357dd7;}

          .nav-slide-o li a:hover:before{left: -60px;}

          .nav-slide-o li a span{position: relative;z-index: 1;}

          .nav-slide-o {display: none;}

          作為前端工作人員,都知道錨點是網頁制作中超級鏈接的一種,又叫命名錨記。命名錨記像一個迅速定位器一樣是一種頁面內的超級鏈接,運用相當普遍。但是點擊瞄點超鏈接后,發現定位不準確,不能隨心所欲,這下很苦逼,,,下面的這個js定位導航菜單定位很精準,比瞄點定位好用多了,,精準度都可以自由調整。

          <!Doctype html>

          <html>

          <head>

          <meta charset="gb2312">

          <title>js定位導航菜單</title>

          <style type="text/css">

          *{margin:0;padding:0;} .w{width:1200px;margin:0 auto;}

          .nav{height:56px;margin-top:500px;margin-bottom:200px;}

          .box{border:1px solid red;height:800px;margin-bottom:200px;}

          .nav,#scroll_nav{width:100%;background:#7a3e47;color:#fff;position:relative;}

          #scroll_nav .pubW_c{height:56px;}

          #scroll_nav ul {margin-left:32px;}

          #scroll_nav ul li{font-size:20px;float:left;display:inline;

          width:152px;text-align:center;line-height:56px;color:#fff;}

          #scroll_nav ul li a{color:#fff; width:152px;height:56px;margin:0 auto;display:block;}

          #scroll_nav ul li a:hover,#scroll_nav ul li a.active{color:#7a3e47;

          background:#fff;text-decoration:none;}

          </style>

          </head>

          <body>

          <div class="nav oh">

          <div id="scroll_nav">

          <div class="pubW_c w">

          <ul class="fl">

          <li><a href="javascript:void(0);">box01</a></li>

          <li><a href="javascript:void(0);">box02</a></li>

          <li><a href="javascript:void(0);">box03</a></li>

          <li><a href="javascript:void(0);">box04</a></li>

          </ul>

          </div>

          </div>

          </div>

          <div class="box w scroll_top">我是box01</div>

          <div class="box w scroll_top">我是box02</div>

          <div class="box w scroll_top">我是box03</div>

          <div class="box w scroll_top">我是box04</div>

          <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>

          <script type="text/javascript">

          (function($) {

          $.fn.navScroll = function(o) {

          o = $.extend({

          navAddClass: 'cur',

          conAddClass: 'posi',

          navH: 60,

          speedArg: 7

          }, o || {});

          var navAdd = o.navAddClass,conAdd = o.conAddClass,navH = o.navH,speedArg = o.speedArg;

          var _el = $(this),arrPos = [],timer = null;

          $('.' + conAdd + '').each(function() {

          arrPos.push($(this).offset().top);

          });

          _el.each(function(index) {

          $(this).attr('index', index);

          $(this).bind('click',

          function() {

          $(window).unbind('scroll', WinScroll);

          _el.each(function() {

          $(this).removeClass(navAdd);

          });

          $(this).addClass(navAdd);

          fnScroll($(this));

          });

          });

          function fnScroll(obj) {

          var iSpeed = 0;

          var iTarget = arrPos[obj.attr('index')]-navH;

          //alert(iTarget);

          clearInterval(timer);

          timer = setInterval(function() {

          var oLength=$("#scroll_nav a").length;

          var cur = $(document).scrollTop(),clientH = $(window).height(),docH = $(document).height();

          //alert(cur+" "+clientH+" " +docH+" "+iTarget);

          if(obj.attr('index')==oLength-1){

          if((cur+clientH)>=docH){

          iTarget=docH-clientH;

          //alert(iTarget);

          }

          }

          iSpeed = (iTarget - cur) / speedArg;

          iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed)

          if (Math.abs(iTarget - cur) < 1) {

          clearInterval(timer);

          window.scrollTo(0, iTarget);

          $(window).bind('scroll', WinScroll);

          } else {

          window.scrollTo(0, cur + iSpeed);

          }

          },

          30);

          }

          function WinScroll() {

          var cur = $(document).scrollTop()+navH;

          $.each(arrPos,

          function(i) {

          if (cur >= arrPos[i]) {

          if (cur < arrPos[i + 1]) {

          _el.each(function() {

          if ($(this).attr('index') == i) {

          $(this).addClass(navAdd);

          } else {

          $(this).removeClass(navAdd);

          }

          });

          } else {

          _el.each(function() {

          if ($(this).attr('index') == arrPos.length - 1) {

          $(this).addClass(navAdd);

          } else {

          $(this).removeClass(navAdd);

          }

          });

          }

          }

          });

          };

          $(window).on('scroll', WinScroll);

          };

          })(jQuery);

          $('#scroll_nav ul li a').navScroll({

          navAddClass: 'active',

          conAddClass: 'scroll_top',

          navH: 70,

          speedArg: 7

          });

          window.onload = window.onscroll = function() {

          var oNav=document.getElementById('scroll_nav');

          var oTop = document.documentElement.scrollTop || document.body.scrollTop;

          //alert(oTop);

          if (oTop >= 600) {

          if (typeof document.body.style.maxHeight === "undefined") {

          oNav.style.top = oTop + 'px';

          } else {

          oNav.style.position = 'fixed';

          oNav.style.top = 0;

          oNav.style.zIndex=999999;

          }

          } else {

          oNav.style.position = 'absolute';

          oNav.style.top = 0+"px";

          }

          };

          </script>

          </body>

          </html>

          效果演示地址:http://tangjiusheng.com/jstx/131.html


          主站蜘蛛池模板: 人妻夜夜爽天天爽爽一区| 国产精品久久久久一区二区三区| 亚洲国产精品一区二区久久hs| 亚洲av无码片vr一区二区三区| 久久久精品一区二区三区| 亚洲AV无码一区二区三区国产| 亚洲性无码一区二区三区| 久久99国产精品一区二区| 狠狠色婷婷久久一区二区三区| 国产一区中文字幕| 无码人妻aⅴ一区二区三区| 91精品一区二区三区久久久久| 少妇无码AV无码一区| 久久99精品免费一区二区| 日本一区二区三区免费高清在线| 国产精品日韩欧美一区二区三区| 国产日韩一区二区三区| 国产精品免费一区二区三区四区| 久久精品国产一区二区电影| 亚洲国产激情一区二区三区| 一本岛一区在线观看不卡| 久久国产精品免费一区二区三区 | 亚洲成a人一区二区三区| 国产一区二区三区免费视频| 福利电影一区二区| 久久精品无码一区二区app| 国产伦精品一区二区免费 | 亚洲综合一区二区国产精品| 亚洲AV美女一区二区三区| 亚洲宅男精品一区在线观看| 亚洲综合一区二区| 国产成人精品一区二区A片带套| 精品欧美一区二区在线观看| 国产一区美女视频| 中文字幕一区二区日产乱码| 美女视频在线一区二区三区| 亚洲AV乱码一区二区三区林ゆな | 美女免费视频一区二区| 国产精品成人一区二区| 性无码一区二区三区在线观看| 亚洲av乱码一区二区三区香蕉|