Änderungen von Dokument Show Hide Macro
Zuletzt geändert von jklein am 2025/06/02 14:04
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Objekte (5 geändert, 0 hinzugefügt, 2 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,18 +1,10 @@ 1 1 Wiki macros implementation for simple show/hide of a content with some animations. 2 -This version 2.0 is HTML compatible with the old version, so that existing project could continue styling 2 +This version 2.0 is HTML compatible with the old version, so that existing project could continue styling 3 3 with the same kind of CSS rules. However, it is now based on jQuery, and need requireJS, so it requires 4 4 XWiki 5.x or more. 5 5 6 -{{showhide title="PublicAPI" effect="slide" effectduration="0.5"}} 7 -Inhalt 8 -Inhalt 9 -Inhalt 10 -{{/showhide}} 6 +{{info}}Using ##id="..."## is still supported and provide the same HTML result but it is no more needed to achieve a working animation.{{/info}} 11 11 12 -{{info}} 13 -Using ##id="..."## is still supported and provide the same HTML result but it is no more needed to achieve a working animation. 14 -{{/info}} 15 - 16 16 == Without effect == 17 17 18 18 {{showhide showmessage="Show" hidemessage="Hide" style="background-color: #ccc"}} ... ... @@ -33,7 +33,7 @@ 33 33 34 34 == With a fade in effect == 35 35 36 -{{showhide showmessage="Show" hidemessage="Hide" effect="fade" effectduration="2" style="background-color: #ccc"}} 28 +{{showhide showmessage="Show" hidemessage="Hide" effect="fade" effectduration="2" style="background-color: #ccc"}} 37 37 Here is some hidden content that can become visible 38 38 Here is some hidden content that can become visible 39 39 Here is some hidden content that can become visible ... ... @@ -49,13 +49,11 @@ 49 49 {{/showhide}} 50 50 {{/code}} 51 51 52 -{{info}} 53 -Using ##effect="appear"## is still supported and provide the same behavior 54 -{{/info}} 44 +{{info}}Using ##effect="appear"## is still supported and provide the same behavior{{/info}} 55 55 56 56 == With a sliding down effect == 57 57 58 -{{showhide showmessage="Show" hidemessage="Hide" effect="slide" effectduration="0.5" style="background-color: #ccc"}} 48 +{{showhide showmessage="Show" hidemessage="Hide" effect="slide" effectduration="0.5" style="background-color: #ccc"}} 59 59 Here is some hidden content that can become visible 60 60 Here is some hidden content that can become visible 61 61 Here is some hidden content that can become visible ... ... @@ -71,6 +71,6 @@ 71 71 {{/showhide}} 72 72 {{/code}} 73 73 74 -{{info}} 75 - This effect is equivalent to ##effect="blind"## in the 1.0 macro, so both ##slide## and ##blind## effect are now using the exact same animation.76 - {{/info}}64 +{{info}}This effect is equivalent to ##effect="blind"## in the 1.0 macro, so both ##slide## and ##blind## effect are now using the exact same animation.{{/info}} 65 + 66 +
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -1,26 +1,16 @@ 1 1 require(['jquery'], function($) { 2 - function onClick () { 3 - var button = $(this), 4 - content = button.closest('.showhide-header').next('.showhidecontent'), 5 - effect = button.attr('data-show-effect'), 6 - data = button.data(); 7 - 8 - if ($.inArray(effect, ['toggle', 'fadeToggle', 'slideToggle']) == -1) 9 - effect = 'toggle'; 10 - 11 - data.showHideState = !(('showHideState' in data) ? data.showHideState : content.is(':visible')); 12 - 13 - var message = button.attr(data.showHideState ? 'data-hide-message' : 'data-show-message'); 14 - var icon = data.showHideState ? '▼ ' : '► '; 15 - button.html(icon + message); 16 - 17 - content.stop()[effect](parseInt(button.attr('data-show-duration'))); 18 - 19 - return false; 20 - } 21 - 22 - $(document).ready(function() { 23 - $('.showhidebutton').children('a').on('click', onClick); 24 - }); 2 + function onClick () { 3 + var button = $(this), 4 + content = button.parent().next(), 5 + effect = button.attr('data-show-effect'), 6 + data = button.data(); 7 + if($.inArray(effect,['toggle','fadeToggle','slideToggle']) == -1) effect = 'toggle'; 8 + data.showHideState = !(('showHideState' in data) ? data.showHideState : content.is(':visible')); 9 + button.html(button.attr(data.showHideState ? 'data-hide-message' : 'data-show-message')); 10 + content.stop()[effect](parseInt(button.attr('data-show-duration'))); 11 + return false; 12 + } 13 + $(document).ready(function() { 14 + $('.showhidebutton').children('a').click(onClick); 15 + }); 25 25 }); 26 -
- XWiki.StyleSheetExtension[0]
-
- Pufferstrategie
-
... ... @@ -1,1 +1,0 @@ 1 -long - Code
-
... ... @@ -1,43 +1,0 @@ 1 -.showhide-header { 2 - border: 1px solid #ccc; 3 - background-color: #f7f7f7; 4 - border-radius: 4px 4px 0 0; 5 - padding: 8px 12px; 6 - margin-bottom: 0; 7 -} 8 - 9 -.showhide-header-flex { 10 - display: flex; 11 - justify-content: space-between; 12 - align-items: center; 13 - padding: 6px 0px; 14 - font-weight: bold; 15 -} 16 - 17 -.showhide-title { 18 - flex: 1; 19 - text-align: left; 20 -} 21 - 22 -.showhidebutton a { 23 - text-decoration: none; 24 - cursor: pointer; 25 - font-weight: normal; 26 -} 27 - 28 -.showhidecontent { 29 - border: 1px solid #ccc; 30 - border-top: none; 31 - border-radius: 0 0 4px 4px; 32 - padding: 10px; 33 - background-color: #fff; 34 -} 35 - 36 -.showhide-header:hover { 37 - background-color: #f0f0f0; 38 - cursor: default; 39 -} 40 - 41 -.showhidebutton a:hover { 42 - text-decoration: underline; 43 -} - Content Type
-
... ... @@ -1,1 +1,0 @@ 1 -CSS - Name
-
... ... @@ -1,1 +1,0 @@ 1 -ShowHideMacro Style - Inhalt parsen
-
... ... @@ -1,1 +1,0 @@ 1 -Nein - Benutze diese Erweiterung
-
... ... @@ -1,1 +1,0 @@ 1 -currentPage
- XWiki.WikiMacroClass[0]
-
- Cached
-
... ... @@ -1,1 +1,0 @@ 1 -Nein - Asynchrones Rendern
-
... ... @@ -1,1 +1,0 @@ 1 -Nein - Makro-Code
-
... ... @@ -17,26 +17,18 @@ 17 17 #set($effect = "slideToggle") 18 18 #end 19 19 #set($effectduration = $mathtool.mul(1000,$mparams.effectduration)) 20 -#set($title = $escapetool.xml($mparams.title)) 21 21 (% #if($divstyle && $divstyle!="") style="${divstyle}" #end %) 22 22 ((( 22 +(% class="showhidebutton" %) 23 +((( 23 23 {{html clean=false}} 24 -<div class="showhide-header" 25 - #if($id && $id!="") id="showhideheader${id}" #end 26 - data-show-duration="$effectduration" 27 - data-show-effect="$effect" 28 - data-show-message="$showmessage" 29 - data-hide-message="$hidemessage"> 30 - <div class="showhide-header-flex"> 31 - <div class="showhide-title">$title</div> 32 - <div class="showhide-icon">► $showmessage</div> 33 - </div> 34 -</div> 25 +<a href="javascript:void(0)" #if($id && $id!="")id="showhidebuttontext${id}" #end data-show-duration="$effectduration" data-show-effect="$effect" data-show-message="$showmessage" data-hide-message="$hidemessage">$mparams.showmessage</a> 35 35 {{/html}} 36 -(% class="showhidecontent" #if($id && $id!="")id="showhidecontent${id}" #end#if($xcontext.action != 'edit') style="display: none;"#end %) 27 +))) 28 +(% class="showhidecontent" #if($id && $id!="")id="showhidecontent${id}" #end style="display: none;" %) 37 37 ((( 38 38 ((( 39 - {{wikimacrocontent/}}31 +$xcontext.macro.content 40 40 ))) 41 41 ))) 42 42 ))) - Makroinhaltstyp
-
... ... @@ -1,1 +1,0 @@ 1 -Wiki - Makrobeschreibung
-
... ... @@ -1,1 +1,1 @@ 1 -Show /hide content with animations.1 +Show Hide Macro
- XWiki.WikiMacroParameterClass[0]
-
- Parameter-Vorgabe
-
... ... @@ -1,1 +1,1 @@ 1 - Ausklappen1 +Show !
- XWiki.WikiMacroParameterClass[1]
-
- Parameter-Vorgabe
-
... ... @@ -1,1 +1,1 @@ 1 - Einklappen1 +Hide !
- XWiki.WikiMacroParameterClass[3]
-
- Parameter-Vorgabe
-
... ... @@ -1,1 +1,1 @@ 1 - slide1 +toggle
- XWiki.WikiMacroParameterClass[7]
-
- Parameter verpflichtend
-
... ... @@ -1,1 +1,0 @@ 1 -Nein - Parameter-Name
-
... ... @@ -1,1 +1,0 @@ 1 -title