Heim > Web-Frontend > js-Tutorial > Erstellen Sie ein mobilfreundliches WordPress-Hamburger-Menü

Erstellen Sie ein mobilfreundliches WordPress-Hamburger-Menü

WBOY
Freigeben: 2023-08-28 20:21:07
Original
1096 Leute haben es durchsucht

创建适合移动设备的 WordPress 汉堡菜单
Der Inhalt, den Sie erstellen werden

Wenn Sie möchten, dass Ihre Website responsiv ist (und wer möchte das nicht?), ist es wichtig, sicherzustellen, dass Ihr Hauptnavigationsmenü auch auf kleinen Bildschirmen gut funktioniert.

Große Navigationsmenüs beanspruchen möglicherweise zu viel Platz auf Ihrem Telefon, oder selbst wenn sie nicht zu viel Platz beanspruchen, sind sie möglicherweise zu klein, um sie zu lesen oder zuverlässig auf den richtigen Link zu klicken.

Hamburger-Menü ist eine Lösung für dieses Problem. Dies ist ein verstecktes Menü, bis der Benutzer darauf klickt. Es wird Hamburger-Menü genannt, weil das Symbol, das es darstellt, aus drei horizontalen Linien oben und unten besteht, was ein bisschen wie ein Hamburger aussieht.

Es gibt Plugins, die Ihr Hauptnavigationsmenü in ein Hamburger-Menü in WordPress verwandeln können (einschließlich des auf Code Canyon), aber was ist, wenn Sie es in Ihr eigenes Theme programmieren möchten?

In diesem Tutorial erfahren Sie, wie.

Was brauchst du

Um diesem Tutorial folgen zu können, benötigen Sie:

  • Entwicklungsinstallation von WordPress
  • Code-Editor
  • Themen, die bearbeitet werden können (wenn Sie ein Thema eines Drittanbieters verwenden, müssen Sie ein untergeordnetes Thema erstellen)

Startmenü

Der Code, den wir schreiben werden, gilt für die Menüs, die WordPress mithilfe des Navigationsmenüsystems generiert. Sie müssen keine neuen oder anderen Menüs für mobile Geräte schreiben. (Das ist einer meiner größten Ärgernisse, wenn eine Website auf dem Desktop und auf Mobilgeräten eine unterschiedliche Navigation hat, da dies normalerweise das Benutzererlebnis auf Mobilgeräten beeinträchtigt.)

Ich werde diese Technik anhand eines Menüs von meiner eigenen Website demonstrieren und den Code zusammen mit dem Stylesheet und der neuen JavaScript-Datei zur Datei header.php hinzufügen.

Dies ist das Menü auf dem Desktop:

创建适合移动设备的 WordPress 汉堡菜单

Dies ist ein horizontales Menü, das sich unter dem Bannerbild und dem Titel, aber über dem Inhalt befindet.

Auf Mobilgeräten ist das Bannerbild nicht sichtbar. Ich möchte das Menü entfernen und durch ein Hamburger-Symbol ersetzen. Wenn der Benutzer auf das Symbol klickt, erscheint ein Menü.

Das ist der Code für das Menü:

<nav class="menu main">
	<div class="skip-link screen-reader-text">
        <a href="#content" title="<?php esc_attr_e( 'Skip to content', 'tutsplus' ); ?>">
            <?php _e( 'Skip to content', 'tutsplus' ); ?>
        </a>
    </div>
	<?php wp_nav_menu( array( 
        'container_class' => 'main-nav', 
        'theme_location' => 'primary' 
    ) ); ?>
</nav><!-- .main -->
Nach dem Login kopieren

Der gesamte Inhalt ist in ein Div mit der Klasse .menu.main。有一个屏幕阅读器的跳过链接,然后是 wp_nav_menu() 函数,其中包括 'container_class' => 'main-nav' verpackt, wodurch dem Menü selbst eine zusätzliche CSS-Klasse hinzugefügt wird. Wir können diese Klassen später verwenden, um Menüs auf mobilen Geräten zu gestalten.

Also fangen wir an.

Hamburger-Symbol hinzufügen

Der erste Schritt besteht darin, das Hamburger-Symbol in die Datei header.php zu kodieren und es so zu formatieren, dass es nur auf Mobilgeräten sichtbar ist.

Fügen Sie in Ihrer header.php-Datei diesen Code in das Header-Element ein (nicht in die Navigation):

<a class="toggle-nav" href="#">&#9776;</a>
Nach dem Login kopieren

In meinem Fall bedeutet das, dass der Code für die Kopfzeile und die Navigation wie folgt lautet (beachten Sie, dass ich das Banner im Code unten weggelassen habe, obwohl es in meiner Datei enthalten ist):

<div class="header-bg">
    
	<header role="banner">
	
		<hgroup class="site-name three-quarters left">
			<h1 id="site-title" class="one-half-left">
		        <a href="<?php echo home_url( '/' ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
			</h1>
			<h2 id="site-description"><?php bloginfo( 'description' ); ?></h2>
		</hgroup>
	
		<div class="right quarter">	
			<a class="toggle-nav" href="#">&#9776;</a>	
		</div> <!-- .one-half right -->
		
	</header><!-- header -->
		
</div><!-- header-bg-->

<!-- full width navigation menu - not on landing page -->
<nav class="menu main">
	<div class="skip-link screen-reader-text">
        <a href="#content" title="<?php esc_attr_e( 'Skip to content', 'compass' ); ?>">
            <?php _e( 'Skip to content', 'twentyten' ); ?>
        </a>
    </div>
	<?php wp_nav_menu( array( 
        'container_class' => 'main-nav', 
        'theme_location' => 'primary' 
    ) ); ?>
</nav><!-- .main -->
Nach dem Login kopieren

Das Hamburger-Symbol (angezeigt mit &#9776; HTML-Code) befindet sich also in der Kopfzeile und das Navigationsmenü befindet sich darunter.

Fügen Sie nun einige Stile zum toggle-nav-Element hinzu.

Legen Sie den Stil des Hamburger-Symbols fest

Zuerst müssen wir das Hamburger-Symbol auf dem Desktop ausblenden.

Fügen Sie im Stylesheet Folgendes hinzu, um das Hamburger-Symbol auszublenden:

.toggle-nav {
    display: none !important;
}
Nach dem Login kopieren

Aber Sie müssen sicherstellen, dass es auf Mobilgeräten angezeigt wird. Fügen Sie also eine Medienabfrage hinzu und verwenden Sie dabei die maximale Breite, die Sie normalerweise für Medienabfragen verwenden. Das ist meins:

@media screen and ( max-width: 580px ) {
    .toggle-nav {
        display: inline-block !important;
    }
}
Nach dem Login kopieren

Dadurch wird das Hamburger-Symbol auf kleineren Bildschirmen sichtbar. Ich habe !important verwendet, um sicherzustellen, dass es nicht von anderen Linkstilen im Theme überschrieben wird.

Jetzt fügen wir noch etwas mehr Styling hinzu. Bearbeiten Sie die Medienabfrage so, dass sie wie folgt aussieht:

@media screen and ( max-width: 580px ) {
    .toggle-nav {
        display: inline-block !important;
        float: right;
        margin: 25px;
        font-size: 2em;
        transition: color linear 0.15s;
	}
		
    a.toggle-nav:link, 
	a.toggle-nav:visited,
	a.toggle-nav:hover, 
	a.toggle-nav:active {
        text-decoration: none;
        color: #fff;
    } 
}
Nach dem Login kopieren

Dadurch werden dem Symbol Farbe und Größe hinzugefügt und außerdem alle Stile für Links überschrieben, unabhängig von deren Status.

So sieht das Hamburger-Symbol jetzt auf Mobilgeräten aus:

创建适合移动设备的 WordPress 汉堡菜单

Dies ist der Stil der Hamburger-Ikone. Jetzt kommt das Navigationsmenü.

Legen Sie den Stil des Navigationsmenüs fest

Das Navigationsmenü selbst muss auf Mobilgeräten gestaltet werden. Fügen Sie in Ihrer Medienabfrage das folgende CSS hinzu:

.menu.main {
    display: inline-block;
    position: relative;
    background: #fff;
    text-align: left;
}
	
.menu.main ul {
    display: none;
    position: absolute;
    overflow: auto;
    top: 0px;
    right: 0px;
    z-index: 999;
    padding-right: 15px;
    background: #fff;
}
	
.menu.main ul li {
    float: none;
    display: block;
    position: relative;
    top: 0px;
    right: 0px;
    min-width: 200px;
    background: #fff;
    text-align: right;
}
	
.main.menu li:after { 
    content: none; 
}
Nach dem Login kopieren

Hier sind einige wichtige Aspekte des Codes:

  • 它更改主菜单的颜色和位置并使文本左对齐。
  • 它将列表隐藏在菜单内,以便当用户首次在移动设备上访问该网站时,不会显示菜单。
  • 它会更改列表中列表项的浮动和颜色。
  • 它为菜单提供相对定位,为列表提供绝对定位,以便它可以位于页面内容的顶部而不是将其向下推。
  • 它会删除桌面上我的主题中的列表项后面的所有元素。

请注意,您需要对菜单进行的调整可能会有所不同,并且取决于它在桌面上的样式。重要的部分是隐藏菜单和定位。

添加 JavaScript

为了让这一切正常工作,我们需要添加一些 JavaScript。当用户点击汉堡图标时,这将使菜单向下滑动。

将一个名为 burger-menu.js 的新文件添加到您的主题中(我喜欢将我的文件放在 scripts 文件夹中)。

将此脚本添加到其中:

jQuery(document).ready(function() {
    jQuery('.toggle-nav').click(function(e) {
        jQuery('.menu.main ul').slideToggle(500);
 
        e.preventDefault();
    });
    
});
Nach dem Login kopieren

当用户单击 .toggle-nav 元素(即汉堡图标)。保存文件并关闭它。

但是除非您将脚本排入队列,否则它将无法工作。打开主题的 functions.php 文件并添加以下内容:

function tutsplus_burger_menu_scripts() {
    
	wp_enqueue_script( 'burger-menu-script', get_stylesheet_directory_uri() . '/scripts/burger-menu.js', array( 'jquery' ) );
 
}
add_action( 'wp_enqueue_scripts', 'tutsplus_burger_menu_scripts' );
Nach dem Login kopieren

这会将您的脚本排入队列,使其正常工作。保存并关闭您的函数文件。

现在,如果您在移动设备上(或在启用响应模式的桌面浏览器中)访问您的网站并单击该汉堡,菜单将会向下滑动。

创建适合移动设备的 WordPress 汉堡菜单

它位于内容之上,而不是将其向下推,并且它以由 JavaScript 驱动的漂亮滑动动作出现。这正是我们想要的。

汉堡菜单将增强移动访问者的用户体验

笨重的桌面优先导航菜单会在小屏幕上占用太多空间,并使人们无法阅读他们访问您网站的内容。

但您不想阻止移动访问者访问与桌面访问者相同的导航。

通过添加这样的汉堡菜单,您可以两全其美:干净的移动布局,可以访问与桌面上相同的导航。

有关 WordPress 菜单的其他帖子

要了解有关 WordPress 菜单的更多信息,请查看我们的其他一些帖子:

Das obige ist der detaillierte Inhalt vonErstellen Sie ein mobilfreundliches WordPress-Hamburger-Menü. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage