龙空技术网

实战网页建立移动导航

IT知识一享 84

前言:

此刻看官们对“如何实现网站导航功能”大体比较关切,咱们都需要分析一些“如何实现网站导航功能”的相关知识。那么小编在网摘上搜集了一些有关“如何实现网站导航功能””的相关内容,希望我们能喜欢,各位老铁们一起来学习一下吧!

本节课我们建立一个移动导航,如下图所示

首先添加这个button

 <button class="btn-mobile-nav">          <ion-icon class="icon-mobile-nav" name="menu-outline"></ion-icon>          <ion-icon class="icon-mobile-nav" name="close-outline"></ion-icon>        </button>
.btn-mobile-nav {  border: none;  background: none;  cursor: pointer;}.icon-mobile-nav {  width: 4.8rem;  height: 4.8rem;  color: #333;}

然后通过选择器的方式,默认不显示X

.icon-mobile-nav[name="close-outline"] {    display: none;  }

之后通过这样的方式来让移动设备上才会显示这样图标

 .main-nav {        background-color: rgba(255, 255, 255, 0.97);  #给导航添加背景        position: absolute;  #让导航脱离文档流        top: 0;        left: 0;  #表示将元素的顶部和左侧都与其父元素的顶部和左侧对齐        width: 100%;  #占据页面整个宽度        height: 100vh;  #占据整个页面高度        display: flex;   #flex布局        align-items: center;  #使得导航居中        justify-content: center;  #垂直也居中    }    .main-nav-list {        flex-direction: column;  #让导航垂直摆放        gap: 4.8rem;  #添加间距    }    .main-nav-link:link, .main-nav-link:visited {        font-size: 3rem;   #字体搞大一点    }}

目前简单的我们就写到这里,后面我们再添加Javascript实际这个功能;

但是默认的情况下,我们还是通过 opacity:0;将页面归为全透明

   .nav-open .main-nav {        opacity: 1;    }

和之前的手风琴一样,默认情况下,是全部透明的,导航将不可见,如果加上nav-open这个class类的话,导航将可见,这个取决于我们点击旁边的按钮通过JS来实现,后面我们会讲解;

之后我们来添加动画效果,除此之外,通过透明度的方式并不能真正的将导航隐藏

        transition: all 0.5s ;        opacity: 0;        pointer-events: none;  #表示该元素不会响应鼠标事件,比如点击、悬停等        visibility: hidden;  #表示该元素在页面上不可见,但是仍然占据着页面布局中的位置和空间。这个属性通常用于隐藏某个元素,但是希望它仍然存在于页面中,以便后续操作。与 display: none; 不同的是,display: none; 会将元素从页面中完全移除,不再占据任何空间。
同样,在导航出现的时候我们需要把这些参数加上
      opacity: 1;        pointer-events: auto;        visibility: visible;

但是这里还有一个问题,我们希望打开的时候这三个杠消失,X图标出现

   .nav-open .icon-mobile-nav[name="close-outline"] {        display: block;    }    .nav-open .icon-mobile-nav[name="menu-outline"] {        display: none;    }

除此之外,我们还可以做一个动效的效果,使得导航出现的时候,有从右侧滑出的效果;首先将导航移除屏幕

transform: translateX(100%);
接着我们让其完全移出

 .nav-open .main-nav {        opacity: 1;        pointer-events: auto;        visibility: visible;        transform: translateX(0);    }

这样当打开的时候就会产生一个从右到左边的动画

最后我们可以加上一个动画过渡

 transition: all 0.5s ease-in;##ease-in 表示动画开始时速度较慢,然后逐渐加速到最大值。这种过渡函数通常用于需要突出动画结束时的效果,比如弹出菜单或者弹窗。##ease-out 表示动画开始时速度较快,然后逐渐减速到结束。这种过渡函数通常用于需要突出动画开始时的效果,比如下拉刷新或者下拉加载更多。##除了这两种过渡函数,还有一种常用的过渡函数是 ease-in-out,表示动画开始时速度较慢,然后逐渐加速到最大值,再逐渐减速到结束。这种过渡函数通常用于需要平滑过渡的动画,比如滚动动画、渐变动画等。

标签: #如何实现网站导航功能