Plugin Directory

Changeset 3230271


Ignore:
Timestamp:
01/28/2025 08:24:40 AM (14 months ago)
Author:
aweos
Message:

Enhanced user experience by preventing overlapping or multiple open submenus

Location:
aweos-offcanvas-menu/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • aweos-offcanvas-menu/trunk/aweos-offcanvas-menu.php

    r3230243 r3230271  
    11<?php
    22/*
    3 Plugin Name: AWEOS Offcanvas Menu for Divi
     3Plugin Name: AWEOS Offcanvas Menu for Divi 
    44Plugin URI:  https://developer.wordpress.org/plugins/aweos-offcanvas-menu/
    55Description: Displays an offcanvas menu
    6 Version:     2.0.1
     6Version:     2.0.2
    77Author:      AWEOS GmbH
    88Author URI:  https://aweos.de
  • aweos-offcanvas-menu/trunk/public/js/app.js

    r3230243 r3230271  
    2222       
    2323    });
    24    
     24    toggleSubMenu()
    2525    // Close buttons for the offcanvas menu
    2626    $('.close-sidebar-inner, .offcanvas-menu-background').on('click', function() {
     
    3535    // Initial visibility check
    3636    checkVisibility();
     37 
    3738});
    3839
     
    4849        // Add the 'sub-active' class to the current submenu
    4950        $(this).next('.sub-menu').toggleClass('sub-active');
     51
     52       
    5053    });
    5154
     
    6871    });
    6972});
     73
     74function toggleSubMenu() {
     75    let currentlyOpenSubMenu = null; // Variable zum Speichern des aktuell geöffneten Submenus
     76
     77    $('#offcanvas_container #offcanvas_menu_inner > li.menu-item.menu-item-has-children > a').on('click touchend', function(e) {
     78        e.preventDefault(); // Verhindere das Standard-Link-Verhalten
     79
     80        var $currentSubMenu = $(this).next('.sub-menu');
     81        var $parentLi = $(this).parent('li');
     82
     83        // Wenn kein Submenu geöffnet ist oder das aktuelle Submenu nicht offen ist
     84        if (currentlyOpenSubMenu === null || currentlyOpenSubMenu !== $currentSubMenu[0]) {
     85            // Schließe das aktuell geöffnete Submenu, falls vorhanden
     86            if (currentlyOpenSubMenu) {
     87                $(currentlyOpenSubMenu).slideUp().removeClass('sub-active');
     88                $(currentlyOpenSubMenu).parent('li').removeClass('visible'); // Entferne die Klasse 'visible'
     89            }
     90
     91            // Öffne das neue Submenu und speichere es als aktuell geöffnet
     92            $currentSubMenu.slideDown().addClass('sub-active');
     93            $parentLi.addClass('visible'); // Füge die Klasse 'visible' hinzu
     94            currentlyOpenSubMenu = $currentSubMenu[0]; // Speichere das aktuelle Submenu
     95        } else {
     96            // Wenn das aktuelle Submenu bereits offen ist, schließe es
     97            $currentSubMenu.slideUp().removeClass('sub-active');
     98            $parentLi.removeClass('visible'); // Entferne die Klasse 'visible'
     99            currentlyOpenSubMenu = null; // Setze die Variable zurück
     100        }
     101    });
     102}
  • aweos-offcanvas-menu/trunk/readme.txt

    r3230243 r3230271  
    88Requires: jQuery
    99Stable tag: trunk
    10 Version: 2.0.1
     10Version: 2.0.2
    1111License: GPL v2 or later
    1212License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     
    5151== Changelog ==
    5252
     53### 2.0.2
     54* Ensured only one submenu can be opened at a time, improving navigation clarity
     55* Closed submenus automatically when switching to a different menu item
     56* Enhanced user experience by preventing overlapping or multiple open submenus
     57* Retained smooth scrolling and interaction for nested menu structures
     58
    5359### 2.0.1
    5460* Fixed scrollbar behavior for mobile devices
Note: See TracChangeset for help on using the changeset viewer.