This is a documentation for Board Game Arena: play board games online !
ExpandableSection: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Studio_Framework_Navigation}} | |||
== Example == | == Example == | ||
In <tt>mygame_mygame.tpl</tt> (the border is not required): | In '''<tt>mygame_mygame.tpl</tt>''' (the border is not required): | ||
<pre> | <pre> | ||
<div id="my_expandable" style="border: 1px solid black"> | |||
<a href="#" id="my_click_to_toggle" class="expandabletoggle expandablearrow"> | |||
<div class="icon20"></div> | |||
</a> | |||
<div id="my_hidden_content" class="expandablecontent"> | |||
Here's the hidden content | |||
</div> | </div> | ||
</div> | |||
</pre> | </pre> | ||
In <tt>mygame.js</tt>: | In '''<tt>mygame.js</tt>''': | ||
<pre> | <pre> | ||
define([ | |||
ebg/expandablesection | |||
], | |||
... | |||
</pre> | </pre> | ||
<pre> | <pre> | ||
this.expanded = new ebg.expandablesection(); | |||
this.expanded.create(this, "my_expandable"); | |||
this.expanded.expand(); // show | |||
this.expanded.collapse(); // hide | |||
this.expanded.toggle(); // switch show/hide | |||
</pre> | </pre> | ||
== Notes == | === Notes === | ||
* All of the inner parts of the expandable div must have ids so dojo.query can find them. | * All of the inner parts of the expandable div must have ids so dojo.query can find them. | ||
* The section already starts with click-to-toggle behavior, so you probably won't need to toggle in your own code. Just set the initial state in your setup method. | * The section already starts with click-to-toggle behavior, so you probably won't need to toggle in your own code. Just set the initial state in your setup method. | ||
* Source code can be found here : https://x.boardgamearena.net/data/themereleases/220811-1000/js/modules/expandablesection.js | |||
== Helper Code == | |||
This doesn't appear to be part of the BGA framework, but might make creating the above code easer and more readable. | |||
In '''<tt>mygame_mygame.tpl</tt>''': | |||
<pre> | |||
var jstpl_expandablesection = '\ | |||
<div id="${id}">\ | |||
<a href="#" id="toggle_${id}" class="expandabletoggle expandablearrow">\ | |||
<div class="icon20"></div>\ | |||
</a>\ | |||
<div id="content_${id}" class="expandablecontent">\ | |||
${content}\ | |||
</div>\ | |||
</div>'; | |||
</pre> | |||
In '''<tt>mygame.js</tt>''': | |||
<pre> | |||
placeExpandableSection: function(parent_id, id, content) { | |||
html = this.format_block('jstpl_expandablesection', { id: id, content: content }); | |||
dojo.place(html, parent_id); | |||
}, | |||
</pre> | |||
[[Category:Studio]] |
Latest revision as of 07:30, 22 August 2022
Example
In mygame_mygame.tpl (the border is not required):
<div id="my_expandable" style="border: 1px solid black"> <a href="#" id="my_click_to_toggle" class="expandabletoggle expandablearrow"> <div class="icon20"></div> </a> <div id="my_hidden_content" class="expandablecontent"> Here's the hidden content </div> </div>
In mygame.js:
define([ ebg/expandablesection ], ...
this.expanded = new ebg.expandablesection(); this.expanded.create(this, "my_expandable"); this.expanded.expand(); // show this.expanded.collapse(); // hide this.expanded.toggle(); // switch show/hide
Notes
- All of the inner parts of the expandable div must have ids so dojo.query can find them.
- The section already starts with click-to-toggle behavior, so you probably won't need to toggle in your own code. Just set the initial state in your setup method.
- Source code can be found here : https://x.boardgamearena.net/data/themereleases/220811-1000/js/modules/expandablesection.js
Helper Code
This doesn't appear to be part of the BGA framework, but might make creating the above code easer and more readable.
In mygame_mygame.tpl:
var jstpl_expandablesection = '\ <div id="${id}">\ <a href="#" id="toggle_${id}" class="expandabletoggle expandablearrow">\ <div class="icon20"></div>\ </a>\ <div id="content_${id}" class="expandablecontent">\ ${content}\ </div>\ </div>';
In mygame.js:
placeExpandableSection: function(parent_id, id, content) { html = this.format_block('jstpl_expandablesection', { id: id, content: content }); dojo.place(html, parent_id); },