在写导航栏自适应的时候需要用到 将一个input和两个label标签进行绑定,实现自适应状态下的导航栏开关
<input type="checkbox" id="chk">
<label for="chk" id="" class="show-menu-btn">
<i class="fa fa-list"></i>
</label>
<label for="chk" class="hide-menu-btn">
<i class="fa fa-arrow-right"></i>
</label>
点击第一个label标签按钮弹出隐藏的导航栏,点击第二个label按钮时关闭并隐藏导航栏
<div class="main-nav wrap" id="main-nav">
<?php
// 列出顶部导航菜单,菜单名称为mymenu,只列出一级菜单
wp_nav_menu(
array(
'theme_location' => 'top', //指定显示的导航名,如果没有设置,则显示第一个
'menu' => 'header-menu',
'container' => 'nav', //最外层容器标签名
'container_class' => 'ease-c-head-nav', //最外层容器class名
'container_id' => 'ease-i-head-nav',//最外层容器id值
'menu_class' => 'ease-nav', //ul标签class
'menu_id' => 'nav-ul',//ul标签id
'depth' => 1,////显示的菜单层数,默认0,0是显示所有层
));
?>
<label for="chk" class="hide-menu-btn">
<i class="fa fa-arrow-right"></i>
</label>
</div>
上方的.main-nav即为隐藏的导航栏,首先获取label标签是否勾选,勾选即代表点击了导航按钮,再次点击即代表关闭导航栏
var ease_menu_input = document.getElementById("chk"); //获取input标签
var ease_main_nav = document.getElementById("main-nav");//获取main-nav以便于修改style属性
console.log(ease_menu_input.checked);//检查input是否勾选,true或者false
ease_menu_input.onclick = function(){ //写一个匿名函数并赋值给点击事件
if (ease_menu_input.checked == true){
ease_main_nav.style.right="0"; //点击打开导航栏时从右侧移动至屏幕显示范围
console.log("按钮checked:true");
}else{
ease_main_nav.style.right="-120%";//点击关闭导航栏时从右侧移出屏幕显示范围
console.log("按钮checked:false");
}
}
这里用到js的DOM操作改变元素style属性
/* 1.直接设置style属性 */
element.style.height = '100px';
/* 2.直接设置属性 */
element.setAttribute('height', '100px');
/* 3.使用setAttribute设置style属性 */
element.setAttribute('style', 'height: 100px !important');
/* 4.使用setProperty设置属性,通过第三个参数设置important */
element.style.setProperty('height', '300px', 'important');
/* 5.设置cssText */
element.style.cssText += 'height: 100px !important';
Ease主题的导航栏基于这种方式进行实现。