SlideShare a Scribd company logo
1 of 20
Confluence – Improving
Space Navigation
London AUG – 28.10.2013

Charles Hall
Documentation Manager
Does this seem familiar?
Article: The case against vertical navigation
Inspiration
Live Demo
If the live demo went wrong...
Starting Point

{children}
Transforming a list into a menu

About 162,000,000 results
http://www.farajoomla.com/2010/05/dropdown-mwith-jquery-and-css/
The macro
## Macro name: dynamic-menu
## Macro title: Dynamic Menu
## Description: This macro will transform a specially marked child page list (generated by the children macro)
into a dynamic menu.
## Categories: Navigation
## Macro has a body: Y
## Macro Body processing: Rendered
##
## @noparams

Include pages

<p><ac:macro ac:name="include"><ac:default-parameter>wiki:dynamic menu css</ac:defaultparameter></ac:macro></p>
<p><ac:macro ac:name="include"><ac:default-parameter>wiki:dynamic menu jquery</ac:defaultparameter></ac:macro></p>
<div class='custom_menu_container ui-corner-all'>
$body
</div>
<div id='shadow_menu'>&nbsp;</div>

Container
Using the macro

Body of macro:
Insert a {children} macro
Set your parameters:
• Root page
• Depth to show (max 3)
Why the dependencies?

All the tech is client-side, no Velocity
Easier editing
Version history maintained
Separation between CSS & jQuery
User macro wrapper allows easy
addition from the macro browser
Dynamic menu css
/* Colours:
#532F64 - Purple
#98005D - Pink
#7F004D - Cerise
#EDEAEF - Pinky grey
#C0B3C6 - Purply grey
#C0C0C0 - Dark grey
*/
.custom_menu_container {
background: #532F64;
min-height: 30px;
padding: 5px 10px 0px 10px;
margin-bottom: 10px;
position: absolute;
}

.custom_menu_container ul {
display: block;
list-style: none inside;
z-index: 1;
}
/* MENU LEVEL ONE */
/* Purple background, white text. Highlight in pink */
.custom_menu_container > ul { position: relative; }
.custom_menu_container > ul > li { font-weight: 500; float: left; zoom: 1; background: #532F64; }
.custom_menu_container > ul > li > a:hover { color: #7F004D; }
.custom_menu_container > ul > li > a:active { color: #7F004D; }
.custom_menu_container > ul > li > a { display: block; padding: 4px 8px; border-right: 1px solid #ffffff; }
.custom_menu_container > ul > li:last-child > a { border-right: none; } /* Doesn't work in IE */
.custom_menu_container > ul > li.hover, .custom_menu_container > ul > li:hover { background: #7F004D; position: relative; }
.custom_menu_container > ul > li.hover > a, .custom_menu_container > ul > li:hover > a { color: #ffffff; }
/* MENU LEVEL TWO */
/* Light pink background, purple text. Highlight with darker pink background, purple text */
.custom_menu_container > ul > li > ul {width: 250px; display: none; position: absolute; top: 100%; left: 0;}
.custom_menu_container > ul > li > ul > li { background: #EDEAEF; border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0; borderbottom: 1px solid #ccc; float: none; padding-right: 5px; font-size:90%; }
.custom_menu_container > ul > li > ul > li:last-child { border-bottom: 1px solid #C0C0C0; }
.custom_menu_container > ul > li > ul > li > a { display: inline-block; padding: 4px 8px; border-right: none; width: 100%; color: #532F64; fontweight: 400; } /* IE 6 and 7 Needs Inline Block */
.custom_menu_container > ul > li > ul > li.hover, .custom_menu_container > ul > li > ul > li:hover { background: #ffffff; position: relative; }
.custom_menu_container > ul > li > div > ul > li.hover > a, .custom_menu_container > ul > li > ul > li:hover > a { color: #532F64; }

/* MENU LEVEL THREE */
/* Light pink background, purple text. Highlight in darker pink background, bright pink text */
.custom_menu_container > ul > li > ul > li > ul {display: none; position: absolute; top: 0; left: 100%; }
.custom_menu_container > ul > li > ul > li > ul > li { background: #EDEAEF; border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;
border-bottom: 1px solid #ccc; float: none; padding-right: 8px; font-size:80%; }
.custom_menu_container > ul > li > ul > li > ul > li:first-child { border-top: 1px solid #C0C0C0; }
.custom_menu_container > ul > li > ul > li > ul > li:last-child { border-bottom: 1px solid #C0C0C0; }
.custom_menu_container > ul > li > ul > li > ul > li > a { display: inline-block; padding: 4px 8px; border-right: none; width: 100%; color: #98005D;
font-weight: 400; } /* IE 6 and 7 Needs Inline Block */
.custom_menu_container > ul > li > ul > li > ul > li.hover, .custom_menu_container > ul > li > ul > li > ul > li:hover { background: #C0B3C6;
position: relative; }
.custom_menu_container > ul > li > ul > li > ul > li.hover > a, .custom_menu_container > ul > li > ul > li > ul > li:hover > a { color: #98005D; }
/* ADDITIONAL LEVELS */
/* Hidden */
.custom_menu_container > ul > li > ul > li > ul > li > ul { display:none; }
Dynamic menu jquery
<script type="text/javascript“>
//<![CDATA[
AJS.toInit(function(){
//Remove whitespace in the custom container
AJS.$('div.custom_menu_container p:empty').remove();
//In a page with layout options which include a header, force header to accommodate height of menu
menuHeight = AJS.$('div.custom_menu_container').outerHeight(true) + 5;
AJS.$('div#shadow_menu').css({'min-height':menuHeight+'px'});

//Override Confluence list styling (needs to be actioned once page has loaded)
AJS.$('div.custom_menu_container ul').css({'list-style-type':'none','padding':'0'});
AJS.$('div.custom_menu_container a').css({'text-decoration':'none'});
AJS.$('div.custom_menu_container > ul > li > a').css({'color':'#ffffff'});
AJS.$('div.custom_menu_container > ul > li > ul > li:hover > a').css({'color':'#60ff87'});
//Add rounded corners to 2nd & 3rd level menu items
AJS.$('div.custom_menu_container > ul > li li:first-child').addClass('ui-corner-tl ui-corner-tr');
AJS.$('div.custom_menu_container > ul > li li:last-child').addClass('ui-corner-bl ui-corner-br');
//Hover for 1st level items (show 2nd level directly underneath)
AJS.$('div.custom_menu_container > ul > li').hover(function(){
AJS.$('ul:first', this).css({'display':'block'});
// show the first sub-menu in this item
AJS.$('ul:first > li > ul', this).css({'display':'none'});
// hide any lower levels in the sub-menu
}, function(){
AJS.$('ul:first', this).css({'display':'none'});
// not hovering any more, so hide the first sub-menu if there
was one
});
//Hover for 2nd level items (show 3rd level to the right)
AJS.$('div.custom_menu_container > ul > li > ul > li').hover(function(){
AJS.$('ul:first', this).css({'display':'block','position':'absolute','top':'0','left':'100%','width':'100%'});
}, function(){
AJS.$('ul:first', this).css({'display':'none'});
});
//Add the >> symbol to show users any 3rd level menu options
AJS.$('div.custom_menu_container > ul > li > ul > li:has(ul)').find('a:first').append('&nbsp;&raquo;');
});
//]]>
</script>
Results
Including the menu on all pages
Menu page – Moving to the content area

Additional wrapper (hidden)

Note: Controlling the opacity provides a non jerky way of re-positioning the menu to the main content area.
Gotchas!
User chooses to hide left side bar
Page layout options

Root page name changes...

Evolution
Adapt to suit mobile devices (no hover)
Thank you.
User macro: http://pastebin.com/untDGa1n
Dynamic menu css: http://pastebin.com/6Yu0Q6e6
Dynamic menu jquery: http://pastebin.com/yeHCnP6B

We are recruiting: Content Development Specialist
Visit http://www.openbet.com/careers/vacancies

More Related Content

What's hot

Joomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus PresentationJoomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus PresentationAndy Wallace
 
Clever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and TricksClever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and TricksThemePartner
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesAndy Wallace
 
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...Nicholas Dionysopoulos
 
PRESENTACIÓ CURS 2010-2011
PRESENTACIÓ CURS 2010-2011PRESENTACIÓ CURS 2010-2011
PRESENTACIÓ CURS 2010-2011guest7ee1090
 
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...EPIC
 
16.mysql stored procedures in laravel
16.mysql stored procedures in laravel16.mysql stored procedures in laravel
16.mysql stored procedures in laravelRazvan Raducanu, PhD
 
In some simple steps, your site can stand out from the rest. Here's how...
In some simple steps, your site can stand out from the rest. Here's how... In some simple steps, your site can stand out from the rest. Here's how...
In some simple steps, your site can stand out from the rest. Here's how... British Council
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con RailsSvet Ivantchev
 
2014 blackstone presentation
 2014 blackstone presentation 2014 blackstone presentation
2014 blackstone presentationClaude Gaudin
 
7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!Bartłomiej Krztuk
 
Galen Gondolfi- Disruptive Diner: Local Investment, Local Wealth
Galen Gondolfi- Disruptive Diner: Local Investment, Local WealthGalen Gondolfi- Disruptive Diner: Local Investment, Local Wealth
Galen Gondolfi- Disruptive Diner: Local Investment, Local WealthOpenly Disruptive
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose moneyPiotr Horzycki
 
Understanding form helpers
Understanding form helpersUnderstanding form helpers
Understanding form helpersBruno Almeida
 
Building scalable products with WordPress - WordCamp London 2018
Building scalable products with WordPress - WordCamp London 2018Building scalable products with WordPress - WordCamp London 2018
Building scalable products with WordPress - WordCamp London 2018Elliot Taylor
 
Desenvolvimento web usando django
Desenvolvimento web usando djangoDesenvolvimento web usando django
Desenvolvimento web usando djangoyurimalheiros
 

What's hot (20)

Joomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus PresentationJoomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus Presentation
 
Clever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and TricksClever Joomla! Templating Tips and Tricks
Clever Joomla! Templating Tips and Tricks
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
 
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
Joomla! Frappe - Κατασκευή εφαρμογών για το Joomla! χωρίς να τραβάτε τα μαλιά...
 
Kasdorf, EPUB 3: Not Your Father’s EPUB
Kasdorf, EPUB 3: Not Your Father’s EPUBKasdorf, EPUB 3: Not Your Father’s EPUB
Kasdorf, EPUB 3: Not Your Father’s EPUB
 
PRESENTACIÓ CURS 2010-2011
PRESENTACIÓ CURS 2010-2011PRESENTACIÓ CURS 2010-2011
PRESENTACIÓ CURS 2010-2011
 
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...
Why Ethnography Can Turn Fear of Change into Enthusiasm by Antropologerne, De...
 
Imageslider
ImagesliderImageslider
Imageslider
 
16.mysql stored procedures in laravel
16.mysql stored procedures in laravel16.mysql stored procedures in laravel
16.mysql stored procedures in laravel
 
In some simple steps, your site can stand out from the rest. Here's how...
In some simple steps, your site can stand out from the rest. Here's how... In some simple steps, your site can stand out from the rest. Here's how...
In some simple steps, your site can stand out from the rest. Here's how...
 
Retrato de xavi.
Retrato de xavi.Retrato de xavi.
Retrato de xavi.
 
Interface de Voz con Rails
Interface de Voz con RailsInterface de Voz con Rails
Interface de Voz con Rails
 
2014 blackstone presentation
 2014 blackstone presentation 2014 blackstone presentation
2014 blackstone presentation
 
7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!7 reasons why developers should love Joomla!
7 reasons why developers should love Joomla!
 
Galen Gondolfi- Disruptive Diner: Local Investment, Local Wealth
Galen Gondolfi- Disruptive Diner: Local Investment, Local WealthGalen Gondolfi- Disruptive Diner: Local Investment, Local Wealth
Galen Gondolfi- Disruptive Diner: Local Investment, Local Wealth
 
How to count money using PHP and not lose money
How to count money using PHP and not lose moneyHow to count money using PHP and not lose money
How to count money using PHP and not lose money
 
Understanding form helpers
Understanding form helpersUnderstanding form helpers
Understanding form helpers
 
$.Template
$.Template$.Template
$.Template
 
Building scalable products with WordPress - WordCamp London 2018
Building scalable products with WordPress - WordCamp London 2018Building scalable products with WordPress - WordCamp London 2018
Building scalable products with WordPress - WordCamp London 2018
 
Desenvolvimento web usando django
Desenvolvimento web usando djangoDesenvolvimento web usando django
Desenvolvimento web usando django
 

Viewers also liked

Nimbus IITl @ 9910008812 noida sec 168
Nimbus IITl @ 9910008812 noida sec 168Nimbus IITl @ 9910008812 noida sec 168
Nimbus IITl @ 9910008812 noida sec 168Isha Amastha
 
Landmark@9910003232
Landmark@9910003232Landmark@9910003232
Landmark@9910003232Isha Amastha
 
sunlight
sunlightsunlight
sunlightlily
 
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...Positive
 
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Positive
 
NEW COMMERCIAL@9910008812 NOIDA
NEW COMMERCIAL@9910008812 NOIDANEW COMMERCIAL@9910008812 NOIDA
NEW COMMERCIAL@9910008812 NOIDAIsha Amastha
 
Carrot,egg & coffee bean
Carrot,egg & coffee beanCarrot,egg & coffee bean
Carrot,egg & coffee beanbhkua13
 
Time management for misfits and dreamers for catalyst ranch
Time management for misfits and dreamers for catalyst ranchTime management for misfits and dreamers for catalyst ranch
Time management for misfits and dreamers for catalyst ranchDavid Kaiser, Ph.D., P.C.C.
 
דרום העיר לאנשים
דרום העיר לאנשיםדרום העיר לאנשים
דרום העיר לאנשיםSharon Rotbard
 
The new human web: Web 2.0, blogs and forums
The new human web: Web 2.0, blogs and forumsThe new human web: Web 2.0, blogs and forums
The new human web: Web 2.0, blogs and forumsSusan Anderson
 
Особенности египетской архитектуры
Особенности египетской архитектурыОсобенности египетской архитектуры
Особенности египетской архитектурыfonelene elengone
 

Viewers also liked (20)

Nimbus IITl @ 9910008812 noida sec 168
Nimbus IITl @ 9910008812 noida sec 168Nimbus IITl @ 9910008812 noida sec 168
Nimbus IITl @ 9910008812 noida sec 168
 
Socrates
SocratesSocrates
Socrates
 
Landmark@9910003232
Landmark@9910003232Landmark@9910003232
Landmark@9910003232
 
sunlight
sunlightsunlight
sunlight
 
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...
Stanislava Ilić, Master rad - ANALIZA TRZISTA ONLINE PLACANJA U SRBIJI KOMPAN...
 
Who Am I?
Who Am I?Who Am I?
Who Am I?
 
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
Analiza primene agilnih metodologija u softverskim organizacijama vojvodjansk...
 
NEW COMMERCIAL@9910008812 NOIDA
NEW COMMERCIAL@9910008812 NOIDANEW COMMERCIAL@9910008812 NOIDA
NEW COMMERCIAL@9910008812 NOIDA
 
How to make ideas happen webinar
How to make ideas happen webinarHow to make ideas happen webinar
How to make ideas happen webinar
 
Carrot,egg & coffee bean
Carrot,egg & coffee beanCarrot,egg & coffee bean
Carrot,egg & coffee bean
 
Move in NOW - Beach Front Resort
Move in NOW - Beach Front ResortMove in NOW - Beach Front Resort
Move in NOW - Beach Front Resort
 
Time management for misfits and dreamers for catalyst ranch
Time management for misfits and dreamers for catalyst ranchTime management for misfits and dreamers for catalyst ranch
Time management for misfits and dreamers for catalyst ranch
 
דרום העיר לאנשים
דרום העיר לאנשיםדרום העיר לאנשים
דרום העיר לאנשים
 
The new human web: Web 2.0, blogs and forums
The new human web: Web 2.0, blogs and forumsThe new human web: Web 2.0, blogs and forums
The new human web: Web 2.0, blogs and forums
 
Limits
LimitsLimits
Limits
 
Alexander the Great
Alexander the GreatAlexander the Great
Alexander the Great
 
Audited financials-apr-08-2010
Audited financials-apr-08-2010Audited financials-apr-08-2010
Audited financials-apr-08-2010
 
Elements of his divinity
Elements of his divinityElements of his divinity
Elements of his divinity
 
Особенности египетской архитектуры
Особенности египетской архитектурыОсобенности египетской архитектуры
Особенности египетской архитектуры
 
Evaluación v3
Evaluación v3Evaluación v3
Evaluación v3
 

Similar to Confluence - Improving Space Navigation. London AUG October 2013

Simple Blue Blog Template XML 的副本
Simple Blue Blog Template XML 的副本Simple Blue Blog Template XML 的副本
Simple Blue Blog Template XML 的副本a5494535
 
CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the WorldJonathan Snook
 
Worth the hype - styled components
Worth the hype - styled componentsWorth the hype - styled components
Worth the hype - styled componentskathrinholzmann
 
CSS3 and jQuery
CSS3 and jQueryCSS3 and jQuery
CSS3 and jQuerypsophy
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpMiroslav Miskovic
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpMiroslav Miskovic
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpMiroslav Miskovic
 
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docx
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docxWeek ThreeExpress Holidayscssstyle.csshtml{ height 100.docx
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docxphilipnelson29183
 
Finding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with CompassFinding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with CompassClaudina Sarahe
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrJens-Christian Fischer
 
Componentization css angular
Componentization css angularComponentization css angular
Componentization css angularDavid Amend
 
Use my code and modify it to do this taskdatabase.php php .pdf
Use my code and modify it to do this taskdatabase.php php  .pdfUse my code and modify it to do this taskdatabase.php php  .pdf
Use my code and modify it to do this taskdatabase.php php .pdfsaknizam
 
Software programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS filesSoftware programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS filesDinu Suman
 
Class 3 create an absolute layout with css abs position (aptana)
Class 3  create an absolute layout with css abs position (aptana)Class 3  create an absolute layout with css abs position (aptana)
Class 3 create an absolute layout with css abs position (aptana)Erin M. Kidwell
 
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...dezyneecole
 
Blog skins396734
Blog skins396734Blog skins396734
Blog skins396734pantangmrny
 
Xlrays online web tutorials
Xlrays online web tutorialsXlrays online web tutorials
Xlrays online web tutorialsYogesh Gupta
 

Similar to Confluence - Improving Space Navigation. London AUG October 2013 (20)

Simple Blue Blog Template XML 的副本
Simple Blue Blog Template XML 的副本Simple Blue Blog Template XML 的副本
Simple Blue Blog Template XML 的副本
 
CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the World
 
Worth the hype - styled components
Worth the hype - styled componentsWorth the hype - styled components
Worth the hype - styled components
 
Convidar para page !!
Convidar para page !!Convidar para page !!
Convidar para page !!
 
CSS3 and jQuery
CSS3 and jQueryCSS3 and jQuery
CSS3 and jQuery
 
Linhtinh
LinhtinhLinhtinh
Linhtinh
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press php
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press php
 
Posts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press phpPosts ‹ teslaecoenergy — word press php
Posts ‹ teslaecoenergy — word press php
 
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docx
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docxWeek ThreeExpress Holidayscssstyle.csshtml{ height 100.docx
Week ThreeExpress Holidayscssstyle.csshtml{ height 100.docx
 
Finding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with CompassFinding a Better Way to CSS: Navigating Sass with Compass
Finding a Better Way to CSS: Navigating Sass with Compass
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
 
Componentization css angular
Componentization css angularComponentization css angular
Componentization css angular
 
Use my code and modify it to do this taskdatabase.php php .pdf
Use my code and modify it to do this taskdatabase.php php  .pdfUse my code and modify it to do this taskdatabase.php php  .pdf
Use my code and modify it to do this taskdatabase.php php .pdf
 
Software programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS filesSoftware programming tools for creating/managing CSS files
Software programming tools for creating/managing CSS files
 
Class 3 create an absolute layout with css abs position (aptana)
Class 3  create an absolute layout with css abs position (aptana)Class 3  create an absolute layout with css abs position (aptana)
Class 3 create an absolute layout with css abs position (aptana)
 
Exp of mmt
Exp of mmtExp of mmt
Exp of mmt
 
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
Kirtesh Khandelwal,Project on HTML and CSS ,Final Year BCA , Dezyne E'cole Co...
 
Blog skins396734
Blog skins396734Blog skins396734
Blog skins396734
 
Xlrays online web tutorials
Xlrays online web tutorialsXlrays online web tutorials
Xlrays online web tutorials
 

Recently uploaded

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Recently uploaded (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

Confluence - Improving Space Navigation. London AUG October 2013

  • 1. Confluence – Improving Space Navigation London AUG – 28.10.2013 Charles Hall Documentation Manager
  • 2. Does this seem familiar?
  • 3. Article: The case against vertical navigation
  • 6. If the live demo went wrong...
  • 8. Transforming a list into a menu About 162,000,000 results http://www.farajoomla.com/2010/05/dropdown-mwith-jquery-and-css/
  • 9. The macro ## Macro name: dynamic-menu ## Macro title: Dynamic Menu ## Description: This macro will transform a specially marked child page list (generated by the children macro) into a dynamic menu. ## Categories: Navigation ## Macro has a body: Y ## Macro Body processing: Rendered ## ## @noparams Include pages <p><ac:macro ac:name="include"><ac:default-parameter>wiki:dynamic menu css</ac:defaultparameter></ac:macro></p> <p><ac:macro ac:name="include"><ac:default-parameter>wiki:dynamic menu jquery</ac:defaultparameter></ac:macro></p> <div class='custom_menu_container ui-corner-all'> $body </div> <div id='shadow_menu'>&nbsp;</div> Container
  • 10. Using the macro Body of macro: Insert a {children} macro Set your parameters: • Root page • Depth to show (max 3)
  • 11. Why the dependencies? All the tech is client-side, no Velocity Easier editing Version history maintained Separation between CSS & jQuery User macro wrapper allows easy addition from the macro browser
  • 12. Dynamic menu css /* Colours: #532F64 - Purple #98005D - Pink #7F004D - Cerise #EDEAEF - Pinky grey #C0B3C6 - Purply grey #C0C0C0 - Dark grey */ .custom_menu_container { background: #532F64; min-height: 30px; padding: 5px 10px 0px 10px; margin-bottom: 10px; position: absolute; } .custom_menu_container ul { display: block; list-style: none inside; z-index: 1; }
  • 13. /* MENU LEVEL ONE */ /* Purple background, white text. Highlight in pink */ .custom_menu_container > ul { position: relative; } .custom_menu_container > ul > li { font-weight: 500; float: left; zoom: 1; background: #532F64; } .custom_menu_container > ul > li > a:hover { color: #7F004D; } .custom_menu_container > ul > li > a:active { color: #7F004D; } .custom_menu_container > ul > li > a { display: block; padding: 4px 8px; border-right: 1px solid #ffffff; } .custom_menu_container > ul > li:last-child > a { border-right: none; } /* Doesn't work in IE */ .custom_menu_container > ul > li.hover, .custom_menu_container > ul > li:hover { background: #7F004D; position: relative; } .custom_menu_container > ul > li.hover > a, .custom_menu_container > ul > li:hover > a { color: #ffffff; } /* MENU LEVEL TWO */ /* Light pink background, purple text. Highlight with darker pink background, purple text */ .custom_menu_container > ul > li > ul {width: 250px; display: none; position: absolute; top: 100%; left: 0;} .custom_menu_container > ul > li > ul > li { background: #EDEAEF; border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0; borderbottom: 1px solid #ccc; float: none; padding-right: 5px; font-size:90%; } .custom_menu_container > ul > li > ul > li:last-child { border-bottom: 1px solid #C0C0C0; } .custom_menu_container > ul > li > ul > li > a { display: inline-block; padding: 4px 8px; border-right: none; width: 100%; color: #532F64; fontweight: 400; } /* IE 6 and 7 Needs Inline Block */ .custom_menu_container > ul > li > ul > li.hover, .custom_menu_container > ul > li > ul > li:hover { background: #ffffff; position: relative; } .custom_menu_container > ul > li > div > ul > li.hover > a, .custom_menu_container > ul > li > ul > li:hover > a { color: #532F64; } /* MENU LEVEL THREE */ /* Light pink background, purple text. Highlight in darker pink background, bright pink text */ .custom_menu_container > ul > li > ul > li > ul {display: none; position: absolute; top: 0; left: 100%; } .custom_menu_container > ul > li > ul > li > ul > li { background: #EDEAEF; border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0; border-bottom: 1px solid #ccc; float: none; padding-right: 8px; font-size:80%; } .custom_menu_container > ul > li > ul > li > ul > li:first-child { border-top: 1px solid #C0C0C0; } .custom_menu_container > ul > li > ul > li > ul > li:last-child { border-bottom: 1px solid #C0C0C0; } .custom_menu_container > ul > li > ul > li > ul > li > a { display: inline-block; padding: 4px 8px; border-right: none; width: 100%; color: #98005D; font-weight: 400; } /* IE 6 and 7 Needs Inline Block */ .custom_menu_container > ul > li > ul > li > ul > li.hover, .custom_menu_container > ul > li > ul > li > ul > li:hover { background: #C0B3C6; position: relative; } .custom_menu_container > ul > li > ul > li > ul > li.hover > a, .custom_menu_container > ul > li > ul > li > ul > li:hover > a { color: #98005D; } /* ADDITIONAL LEVELS */ /* Hidden */ .custom_menu_container > ul > li > ul > li > ul > li > ul { display:none; }
  • 14. Dynamic menu jquery <script type="text/javascript“> //<![CDATA[ AJS.toInit(function(){ //Remove whitespace in the custom container AJS.$('div.custom_menu_container p:empty').remove(); //In a page with layout options which include a header, force header to accommodate height of menu menuHeight = AJS.$('div.custom_menu_container').outerHeight(true) + 5; AJS.$('div#shadow_menu').css({'min-height':menuHeight+'px'}); //Override Confluence list styling (needs to be actioned once page has loaded) AJS.$('div.custom_menu_container ul').css({'list-style-type':'none','padding':'0'}); AJS.$('div.custom_menu_container a').css({'text-decoration':'none'}); AJS.$('div.custom_menu_container > ul > li > a').css({'color':'#ffffff'}); AJS.$('div.custom_menu_container > ul > li > ul > li:hover > a').css({'color':'#60ff87'}); //Add rounded corners to 2nd & 3rd level menu items AJS.$('div.custom_menu_container > ul > li li:first-child').addClass('ui-corner-tl ui-corner-tr'); AJS.$('div.custom_menu_container > ul > li li:last-child').addClass('ui-corner-bl ui-corner-br');
  • 15. //Hover for 1st level items (show 2nd level directly underneath) AJS.$('div.custom_menu_container > ul > li').hover(function(){ AJS.$('ul:first', this).css({'display':'block'}); // show the first sub-menu in this item AJS.$('ul:first > li > ul', this).css({'display':'none'}); // hide any lower levels in the sub-menu }, function(){ AJS.$('ul:first', this).css({'display':'none'}); // not hovering any more, so hide the first sub-menu if there was one }); //Hover for 2nd level items (show 3rd level to the right) AJS.$('div.custom_menu_container > ul > li > ul > li').hover(function(){ AJS.$('ul:first', this).css({'display':'block','position':'absolute','top':'0','left':'100%','width':'100%'}); }, function(){ AJS.$('ul:first', this).css({'display':'none'}); }); //Add the >> symbol to show users any 3rd level menu options AJS.$('div.custom_menu_container > ul > li > ul > li:has(ul)').find('a:first').append('&nbsp;&raquo;'); }); //]]> </script>
  • 17. Including the menu on all pages
  • 18. Menu page – Moving to the content area Additional wrapper (hidden) Note: Controlling the opacity provides a non jerky way of re-positioning the menu to the main content area.
  • 19. Gotchas! User chooses to hide left side bar Page layout options Root page name changes... Evolution Adapt to suit mobile devices (no hover)
  • 20. Thank you. User macro: http://pastebin.com/untDGa1n Dynamic menu css: http://pastebin.com/6Yu0Q6e6 Dynamic menu jquery: http://pastebin.com/yeHCnP6B We are recruiting: Content Development Specialist Visit http://www.openbet.com/careers/vacancies