1
2
3
4
五
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三十
31
32 |
( function () { var nav = document.getElementById( 'site-navigation' ), button, menu; if ( ! nav ) { return ; } button = nav.getElementsByTagName( 'button' )[0]; menu = nav.getElementsByTagName( 'ul' )[0]; if ( ! button ) { return ; } // Hide button if menu is missing or empty. if ( ! menu || ! menu.childNodes.length ) { button.style.display = 'none' ; return ; } button.onclick = function () { if ( -1 === menu.className.indexOf( 'nav-menu' ) ) { menu.className = 'nav-menu' ; } if ( -1 !== button.className.indexOf( 'toggled-on' ) ) { button.className = button.className.replace( ' toggled-on' , '' ); menu.className = menu.className.replace( ' toggled-on' , '' ); } else { button.className += ' toggled-on' ; menu.className += ' toggled-on' ; } }; } )(jQuery); |
navigation.js
桌面。
接下来,您需要打开FTP客户端以将此文件上载到/wp-content/themes/your-theme-dir/js/
WordPress站点上的文件夹。
将your-theme-directory替换为当前主题的目录。如果您的主题目录没有js文件夹,则需要创建它。
上传JavaScript文件后,下一步是确保您的WordPress网站加载此JavaScript。您需要将以下代码添加到主题的functions.php文件中。
1 |
wp_enqueue_script( 'wpb_togglemenu' , get_template_directory_uri() . '/js/navigation.js' , array ( 'jquery' ), '20160909' , true ); |
header.php
文件中。
1
2
3
4 |
<nav id= "site-navigation" class = "main-navigation" role= "navigation" > <button class = "menu-toggle" >Menu</button> <?php wp_nav_menu( array ( 'theme_location' => 'primary' , 'menu_class' => 'nav-menu' ) ); ?> </nav> |
1
2
3
4
五
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三十
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 |
/* Navigation Menu */ .main-navigation { margin-top : 24px ; margin-top : 1.714285714 rem; text-align : center ; } .main-navigation li { margin-top : 24px ; margin-top : 1.714285714 rem; font-size : 12px ; font-size : 0.857142857 rem; line-height : 1.42857143 ; } .main-navigation a { color : #5e5e5e ; } .main-navigation a:hover, .main-navigation a:focus { color : #21759b ; } .main-navigation ul.nav-menu, .main-navigation div.nav-menu > ul { display : none ; } .main-navigation ul.nav-menu.toggled-on, .menu-toggle { display : inline- block ; } // CSS to use on mobile devices @media screen and ( min-width : 600px ) { .main-navigation ul.nav-menu, .main-navigation div.nav-menu > ul { border-bottom : 1px solid #ededed ; border-top : 1px solid #ededed ; display : inline- block !important ; text-align : left ; width : 100% ; } .main-navigation ul { margin : 0 ; text-indent : 0 ; } .main-navigation li a, .main-navigation li { display : inline- block ; text-decoration : none ; } .main-navigation li a { border-bottom : 0 ; color : #6a6a6a ; line-height : 3.692307692 ; text-transform : uppercase ; white-space : nowrap ; } .main-navigation li a:hover, .main-navigation li a:focus { color : #000 ; } .main-navigation li { margin : 0 40px 0 0 ; margin : 0 2.857142857 rem 0 0 ; position : relative ; } .main-navigation li ul { margin : 0 ; padding : 0 ; position : absolute ; top : 100% ; z-index : 1 ; height : 1px ; width : 1px ; overflow : hidden ; clip : rect( 1px , 1px , 1px , 1px ); } .main-navigation li ul ul { top : 0 ; left : 100% ; } .main-navigation ul li:hover > ul, .main-navigation ul li:focus > ul, .main-navigation .focus > ul { border-left : 0 ; clip : inherit; overflow : inherit; height : inherit; width : inherit; } .main-navigation li ul li a { background : #efefef ; border-bottom : 1px solid #ededed ; display : block ; font-size : 11px ; font-size : 0.785714286 rem; line-height : 2.181818182 ; padding : 8px 10px ; padding : 0.571428571 rem 0.714285714 rem; width : 180px ; width : 12.85714286 rem; white-space : normal ; } .main-navigation li ul li a:hover, .main-navigation li ul li a:focus { background : #e3e3e3 ; color : #444 ; } .main-navigation .current-menu-item > a, .main-navigation .current-menu-ancestor > a, .main-navigation .current_page_item > a, .main-navigation .current_page_ancestor > a { color : #636363 ; font-weight : bold ; } .menu-toggle { display : none ; } } |
1
2
3
4
五
6
7
8
9
10
11
12
13
14 |
( function ($) { $( '#toggle' ).toggle( function () { $( '#popout' ).animate({ left: 0 }, 'slow' , function () { $( '#toggle' ).html( '<img src="http://www.example.com/wp-content/themes/your-theme/images/menu.png" alt="close" />' ); }); }, function () { $( '#popout' ).animate({ left: -250 }, 'slow' , function () { $( '#toggle' ).html( '<img src="http://www.example.com/wp-content/themes/your-theme/images/menu.png" alt="close" />' ); }); } ); })(jQuery); |
your-theme
您的实际主题目录替换example.com 。将此文件保存为slidepanel.js
您的桌面。
现在您将需要一个将用作菜单图标的图像。汉堡包图标最常用作菜单图标。你会发现来自不同网站的大量此类图像。我们将使用Google Material Icons库中的菜单图标。
找到要使用的图像后,将其另存为menu.png
。
接下来,您需要打开FTP客户端客户端并将文件上载slidepanel.js
到/wp-content/your-theme/js/
文件夹。
如果您的主题目录没有JS文件夹,那么您需要创建一个tit,然后上传您的文件。
之后,您需要将menu.png文件上传到/wp-content/themes/your-theme/images/
文件夹。
1 |
wp_enqueue_script( 'wpb_slidepanel' , get_template_directory_uri() . '/js/slidepanel.js' , array ( 'jquery' ), '20160909' , true ); |
1 |
<?php wp_nav_menu( array ( 'theme_location' => 'primary' , 'menu_class' => 'nav-menu' ) ); ?> |
1
2
3
4
五 |
<div id= "toggle" > <img src= "http://www.example.com/wp-content/themes/your-theme/images/menu.png" alt= "Show" /></div> <div id= "popout" > <?php wp_nav_menu( array ( 'theme_location' => 'primary' , 'menu_class' => 'nav-menu' ) ); ?> </div> |
1
2
3
4
五
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
三十
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 |
@media screen and ( min-width : 769px ) { #toggle { display : none ; } } @media screen and ( max-width : 768px ) { #popout { position : fixed ; height : 100% ; width : 250px ; background : rgb ( 25 , 25 , 25 ); background : rgba( 25 , 25 , 25 , . 9 ); color : white ; top : 0px ; left : -250px ; overflow : auto ; } #toggle { float : right ; position : fixed ; top : 60px ; right : 45px ; width : 28px ; height : 24px ; } .nav-menu li { border-bottom : 1px solid #eee ; padding : 20px ; width : 100% ; } .nav-menu li:hover { background : #CCC ; } .nav-menu li a { color : #FFF ; text-decoration : none ; width : 100% ; } } |