Spry collapsible panel open by default
Hi there,
I've done a couple of sites where the left nav bar is a
series of
collapsible panels, each one housing links to products within
a specific
line. Would it be possible to insert code somewhere to get
one of the panels
open by default when you open a certain page, ie if you open
the 'suncare'
page the 'suncare' panel is open on load. I read something
about this on the
Adobe documentation but when I tried it it did't work.
It needs to be code somewhere on the page that interacts with
the spry
panel, I can't put it on the panel itself as I'm using a SSI
to insert the
nav bar into dozens of pages.
Many thanks...
Check out the examples on this page: http://www.spry-it.com/examples/spry-widget-cookie-history/#collapsiblepanel
Similar Messages
-
Spry Collapsible panel - open and closed default question...
I am using a Spry Collapsible panel in a vertical nav menu (DW CS4) and it's in a template for my site. I want it to be closed as default on the Home page, but when a visitor clicks to open it and selects their option, I would like it to remain open on the selected page - Is there a way to do this?
Thank you all!
AzaCheck out the examples on this page: http://www.spry-it.com/examples/spry-widget-cookie-history/#collapsiblepanel
-
Make a spry collapsible panel open on hover??
Hi All,
I'm trying to play with the Spry Collapsible Panel and would
like to have it open on hover but not on the on click, I've
attached the standard js code Dreamweaver produces, and would be
very grateful if you could highlight what needs to be
changed,---http://labs.adobe.com/technologies/spry/articles/tabbed_panel/index.html
See the section titled Open panels programmatically
<li class="TabbedPanelsTab" tabindex="0"
onmouseover="TabbedPanels1.showPanel(0)">Tab 1</li>
<li class="TabbedPanelsTab" tabindex="0"
onmouseover="TabbedPanels1.showPanel(1)">Tab 2</li>
Ken Ford
Adobe Community Expert - Dreamweaver
Fordwebs, LLC
http://www.fordwebs.com
"miachu" <[email protected]> wrote in
message news:fvihb0$miq$[email protected]..
> hi there,
>
> did you ever find a solution to this dreamweaver
collapsible panel problem? i
> am having the same problem...i need it to open on hover
instead of click. it
> makes so much more sense for them to have it on
hover/roll over!
>
> help would be much appreciated!
> thanks.
> -
How to make Spry Collapsible Panels open one at a time?
Hello,
I am using CS5 and want to use the spry collapsible panels. What I notice (and I think this wasn't the case in cs3) is that all panels can be open at the same time. I don't want that happen. I only want one panel to be open at a time. If someone clicks on a panel that is closed, I want the current panel to close and the one they clicked on to open. I don't want multiple panels to be opne at once. How can I do this? I am not a web developer by any means, so please be easy on me with code. I think in CS3 it used to work this way. Any help would be appreciated! Thank you in advance!GRAMPS!! That's it!! It was the accordian panel I had used in the past!!!! Oh, thank you, I was driving myself crazy as to why it wasn't working the way I had remembered!!!!!!!! THANK YOU!!
I was told you would probably help me find the right answer by Hans-g!
Thanks again! -
Spry Collapsible Panels - Way to set them open only once per visit?
I'm wondering if there is a way to set a Spry Collapsible
Panel to be automatically open on the initial loading of the site,
but as people navigate around the site and back and forth from the
home page, to be able to have it closed on subsequent visits to the
home page.
Right now I have a collapsible panel set to OPEN by default
when someone first hits the home page, but if they navigate around
the site and then click to the home page again, they get the panel
open again. Naturally, that will end up annoying people.
Any suggestions?
Thanks in advance!
SaraFlash local shared object can help with this. Here is some info:
http://www.bestflashanimationsite.com/tutorials/4/
http://www.permadi.com/tutorial/flashSharedObject/index.html
http://www.kirupa.com/developer/mx/sharedobjects.htm
Best wishes,
Adninjastrator -
Spry collapsible panel stays open in Internet Explorer.
I'm trying to use the spry collapsible panel to hide and show inormation, and it will not stay closed. I've used the default closed option in the properties panel, and made sure the eye in design view is closed. Please give some suggestions for correcting this problem.
The out-of-the-box SpryCollapiblePanel works like a charm.
This means that you have altered the HTML, CSS and/or the JS.
Because we are not privy to what you have done, it is not possible to help you find a solution.
I recommend that you upload the site and supply a link to that site. -
Collapsible Panel open on new page
I am using the Spry Collapsible Panel as a sidebar menu. I
would like to be able to click on a menu link, which takes me to a
new page with the relevant panel staying open on that new page. Is
this possible? If so, how do I make it happen? I am not great with
codes and other jargon, so if someone could help me with "exactly"
what I need to do, it would be most appreciated.
Many thanks,
CarylFirst Include SpryDOMUtils.js in your file;
Than add this script in the head of the page, or include it
in a script.
<script language="JavaScript" type="text/javascript">
//please note, that my SpryDOMUtils.js is packed so i have a
the extra onUNLOAD listener in the code below.
// * Declare vars;
var Spry;
if (!Spry.Utils) Spry.Utils = {};
var coll1; //declare vars outside the function so u can use
then tab panel everywhere
// * This is a addition to the SpryDomUtils.js U can include
it under line #262
// Or leave it in a javascript external / internal
// This function will fire anything when u leave the current
page.
Spry.Utils.addUnLoadListener = function(handler)
if (typeof window.addEventListener != 'undefined')
window.addEventListener('unload', handler, false);
else if (typeof document.addEventListener != 'undefined')
document.addEventListener('unload', handler, false);
else if (typeof window.attachEvent != 'undefined')
window.attachEvent('onunload', handler);
//This function will be used by cookie to check if the value
is allready in the cookie, if so it returns it position
Spry.Utils.CheckArray = function(a, s){
for (i=0; i<a.length; i++){if (a
== s)return i;}return null;
* SPRY COOKIE; HOW TO USE;
* constructor:
Spry.Utils.Cookie(type,string,{name:'cookie_name',path:'/',days:'number'};
* TYPE:
* - create : this creates *saves* the cookie
* : Spry.Utils.Cookie('create','string or
array',{name:'Spry_Cookie'});
* - get : this will return the cookie in array format
* : Spry.Utils.Cookie('get','',{name:'Spry_Cookie'});
* - destory: this will destroy the cookie
* : Spry.Utils.Cookie('destroy','',{name:'Spry_Cookie'});
* - add : this allows u to add value to the cookie with out
creating a whole new string
* it will place the add value behind the older cookie
values, it checks if the value is allready in the cookie,
* if it is, it will NOT add it in the cookie.
* STRING:
* This is the data what u want to store in to the cookie, it
can be an Array or a normal string / var
* OPTIONS:
* - name: : this is the name of the cookie so u can identify
it
* - path: : optional path for the cookie;
* - days: : the amount of days for the cookie to be saved.
Spry.Utils.Cookie = function(type,string,options){
if(type == 'create'){
var expires='';
if(options.days != null){
var date = new Date();
var UTCString;
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toUTCString();
var thePath = '; path=/';
if(options.path != null){
thePath = '; path='+options.path;
document.cookie =
options.name+'='+escape(string)+expires+thePath;
}else if(type == 'get'){
var nameEQ = options.name + '=';
var ca = document.cookie.split(';');
for (var i=0; i<ca.length; i++){
var c = ca;
while (c.charAt(0)==' '){
c = c.substring(1,c.length);
}if (c.indexOf(nameEQ)==0) return
unescape(c.substring(nameEQ.length,c.length)).split(",");
}return null;
}else if(type == 'destory'){
Spry.Utils.Cookie('create','',{
name: options.name
}else if(type == 'add'){
var c = Spry.Utils.Cookie('get','',{name:options.name});
if (typeof string == 'object') {
for (i = 0, str; str = string
, i < string.length; i++) {
if (Spry.Utils.CheckArray(c, str) == null)c.push(str);
}else{
if (Spry.Utils.CheckArray(c, string) == null) c.push(string)
Spry.Utils.Cookie('create',c,{name:options.name});
// * check if we have a panel to set from cookie value
// * becouse we are using spry dom we can also include the
tab construction within this function.
Spry.Utils.addLoadListener(function(){
//becouse cookie GET returns a array we have to add a var
before it to store the data
var tab = Spry.Utils.Cookie('get','',{name:'tabs_history'});
coll1 = Spry.Widget.CollapsiblePanel('ID_OF_PANEL');
if(tab == "open")coll1.open();
else coll1.close();
Spry.Utils.addUnLoadListener(function(){
var classnames =
document.getElementById('ID_OF_THE_PANEL').className;
if(classnames.match("CollapsiblePanelOpen"))var tab =
'open';
else var tab = 'closed';
//destroy old cookie (i want a clean cookie)
Spry.Utils.Cookie('destory','',{name:'tabs_history'});
//setting the new cookie value
Spry.Utils.Cookie('create',tab,{name:'tabs_history'});
</script>
The best way to copy the script is to press the | Quote |
button and copy it out of th quote becouse there are some taggs
used by the forum sofware in it.
If u have placed it in your header u need to do few edits.
im using coll1 as collaps variable name (constructor) if u
use a other, change it to yours.
also change coll1 = new
Spry.Widget.CollapsiblePanel("coll1"); to your desired ID
This will solve your problem ;)
To see it in action on tab panels (where i created it for)
http://www.3rd-eden.com/Spry-it.com/examples/restyled_tabs/
This is option 1. If u want 1 panel to be open on your page
if the user want it. If u want to open a random panel on click
function, u can use:
http://labs.adobe.com/technologies/spry/samples/utils/URLUtilsSample.html
SpryURLUtils.js
This will read param's that u send true a url. and responds
to it. U can see it in action with the tab panels in the example
above.
add this in the header of your page; (also include the
SpryURLutils.js)
<script type="text/javascript">
// Grabs the values of the URL parameters for the current
URL.
var params = Spry.Utils.getLocationParamsAsObject();
</script>
and change your constructor like this
<script type="text/javascript">
//sets default as open.
var ac1 = new
Spry.Widget.CollapsiblePanel("myCollapsiblePanel",{contentIsOpen:(params.ac1open
? params.ac1open : true));
</script>
U can add this behind a url to activate it:
<a href="testpage.html?ac1open=true" > test page ac1
open </a>
true is open, and false is closed. ;)
I hope this helps :D -
Spry Collapsible Panel problem when previewing in web browser
Hello.
I have inserted a spry collapsible panel into my website, made ZERO adjustments to any of the scripting or even css styling, and previewed the panel in my Safari browser. It does not seem to be working correctly. I've attached a couple of images showing what the panel looks like in the browser. My site is not published yet, so I cannot give out the url.
Is something wrong with the js file? I tried the panel earlier on a different site on the same computer and it was working fine.
the "Tab" menu text does not fit inside the grey box. Everything collapses fine, however, the gray box is too thin for the text. I've tried adjusting it in the CSS sheet, but it doesn't seem to change anything.
This is the panel in the collapsed state. It looks bad. I know it's not supposed to work like this.
When I preview the site in "live view" everything works fine...
// SpryCollapsiblePanel.js - version 0.8 - Spry Pre-Release 1.6.1
// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * Neither the name of Adobe Systems Incorporated nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
(function() { // BeginSpryComponent
if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
Spry.Widget.CollapsiblePanel = function(element, opts)
this.element = this.getElement(element);
this.focusElement = null;
this.hoverClass = "CollapsiblePanelTabHover";
this.openClass = "CollapsiblePanelOpen";
this.closedClass = "CollapsiblePanelClosed";
this.focusedClass = "CollapsiblePanelFocused";
this.enableAnimation = true;
this.enableKeyboardNavigation = true;
this.animator = null;
this.hasFocus = false;
this.contentIsOpen = false;
this.openPanelKeyCode = Spry.Widget.CollapsiblePanel.KEY_DOWN;
this.closePanelKeyCode = Spry.Widget.CollapsiblePanel.KEY_UP;
Spry.Widget.CollapsiblePanel.setOptions(this, opts);
this.attachBehaviors();
Spry.Widget.CollapsiblePanel.prototype.getElement = function(ele)
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
Spry.Widget.CollapsiblePanel.prototype.addClassName = function(ele, className)
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1))
return;
ele.className += (ele.className ? " " : "") + className;
Spry.Widget.CollapsiblePanel.prototype.removeClassName = function(ele, className)
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
Spry.Widget.CollapsiblePanel.prototype.hasClassName = function(ele, className)
if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
return false;
return true;
Spry.Widget.CollapsiblePanel.prototype.setDisplay = function(ele, display)
if( ele )
ele.style.display = display;
Spry.Widget.CollapsiblePanel.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
if (!optionsObj)
return;
for (var optionName in optionsObj)
if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
continue;
obj[optionName] = optionsObj[optionName];
Spry.Widget.CollapsiblePanel.prototype.onTabMouseOver = function(e)
this.addClassName(this.getTab(), this.hoverClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.onTabMouseOut = function(e)
this.removeClassName(this.getTab(), this.hoverClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.open = function()
this.contentIsOpen = true;
if (this.enableAnimation)
if (this.animator)
this.animator.stop();
this.animator = new Spry.Widget.CollapsiblePanel.PanelAnimator(this, true, { duration: this.duration, fps: this.fps, transition: this.transition });
this.animator.start();
else
this.setDisplay(this.getContent(), "block");
this.removeClassName(this.element, this.closedClass);
this.addClassName(this.element, this.openClass);
Spry.Widget.CollapsiblePanel.prototype.close = function()
this.contentIsOpen = false;
if (this.enableAnimation)
if (this.animator)
this.animator.stop();
this.animator = new Spry.Widget.CollapsiblePanel.PanelAnimator(this, false, { duration: this.duration, fps: this.fps, transition: this.transition });
this.animator.start();
else
this.setDisplay(this.getContent(), "none");
this.removeClassName(this.element, this.openClass);
this.addClassName(this.element, this.closedClass);
Spry.Widget.CollapsiblePanel.prototype.onTabClick = function(e)
if (this.isOpen())
this.close();
else
this.open();
this.focus();
return this.stopPropagation(e);
Spry.Widget.CollapsiblePanel.prototype.onFocus = function(e)
this.hasFocus = true;
this.addClassName(this.element, this.focusedClass);
return false;
Spry.Widget.CollapsiblePanel.prototype.onBlur = function(e)
this.hasFocus = false;
this.removeClassName(this.element, this.focusedClass);
return false;
Spry.Widget.CollapsiblePanel.KEY_UP = 38;
Spry.Widget.CollapsiblePanel.KEY_DOWN = 40;
Spry.Widget.CollapsiblePanel.prototype.onKeyDown = function(e)
var key = e.keyCode;
if (!this.hasFocus || (key != this.openPanelKeyCode && key != this.closePanelKeyCode))
return true;
if (this.isOpen() && key == this.closePanelKeyCode)
this.close();
else if ( key == this.openPanelKeyCode)
this.open();
return this.stopPropagation(e);
Spry.Widget.CollapsiblePanel.prototype.stopPropagation = function(e)
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
if (e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true;
return false;
Spry.Widget.CollapsiblePanel.prototype.attachPanelHandlers = function()
var tab = this.getTab();
if (!tab)
return;
var self = this;
Spry.Widget.CollapsiblePanel.addEventListener(tab, "click", function(e) { return self.onTabClick(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(tab, "mouseover", function(e) { return self.onTabMouseOver(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(tab, "mouseout", function(e) { return self.onTabMouseOut(e); }, false);
if (this.enableKeyboardNavigation)
// XXX: IE doesn't allow the setting of tabindex dynamically. This means we can't
// rely on adding the tabindex attribute if it is missing to enable keyboard navigation
// by default.
// Find the first element within the tab container that has a tabindex or the first
// anchor tag.
var tabIndexEle = null;
var tabAnchorEle = null;
this.preorderTraversal(tab, function(node) {
if (node.nodeType == 1 /* NODE.ELEMENT_NODE */)
var tabIndexAttr = tab.attributes.getNamedItem("tabindex");
if (tabIndexAttr)
tabIndexEle = node;
return true;
if (!tabAnchorEle && node.nodeName.toLowerCase() == "a")
tabAnchorEle = node;
return false;
if (tabIndexEle)
this.focusElement = tabIndexEle;
else if (tabAnchorEle)
this.focusElement = tabAnchorEle;
if (this.focusElement)
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "focus", function(e) { return self.onFocus(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "blur", function(e) { return self.onBlur(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener(this.focusElement, "keydown", function(e) { return self.onKeyDown(e); }, false);
Spry.Widget.CollapsiblePanel.addEventListener = function(element, eventType, handler, capture)
try
if (element.addEventListener)
element.addEventListener(eventType, handler, capture);
else if (element.attachEvent)
element.attachEvent("on" + eventType, handler);
catch (e) {}
Spry.Widget.CollapsiblePanel.prototype.preorderTraversal = function(root, func)
var stopTraversal = false;
if (root)
stopTraversal = func(root);
if (root.hasChildNodes())
var child = root.firstChild;
while (!stopTraversal && child)
stopTraversal = this.preorderTraversal(child, func);
try { child = child.nextSibling; } catch (e) { child = null; }
return stopTraversal;
Spry.Widget.CollapsiblePanel.prototype.attachBehaviors = function()
var panel = this.element;
var tab = this.getTab();
var content = this.getContent();
if (this.contentIsOpen || this.hasClassName(panel, this.openClass))
this.addClassName(panel, this.openClass);
this.removeClassName(panel, this.closedClass);
this.setDisplay(content, "block");
this.contentIsOpen = true;
else
this.removeClassName(panel, this.openClass);
this.addClassName(panel, this.closedClass);
this.setDisplay(content, "none");
this.contentIsOpen = false;
this.attachPanelHandlers();
Spry.Widget.CollapsiblePanel.prototype.getTab = function()
return this.getElementChildren(this.element)[0];
Spry.Widget.CollapsiblePanel.prototype.getContent = function()
return this.getElementChildren(this.element)[1];
Spry.Widget.CollapsiblePanel.prototype.isOpen = function()
return this.contentIsOpen;
Spry.Widget.CollapsiblePanel.prototype.getElementChildren = function(element)
var children = [];
var child = element.firstChild;
while (child)
if (child.nodeType == 1 /* Node.ELEMENT_NODE */)
children.push(child);
child = child.nextSibling;
return children;
Spry.Widget.CollapsiblePanel.prototype.focus = function()
if (this.focusElement && this.focusElement.focus)
this.focusElement.focus();
Spry.Widget.CollapsiblePanel.PanelAnimator = function(panel, doOpen, opts)
this.timer = null;
this.interval = 0;
this.fps = 60;
this.duration = 500;
this.startTime = 0;
this.transition = Spry.Widget.CollapsiblePanel.PanelAnimator.defaultTransition;
this.onComplete = null;
this.panel = panel;
this.content = panel.getContent();
this.doOpen = doOpen;
Spry.Widget.CollapsiblePanel.setOptions(this, opts, true);
this.interval = Math.floor(1000 / this.fps);
var c = this.content;
var curHeight = c.offsetHeight ? c.offsetHeight : 0;
this.fromHeight = (doOpen && c.style.display == "none") ? 0 : curHeight;
if (!doOpen)
this.toHeight = 0;
else
if (c.style.display == "none")
// The content area is not displayed so in order to calculate the extent
// of the content inside it, we have to set its display to block.
c.style.visibility = "hidden";
c.style.display = "block";
// Clear the height property so we can calculate
// the full height of the content we are going to show.
c.style.height = "";
this.toHeight = c.offsetHeight;
this.distance = this.toHeight - this.fromHeight;
this.overflow = c.style.overflow;
c.style.height = this.fromHeight + "px";
c.style.visibility = "visible";
c.style.overflow = "hidden";
c.style.display = "block";
Spry.Widget.CollapsiblePanel.PanelAnimator.defaultTransition = function(time, begin, finish, duration) { time /= duration; return begin + ((2 - time) * time * finish); };
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.start = function()
var self = this;
this.startTime = (new Date).getTime();
this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stop = function()
if (this.timer)
clearTimeout(this.timer);
// If we're killing the timer, restore the overflow property.
this.content.style.overflow = this.overflow;
this.timer = null;
Spry.Widget.CollapsiblePanel.PanelAnimator.prototype.stepAnimation = function()
var curTime = (new Date).getTime();
var elapsedTime = curTime - this.startTime;
if (elapsedTime >= this.duration)
if (!this.doOpen)
this.content.style.display = "none";
this.content.style.overflow = this.overflow;
this.content.style.height = this.toHeight + "px";
if (this.onComplete)
this.onComplete();
return;
var ht = this.transition(elapsedTime, this.fromHeight, this.distance, this.duration);
this.content.style.height = ((ht < 0) ? 0 : ht) + "px";
var self = this;
this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
Spry.Widget.CollapsiblePanelGroup = function(element, opts)
this.element = this.getElement(element);
this.opts = opts;
this.attachBehaviors();
Spry.Widget.CollapsiblePanelGroup.prototype.setOptions = Spry.Widget.CollapsiblePanel.prototype.setOptions;
Spry.Widget.CollapsiblePanelGroup.prototype.getElement = Spry.Widget.CollapsiblePanel.prototype.getElement;
Spry.Widget.CollapsiblePanelGroup.prototype.getElementChildren = Spry.Widget.CollapsiblePanel.prototype.getElementChildren;
Spry.Widget.CollapsiblePanelGroup.prototype.setElementWidget = function(element, widget)
if (!element || !widget)
return;
if (!element.spry)
element.spry = new Object;
element.spry.collapsiblePanel = widget;
Spry.Widget.CollapsiblePanelGroup.prototype.getElementWidget = function(element)
return (element && element.spry && element.spry.collapsiblePanel) ? element.spry.collapsiblePanel : null;
Spry.Widget.CollapsiblePanelGroup.prototype.getPanels = function()
if (!this.element)
return [];
return this.getElementChildren(this.element);
Spry.Widget.CollapsiblePanelGroup.prototype.getPanel = function(panelIndex)
return this.getPanels()[panelIndex];
Spry.Widget.CollapsiblePanelGroup.prototype.attachBehaviors = function()
if (!this.element)
return;
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var cpanel = cpanels[i];
this.setElementWidget(cpanel, new Spry.Widget.CollapsiblePanel(cpanel, this.opts));
Spry.Widget.CollapsiblePanelGroup.prototype.openPanel = function(panelIndex)
var w = this.getElementWidget(this.getPanel(panelIndex));
if (w && !w.isOpen())
w.open();
Spry.Widget.CollapsiblePanelGroup.prototype.closePanel = function(panelIndex)
var w = this.getElementWidget(this.getPanel(panelIndex));
if (w && w.isOpen())
w.close();
Spry.Widget.CollapsiblePanelGroup.prototype.openAllPanels = function()
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var w = this.getElementWidget(cpanels[i]);
if (w && !w.isOpen())
w.open();
Spry.Widget.CollapsiblePanelGroup.prototype.closeAllPanels = function()
var cpanels = this.getPanels();
var numCPanels = cpanels.length;
for (var i = 0; i < numCPanels; i++)
var w = this.getElementWidget(cpanels[i]);
if (w && w.isOpen())
w.close();
})(); // EndSpryComponentI have inserted a spry collapsible panel into my website, made ZERO
adjustments to any of the scripting or even css styling
That is good, that means that I have a local copy of the scripting and css files eliminating the need to attach the code to a post.
Is something wrong with the js file? I tried the panel earlier on a
different site on the same computer and it was working fine
The fact that it works on a different site means that something is correct. My assumption is that the scripting and css files are doing their job correctly and to answer your question regarding the js file, no.
Having eliminated the Spry original JavaScript and CSS files as being the culprits, there must be a problem with the rest of the site, incorrect HTML, other interfering JavaScript or CSS.
I can keep guessing, but only those persons that are privy to your code can give you any positive input. Please find a way to upload your files so that we can see the code in context.
To this end, screen captures do not assist in solving the problem, they only add to others' amusement at seeing the problem.
Ben
PS I forgot to say, welcome to our community and yes I am a cynical old codger, sorry. -
Spry Collapsible Panel animation not working
I've inserted a spry collapsible panel into a web page and it works fine when I preview it. But when I upload it to the server the animation does not work in both Safari and Firefox (haven't tried any other browsers). The panel is just static, showing the tab and the panel is open showing the content. It is supposed to be closed by default.
I've added CSS styles but I've also tried it with the default CSS and it didn't work then either.
Both the .css and .js files that were saved in the SpryAssets folder have been uploaded to the server in the same location as the webpage.
I'm working on a Mac and CS4.
URL is www.alpinism.com/New/about.htmlThanks. That didn't resolve my issues unfortunately and the corrections it was suggesting started interfering with other functions on the page so I've gone back to square one, deleted the Spry collapsible panel and inserted javascript from http://www.dynamicdrive.com/dynamicindex17/animatedcollapse.htm that does the same thing and seems to work in Safari and Firefox. Just need to check in IE but I expect this is going to be the best solution for me.
-
Spry collasible panels: open/closed
I see that it is possible to set the default state for spry
collapsible panels and have had success doing so. However,
is it possible to designate the open/closed state for each
individual panel within a Collapsible Panel Group? I can
foresee times when one or more of my panels may be empty and
therefore don't want to waste space by having them open
automatically.You can indeed.
Click into any of the panels, and the definition box above it
comes up (something like Spry Collapsible Panel:
CollapsiblePanel[number]) comes up. Click on this box (it's blue
coloured in CS3) - then the properties box at the bottom of the
screen displays the options for display and default state, as it
did when you put in the first panel.
Matt. -
Link to tabs in spry collapsible panel work in IE-8; not Firefox or Safari
I have little experience with Spry. I've asked my question on the user forum in Dreamweaver several times with no response. I am hoping that someone somewhere in the Adobe community can help me resolve this issue.
I created links from the top of a page to the tabs of a spry collapsible panel underneath.
In IE-8, on one page, with a small collapsiable panel, clicking the link creates a rollover effect on the appropriate panel. This effect works wonderfully for my purposes.On another page, with a long collapsible panel, clicking the link jumps the user to the panel AND creates a rollover effect. Perfect.
In Firefox and Safari, clicking the link does nothing. If I right-click the link in Firefox, I create a duplicate of the page.
I am using Windows XP and Dreamweaver CS4
http://www.judydiamondstone.net/Writing.html
click any of the links in the first section of the page
Thanks.Arnout, Thank you so much for the guidance!
My code now looks like this:
(Click the first tab
below to open; click to close.)
but it still doesn't work
(I still like the error effect in IE!)
Do I need to add to the CSS or JS script that comes with the spry widget?
I am accessing all the tutorials I can find, including a very clear
explanation of event handlers in a Safari online search but I'm obviously
missing one or more basic concepts.
Page with new code on the
elements:
http://www.judydiamondstone.net/Writing.html -
Google map inside the spry collapsible panel
So this time I've bumped into interesting 'bug'. I've placed the google map inside the spry collapsible panel. Panel is set to the closed mode on load of page. When I open the tab, map appears, but address marker is hidden behind the top left corner. If I place the same map outside the collapsiple panel it renders all well.
So my question is whether there is any way around this issue. When I know where the marker is hidden I can simply move the map and see it, but customer who's not aware of the problem will see only blank map with not marked address which is not acceptable.
cheers,
SimonSure mate. Here you go:
<div id="CollapsiblePanel1" class="CollapsiblePanel">
<div class="CollapsiblePanelTab" tabindex="0">SHOW MAP</div>
<div class="CollapsiblePanelContent">
<cfmap width="242" height="200" zoomlevel="12" name="mainMap" markercolor="333444" showscale="false"
typecontrol="none" showcentermarker="true" centeraddress="#get_event.event_address1#, #get_event.event_address2#, #get_event.event_city#,#get_event.event_county#, #get_event.event_postcode#, #get_event.event_country# "
></cfmap>
</div>
</div>
And this bit goes at the bottom of the code :
<script type="text/javascript">
var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("CollapsiblePanel1", {contentIsOpen:false});
</script>
And that would be the preview that I get once the panel is open:
And that is the preview of how it should look:
As you can see the map marker sticks to the top left corner. I was wondering whether there is any way to re-focus it once the panel is open.
cheers,
Simon -
Need help with spry collapsible panel (menu)
I learn as I go when I created my website http://www.invitation-fascination.com/shapes.html and so far I've created a page with 13 spry collapsible panels- I think it came out pretty well. Now this is what I want to add to the page:
I want to create a selector (drop down) menu above the panels with the option to select any one of the 13 panels.
Once selected it will move directly to that panel and open it.
I've tried the piselect thing and with the "open" and "close" button that will programatically open the panels, but what I want is for the panel to be selected from the menu and then the page goes directly to that panel and it then opens.
Is there a way this can be done? Please help
I'm really not that good at this stuff- please be easy with your response- thank youHave a look at the last example http://labs.adobe.com/technologies/spry/samples/collapsiblepanel/CollapsiblePanelGroupSamp le.html
Gramps -
Dynamic data in Spry Collapsible Panel
Hi guys,
Am trying to get data from a Data Set into the Spry
Collapsible Panel, with little luck. Have tried the following and
was wondering if i am doing something wrong?
<div spry:region="dsProduct">
<div id="CollapsiblePanel1" class="CollapsiblePanel">
<div class="CollapsiblePanelTab"
tabindex="0">{product_name}</div>
<div
class="CollapsiblePanelContent">">{product_details}</div>
</div>
</div>
This example displays the field i want from the data set
{product_name}, but will not collapse open the panel containing
{product_details}.
Any suggestions?hi Jay,
will this help you?
Forum
thread -
Help with spry collapsible panel
I have several spry collapsible panels that I am using for
navigation and want an open panel to close automatically when a new
one is opened. Can this be done? I checked the "customuze this
widget" in the property inspector but does not give any info on the
behavior of them. I am sure it is in the java code but I am not a
Java expert by any means.Have a look at the last example http://labs.adobe.com/technologies/spry/samples/collapsiblepanel/CollapsiblePanelGroupSamp le.html
Gramps
Maybe you are looking for
-
Anonymous UUID: 0C3CE514-2571-E1BA-CE80-AFCB2154798F Sat Jan 10 18:44:54 2015 *** Panic Report *** panic(cpu 2 caller 0xffffff7f8b16ff63): "GPU Panic: [<None>] 5 3 7f 0 0 0 0 3 : NVRM[0/1:0:0]: Read Error 0x00000100: CFG 0xffffffff 0xffffffff 0xffff
-
I am having an issue with my macBook Pro. The laptop screen is white with what looks to be stripes of the background when I open it, but it is working and functioning at 100% when plugged into my ThunderBolt screen. What could be the issue? I am worr
-
Device error to export on Blu-Ray
In Adobe Elements 4, when i made export to Blu-Ray a device error apear . I repeat the export three times with diferent discs,Verbatim 2xBD-R , Memorex 4xBD-R,and the same problem apear..The computer is a Sony Vaio AR-71S. Please help me...
-
Understanding loitering objects and back references in profiler
i'm trying to debug a problem in my AIR app that results in exhaustion of USER objects (USER objects are viewable in the sysinternals tool process explorer) on my windows xp sp2 system. once the USER objects for my AIR app grow to a certain number (b
-
Hi, I have a collateralList and collateralId in a form. How do I read the collateralId while iterating though the collateralList?. <netui-data:repeater dataSource="pageFlow.collateralForm.collaterals"> // returns the collection of collateralBean