Skip to content
GitLab
Erkunden
Anmelden
Registrieren
Primärnavigation
Suchen oder aufrufen …
Projekt
Menu
Verwalten
Aktivität
Mitglieder
Labels
Planen
Tickets
12
Ticketübersichten
Meilensteine
Wiki
Code
Merge Requests
0
Repository
Branch
Commits
Tags
Repository-Diagramm
Revisionen vergleichen
Build
Pipelines
Aufgaben
Pipeline-Zeitpläne
Artefakte
Bereitstellung
Releases
Betreiben
Umgebungen
Überwachen
Vorfälle
Service-Desk
Analysieren
Wertschöpfungskettenanalyse
Mitwirkenden-Analyse
CI/CD-Analyse
Repository-Analysen
Hilfe
Hilfe
Support
GitLab-Dokumentation
GitLab-Pläne vergleichen
Community-Forum
Zu GitLab beitragen
Feedback geben
Tastenkürzel
?
Code-Schnipsel
Gruppen
Projekte
Show more breadcrumbs
QUIQQER
Menu
Commits
cf65fdfc
Commit
cf65fdfc
erstellt
vor 2 Jahren
von
Michael Danielczok
Dateien durchsuchen
Optionen
Downloads
Patches
Einfaches Diff
feat: Auto open nav tab item by using #open_ in url.
Übergeordneter
d9657157
No related branches found
Branches enthält Commit
No related tags found
Tags enthält Commit
Keine zugehörigen Merge Requests gefunden
Änderungen
2
Leerzeichenänderungen ausblenden
Inline
Nebeneinander
2 geänderte Dateien
README.md
+10
-0
10 Ergänzungen, 0 Löschungen
README.md
bin/Controls/NavTabs.js
+30
-4
30 Ergänzungen, 4 Löschungen
bin/Controls/NavTabs.js
werden angezeigt
mit
40 Ergänzungen
und
4 Löschungen
README.md
+
10
−
0
Zeige Datei @
cf65fdfc
...
...
@@ -112,4 +112,14 @@ $Menu->appendHTML(
data-qui-options-touch=0
data-qui-options-buttonids=mobileMenu
}
```
**NavTabs and NavTabsVertical - auto open and scroll to element**
Every nav tab content has an url conform ID (title, it comes from brick entries).
You can use it to target this element. Simply place
`#open_`
before your title in the url.
The page will be scrolled to the element if it is not in viewport.
```
html
<a
href=
"www.example.com/subpage#open_myTarget"
>
Open "myTarget" element
</a>
```
\ No newline at end of file
This diff is collapsed.
Zum Erweitern klicken.
bin/Controls/NavTabs.js
+
30
−
4
Zeige Datei @
cf65fdfc
/**
* Navigation tabs control
*
* Every nav tab content has an url conform ID (title, it comes from brick entries).
* You can use it to target this element. Simply place `#open_` before your title in the url.
* The page will be scrolled to the element if it is not in viewport.
*
* Example: <a href="www.example.com/subpage#open_myTarget">Open "myTarget" element</a>
*
* @module package/quiqqer/menu/bin/Controls/NavTabs
* @author www.pcsg.de (Michael Danielczok)
*/
...
...
@@ -70,12 +76,17 @@ define('package/quiqqer/menu/bin/Controls/NavTabs', [
let
queryString
=
window
.
location
.
hash
;
if
(
queryString
)
{
queryString
=
decodeURI
(
queryString
);
const
NavTabItem
=
this
.
navTab
.
querySelector
(
'
[href="
'
+
queryString
+
'
"]
'
);
const
target
=
queryString
.
substr
(
1
);
if
(
queryString
&&
queryString
.
substr
(
0
,
6
)
===
'
#open_
'
)
{
const
target
=
decodeURI
(
queryString
.
substr
(
6
));
const
NavTabItem
=
this
.
navTab
.
querySelector
(
'
[href="#
'
+
target
+
'
"]
'
);
if
(
NavTabItem
)
{
if
(
!
this
.
$isInViewport
(
Elm
))
{
new
Fx
.
Scroll
(
window
,
{
duration
:
500
}).
toElement
(
Elm
);
}
self
.
$setNavItemPos
(
NavTabItem
.
parentElement
);
self
.
toggle
(
NavTabItem
.
parentElement
,
target
);
}
...
...
@@ -302,6 +313,21 @@ define('package/quiqqer/menu/bin/Controls/NavTabs', [
marginLeft
=
window
.
getComputedStyle
(
Item
,
null
).
getPropertyValue
(
'
padding-left
'
);
new
Fx
.
Scroll
(
this
.
navTab
).
start
(
Item
.
offsetLeft
-
parseInt
(
paddingLeft
)
-
parseInt
(
marginLeft
),
0
);
},
/**
* Check if element is in viewport
* @param element
* @return {boolean}
*/
$isInViewport
:
function
(
element
)
{
const
rect
=
element
.
getBoundingClientRect
();
return
(
rect
.
top
>=
0
&&
rect
.
left
>=
0
&&
rect
.
bottom
<=
(
window
.
innerHeight
||
document
.
documentElement
.
clientHeight
)
&&
rect
.
right
<=
(
window
.
innerWidth
||
document
.
documentElement
.
clientWidth
)
);
}
});
});
\ No newline at end of file
This diff is collapsed.
Zum Erweitern klicken.
Vorschau
0%
Wiederholen
oder
Neue Datei anhängen
.
Abbrechen
You are about to add
0
people
to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Kommentar speichern
Abbrechen
Bitte
registrieren
oder
Anmelden
zum Kommentieren