Using anchors with Spry Accordian

I would like to use anchors in the Accordian tabs so when one
clicks on a link outside the widget that points to the anchor on
the tab, the tab opens the panel. Does anyone know if this can be
done and how to do it? I am not versed in javascript, so I can't
write the code myself.
Thanks

Hi,
Checkout this sample:
http://labs.adobe.com/technologies/spry/samples/accordion/AccordionSample.html#Programatic OpenAndClose
It shows you how to set up a link so that it can open a
specific panel.
--== Kin ==--

Similar Messages

  • Can you use anchors with tabbed panels???

    Im trying to use anchors with tabbed panels but they dont seem to work.  I need to be able to link to specific tabs and specific areas within those tabs, but I haven't been able to find a way to do this.  Does anyone know or have a work around?

    Yes, that is an improvement in Muse, check release notes here, http://forums.adobe.com/message/5104247 - Widget Improvements
    The selected tab in Design view for the Tabbed panel widget will now be selected/active when previewing, exporting or publishing the site to Business Catalyst.
    - Abhishek Maurya

  • Problems with spry accordian widget in CS5

    I am updating a client's website and am having problems with the spry accordian widget. I read that it has been replaced with jQuery in the latest version and am told I can modify my existing spry widgets but cannot add new ones. In trying to modify the existing widget I get error alerts. I guess adding a new accordian tab is not considered a modification of the existing widget. I only have CS5 version of DW. What to do?  Thanks in advance for your help.

    Hi Patricia,
    you with your CS5 can continue to use the spry accordian widget BUT it's inopportune. I quote from different contributions of the forum: "Spry has been deprecated and is no longer officially supported by Adobe", “Adobe abandoned Spry late last year after CS6 came out. Future products will probably not contain any Spry so learning to use jQuery is a valuable skill to have for the future.” So I/we recommend you to switch to a jQuery library for your further requirements."
    You may have a look here: http://www.dynamicdrive.com/dynamicindex17/ddaccordionmenu.htm, where you will find a wide range of different menus.
    On the other hand - to become closer with your problem - you could send us the link to your website in question.
    Hans-Günter

  • Using anchor within spry accordion???

    Hi everyone,
    I have an index page www.nateurope.com. The news are linking to an accordion http://www.nateurope.com/news.htm. I added anchors because I thought that it would be nice if the user click on March, 22 Virtual Conference (www.nateurope.com) he would directly get to the open panel March, 22 Virtual Conference on the nateurope.com/news.htm page.
    I tried to get the information I need by googling but the only thing I found is this if you have the button on the same page.
    <input type="button" onclick="acc10.openFirstPanel()" >open first panel</input>
    <input type="button" onclick="acc10.openNextPanel()" >open next panel</input>
    <input type="button" onclick="acc10.openPreviousPanel()" >open previous panel</input>
    <input type="button" onclick="acc10.openLastPanel()" >open last panel</input>
    <script type="text/javascript">
         var acc10 = new Spry.Widget.Accordion("Accordion1");
    </script>
    ->Would this be the solution? Where do I have to add this code?
    I read also that it is only possible if the height is variable but I didn't understand where to implement this information? SpryAccordion .js?
    this.useFixedPanelHeights = true;
    this.fixedPanelHeight = 0;
    Turn true in false? Or just add this code at the end of the page? <script type="text/javascript">
    var acc1 = new Spry.Widget.Accordion("Acc1", { useFixedPanelHeights: false });
    </script>
    Further I found the description of the panel ID http://labs.adobe.com/technologies/spry/samples/accordion/AccordionSample.html but I didn't understand how to implement this code as well.
    I am really lost and would appreciate very much your help. Don't hesitate to contact me if you need further code or information. I would be happy to see how to implement the information .
    Thy a lot in advance.

    Hi Gramps,
    I deleted everything and started right from beginning. Unfortunately without success, probably I made something wrong with the heigth setting? I just changed in .js true to false:
    (function() { // BeginSpryComponent
    if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {};
    Spry.Widget.Accordion = function(element, opts)
    this.element = this.getElement(element);
    this.defaultPanel = 0;
    this.hoverClass = "AccordionPanelTabHover";
    this.openClass = "AccordionPanelOpen";
    this.closedClass = "AccordionPanelClosed";
    this.focusedClass = "AccordionFocused";
    this.enableAnimation = true;
    this.enableKeyboardNavigation = true;
    this.currentPanel = null;
    this.animator = null;
    this.hasFocus = null;
    this.previousPanelKeyCode = Spry.Widget.Accordion.KEY_UP;
    this.nextPanelKeyCode = Spry.Widget.Accordion.KEY_DOWN;
    this.useFixedPanelHeights = false;
    this.fixedPanelHeight = -1;
    Spry.Widget.Accordion.setOptions(this, opts, true);
    if (this.element)
    this.attachBehaviors();
    Spry.Widget.Accordion.prototype.getElement = function(ele)
    if (ele && typeof ele == "string")
    return document.getElementById(ele);
    return ele;
    Spry.Widget.Accordion.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.Accordion.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.Accordion.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.Accordion.prototype.onPanelTabMouseOver = function(e, panel)
    if (panel)
    this.addClassName(this.getPanelTab(panel), this.hoverClass);
    return false;
    Spry.Widget.Accordion.prototype.onPanelTabMouseOut = function(e, panel)
    if (panel)
    this.removeClassName(this.getPanelTab(panel), this.hoverClass);
    return false;
    Spry.Widget.Accordion.prototype.openPanel = function(elementOrIndex)
    var panelA = this.currentPanel;
    var panelB;
    if (typeof elementOrIndex == "number")
    panelB = this.getPanels()[elementOrIndex];
    else
    panelB = this.getElement(elementOrIndex);
    if (!panelB || panelA == panelB)
    return null;
    var contentA = panelA ? this.getPanelContent(panelA) : null;
    var contentB = this.getPanelContent(panelB);
    if (!contentB)
    return null;
    if (this.useFixedPanelHeights && !this.fixedPanelHeight)
    this.fixedPanelHeight = (contentA.offsetHeight) ? contentA.offsetHeight : contentA.scrollHeight;
    if (this.enableAnimation)
    if (this.animator)
    this.animator.stop();
    this.animator = new Spry.Widget.Accordion.PanelAnimator(this, panelB, { duration: this.duration, fps: this.fps, transition: this.transition });
    this.animator.start();
    else
    if(contentA)
    contentA.style.display = "none";
    contentA.style.height = "0px";
    contentB.style.display = "block";
    contentB.style.height = this.useFixedPanelHeights ? this.fixedPanelHeight + "px" : "auto";
    if(panelA)
    this.removeClassName(panelA, this.openClass);
    this.addClassName(panelA, this.closedClass);
    this.removeClassName(panelB, this.closedClass);
    this.addClassName(panelB, this.openClass);
    this.currentPanel = panelB;
    return panelB;
    Spry.Widget.Accordion.prototype.closePanel = function()
    // The accordion can only ever have one panel open at any
    // give time, so this method only closes the current panel.
    // If the accordion is in fixed panel heights mode, this
    // method does nothing.
    if (!this.useFixedPanelHeights && this.currentPanel)
    var panel = this.currentPanel;
    var content = this.getPanelContent(panel);
    if (content)
    if (this.enableAnimation)
    if (this.animator)
    this.animator.stop();
    this.animator = new Spry.Widget.Accordion.PanelAnimator(this, null, { duration: this.duration, fps: this.fps, transition: this.transition });
    this.animator.start();
    else
    content.style.display = "none";
    content.style.height = "0px";
    this.removeClassName(panel, this.openClass);
    this.addClassName(panel, this.closedClass);
    this.currentPanel = null;
    Spry.Widget.Accordion.prototype.openNextPanel = function()
    return this.openPanel(this.getCurrentPanelIndex() + 1);
    Spry.Widget.Accordion.prototype.openPreviousPanel = function()
    return this.openPanel(this.getCurrentPanelIndex() - 1);
    Spry.Widget.Accordion.prototype.openFirstPanel = function()
    return this.openPanel(0);
    Spry.Widget.Accordion.prototype.openLastPanel = function()
    var panels = this.getPanels();
    return this.openPanel(panels[panels.length - 1]);
    Spry.Widget.Accordion.prototype.onPanelTabClick = function(e, panel)
    if (panel != this.currentPanel)
    this.openPanel(panel);
    else
    this.closePanel();
    if (this.enableKeyboardNavigation)
    this.focus();
    if (e.preventDefault) e.preventDefault();
    else e.returnValue = false;
    if (e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;
    return false;
    Spry.Widget.Accordion.prototype.onFocus = function(e)
    this.hasFocus = true;
    this.addClassName(this.element, this.focusedClass);
    return false;
    Spry.Widget.Accordion.prototype.onBlur = function(e)
    this.hasFocus = false;
    this.removeClassName(this.element, this.focusedClass);
    return false;
    Spry.Widget.Accordion.KEY_UP = 38;
    Spry.Widget.Accordion.KEY_DOWN = 40;
    Spry.Widget.Accordion.prototype.onKeyDown = function(e)
    var key = e.keyCode;
    if (!this.hasFocus || (key != this.previousPanelKeyCode && key != this.nextPanelKeyCode))
    return true;
    var panels = this.getPanels();
    if (!panels || panels.length < 1)
    return false;
    var currentPanel = this.currentPanel ? this.currentPanel : panels[0];
    var nextPanel = (key == this.nextPanelKeyCode) ? currentPanel.nextSibling : currentPanel.previousSibling;
    while (nextPanel)
    if (nextPanel.nodeType == 1 /* Node.ELEMENT_NODE */)
    break;
    nextPanel = (key == this.nextPanelKeyCode) ? nextPanel.nextSibling : nextPanel.previousSibling;
    if (nextPanel && currentPanel != nextPanel)
    this.openPanel(nextPanel);
    if (e.preventDefault) e.preventDefault();
    else e.returnValue = false;
    if (e.stopPropagation) e.stopPropagation();
    else e.cancelBubble = true;
    return false;
    Spry.Widget.Accordion.prototype.attachPanelHandlers = function(panel)
    if (!panel)
    return;
    var tab = this.getPanelTab(panel);
    if (tab)
    var self = this;
    Spry.Widget.Accordion.addEventListener(tab, "click", function(e) { return self.onPanelTabClick(e, panel); }, false);
    Spry.Widget.Accordion.addEventListener(tab, "mouseover", function(e) { return self.onPanelTabMouseOver(e, panel); }, false);
    Spry.Widget.Accordion.addEventListener(tab, "mouseout", function(e) { return self.onPanelTabMouseOut(e, panel); }, false);
    Spry.Widget.Accordion.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.Accordion.prototype.initPanel = function(panel, isDefault)
    var content = this.getPanelContent(panel);
    if (isDefault)
    this.currentPanel = panel;
    this.removeClassName(panel, this.closedClass);
    this.addClassName(panel, this.openClass);
    // Attempt to set up the height of the default panel. We don't want to
    // do any dynamic panel height calculations here because our accordion
    // or one of its parent containers may be display:none.
    if (content)
    if (this.useFixedPanelHeights)
    // We are in fixed panel height mode and the user passed in
    // a panel height for us to use.
    if (this.fixedPanelHeight)
    content.style.height = this.fixedPanelHeight + "px";
    else
    // We are in variable panel height mode, but since we can't
    // calculate the panel height here, we just set the height to
    // auto so that it expands to show all of its content.
    content.style.height = "auto";
    else
    this.removeClassName(panel, this.openClass);
    this.addClassName(panel, this.closedClass);
    if (content)
    content.style.height = "0px";
    content.style.display = "none";
    this.attachPanelHandlers(panel);
    Spry.Widget.Accordion.prototype.attachBehaviors = function()
    var panels = this.getPanels();
    for (var i = 0; i < panels.length; i++)
    this.initPanel(panels[i], i == this.defaultPanel);
    // Advanced keyboard navigation requires the tabindex attribute
    // on the top-level element.
    this.enableKeyboardNavigation = (this.enableKeyboardNavigation && this.element.attributes.getNamedItem("tabindex"));
    if (this.enableKeyboardNavigation)
    var self = this;
    Spry.Widget.Accordion.addEventListener(this.element, "focus", function(e) { return self.onFocus(e); }, false);
    Spry.Widget.Accordion.addEventListener(this.element, "blur", function(e) { return self.onBlur(e); }, false);
    Spry.Widget.Accordion.addEventListener(this.element, "keydown", function(e) { return self.onKeyDown(e); }, false);
    Spry.Widget.Accordion.prototype.getPanels = function()
    return this.getElementChildren(this.element);
    Spry.Widget.Accordion.prototype.getCurrentPanel = function()
    return this.currentPanel;
    Spry.Widget.Accordion.prototype.getPanelIndex = function(panel)
    var panels = this.getPanels();
    for( var i = 0 ; i < panels.length; i++ )
    if( panel == panels[i] )
    return i;
    return -1;
    Spry.Widget.Accordion.prototype.getCurrentPanelIndex = function()
    return this.getPanelIndex(this.currentPanel);
    Spry.Widget.Accordion.prototype.getPanelTab = function(panel)
    if (!panel)
    return null;
    return this.getElementChildren(panel)[0];
    Spry.Widget.Accordion.prototype.getPanelContent = function(panel)
    if (!panel)
    return null;
    return this.getElementChildren(panel)[1];
    Spry.Widget.Accordion.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.Accordion.prototype.focus = function()
    if (this.element && this.element.focus)
    this.element.focus();
    Spry.Widget.Accordion.prototype.blur = function()
    if (this.element && this.element.blur)
    this.element.blur();
    Spry.Widget.Accordion.PanelAnimator = function(accordion, panel, opts)
    this.timer = null;
    this.interval = 0;
    this.fps = 60;
    this.duration = 500;
    this.startTime = 0;
    this.transition = Spry.Widget.Accordion.PanelAnimator.defaultTransition;
    this.onComplete = null;
    this.panel = panel;
    this.panelToOpen = accordion.getElement(panel);
    this.panelData = [];
    this.useFixedPanelHeights = accordion.useFixedPanelHeights;
    Spry.Widget.Accordion.setOptions(this, opts, true);
    this.interval = Math.floor(1000 / this.fps);
    // Set up the array of panels we want to animate.
    var panels = accordion.getPanels();
    for (var i = 0; i < panels.length; i++)
    var p = panels[i];
    var c = accordion.getPanelContent(p);
    if (c)
    var h = c.offsetHeight;
    if (h == undefined)
    h = 0;
    if (p == panel && h == 0)
    c.style.display = "block";
    if (p == panel || h > 0)
    var obj = new Object;
    obj.panel = p;
    obj.content = c;
    obj.fromHeight = h;
    obj.toHeight = (p == panel) ? (accordion.useFixedPanelHeights ? accordion.fixedPanelHeight : c.scrollHeight) : 0;
    obj.distance = obj.toHeight - obj.fromHeight;
    obj.overflow = c.style.overflow;
    this.panelData.push(obj);
    c.style.overflow = "hidden";
    c.style.height = h + "px";
    Spry.Widget.Accordion.PanelAnimator.defaultTransition = function(time, begin, finish, duration) { time /= duration; return begin + ((2 - time) * time * finish); };
    Spry.Widget.Accordion.PanelAnimator.prototype.start = function()
    var self = this;
    this.startTime = (new Date).getTime();
    this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
    Spry.Widget.Accordion.PanelAnimator.prototype.stop = function()
    if (this.timer)
    clearTimeout(this.timer);
    // If we're killing the timer, restore the overflow
    // properties on the panels we were animating!
    for (i = 0; i < this.panelData.length; i++)
    obj = this.panelData[i];
    obj.content.style.overflow = obj.overflow;
    this.timer = null;
    Spry.Widget.Accordion.PanelAnimator.prototype.stepAnimation = function()
    var curTime = (new Date).getTime();
    var elapsedTime = curTime - this.startTime;
    var i, obj;
    if (elapsedTime >= this.duration)
    for (i = 0; i < this.panelData.length; i++)
    obj = this.panelData[i];
    if (obj.panel != this.panel)
    obj.content.style.display = "none";
    obj.content.style.height = "0px";
    obj.content.style.overflow = obj.overflow;
    obj.content.style.height = (this.useFixedPanelHeights || obj.toHeight == 0) ? obj.toHeight + "px" : "auto";
    if (this.onComplete)
    this.onComplete();
    return;
    for (i = 0; i < this.panelData.length; i++)
    obj = this.panelData[i];
    var ht = this.transition(elapsedTime, obj.fromHeight, obj.distance, this.duration);
    obj.content.style.height = ((ht < 0) ? 0 : ht) + "px";
    var self = this;
    this.timer = setTimeout(function() { self.stepAnimation(); }, this.interval);
    })(); // EndSpryComponent
    I changed in the HTML code of the page with the accordion:
    <link href="SpryAssets/SpryAccordion.css" rel="stylesheet" ><script src="SpryAssets/SpryAccordion.js"></script>
    <script src="SpryAssets/SpryURLUtils.js"></script><script>
    var params = Spry.Utils.getLocationParamsAsObject();
    </script>
    and at the end: <script type="text/javascript">
    *var Accordion1 = new Spry.Widget.Accordion("Accordion1");{defaultPanel:params.panel?params.panel:0});*
    </script>
    Is the problem that there are more than 9 panels?
    I don't know if you have enough patience to help me again?

  • JQuery conflicting with spry

    Hi,
    I'm trying to use jquery with spry generated content. In the
    code below, I attempt to add a click event listener to fire an
    alert box. It seems as though the code does not work with the spry
    generated regions. Any ideas?
    Thanks
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=iso-8859-1" />
    <title>Untitled Document</title>
    <script language="JavaScript" type="text/javascript"
    src="includes/xpath.js"></script>
    <script language="JavaScript" type="text/javascript"
    src="includes/SpryData.js"></script>
    <script language="javascript"
    src="js/jquery.js"></script>
    <script language="JavaScript" type="text/javascript">
    <!--
    var xmlStr = "<?xml version=\"1.0\"
    encoding=\"iso-8859-1\"?> \
    <employees xmlns=\"
    http://www.foo.com/employees\">
    <employee> \
    <id>55555</id> \
    <lastname>Smith</lastname> \
    <firstname>Edward</firstname> \
    <phone>(415) 333-0235 </phone> \
    <username>esmith</username> \
    </employee> \
    <employee> \
    <id>44444</id> \
    <lastname>Johnson</lastname> \
    <firstname>Neil</firstname> \
    <phone>(415) 333-9475 </phone> \
    <username>njohnson</username> \
    </employee> \
    <employee> \
    <id>33333</id> \
    <lastname>Williams</lastname> \
    <firstname>Steve</firstname> \
    <phone>(415) 333-4573 </phone> \
    <username>swilliams</username> \
    </employee> \
    <employee> \
    <id>22222</id> \
    <lastname>Jones</lastname> \
    <firstname>John</firstname> \
    <phone>(415) 333-9345 </phone> \
    <username>jjones</username> \
    </employee> \
    <employee> \
    <id>54125</id> \
    <lastname>Brown</lastname> \
    <firstname>Joe</firstname> \
    <phone>(415) 333-5938 </phone> \
    <username>jbrown</username> \
    </employee> \
    </employees>";
    var dsEmployees = new Spry.Data.XMLDataSet(null,
    "/employees/employee");
    var xmlDOMDocument = Spry.Utils.stringToXMLDoc(xmlStr);
    dsEmployees.setDataFromDoc(xmlDOMDocument);
    jQuery.noConflict();
    jQuery(document).ready(function(){
    jQuery(".elements").click(function() {
    alert("hello");
    //jQuery(this).addClass("selected");
    </script>
    <style type="text/css">
    .selected {
    border:1px solid;
    </style>
    </head>
    <body>
    <div class="elements">hello</div>
    <div id="container" spry:region="dsEmployees">
    <div class="elements"
    spry:repeat="dsEmployees">{firstname}</div>
    </div>
    </body>
    </html>

    Try puting the jquery in a seperated <script> tag.
    jquery and spry doesnt play nice together when they are in
    the same tag. (alteast thats how i fixed my jquery problem)
    If this doesnt help, try using a older version of jquery (as
    test ofcourse)
    I remember i had some problems with jquery and Spry when i
    updated jquery to its latest function.

  • Spry Accordian with dynamic panels from XML

    Hi. I've searched, but haven't seen anybody answer this yet.
    I'm trying to build a page that uses a spry accordian to display
    data by category. So category 1 is on panel 1 in a spry table with
    a link to a spry detail section on the page. Category 2 is on panel
    2 in a spry table with a link to the same spry detail section, etc.
    I have 2 issues: 1) I haven't figured out how to filter a
    single XML data set onto different accordian panels or
    2) how to get the same detail region to take links from
    different XML data sets on the different panels.
    Any help that anybody could give would be VERY much
    appreciated.
    THANKS!

    I did get it working. Please check out..
    http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?catid=602&threadid=1334877
    The key is the Data Set Shell. I use multiple data sets for
    each category, in your case department. Then I list the items in
    that category to update a detail region. If the above link doesn't
    help you please re-post and I can give you some more help.

  • Using a Stacked Bar Chart With an Accordian Menu

    I am having difficulty using a stacked bar chart with an accordian menu. I am able to have one stack bar populate but the other four stays blank. There seems to be an issue with my destination. I dont think it likes that my destination is more than one row and one column. Is there a way to fix this?

    Hello,
    I think there may be an issue in how your model/Accordion Menu was configured.  What insert option are you using?  Your destination should only be 'one' row OR 'one' column at the most.
    Thanks,
    AJ

  • Spry Accordian Tabs Question

    Hi
    I'm trying to create a spry accordian menu for a navbar and am having some trouble.
    This is the first time I've tried it so I would appreciate any help.
    The Client would like the tabs to be:
    Home
    Students
       High School Students
       College Students
    Professionals
    Parents/Educators
    Seminars
    Bio
    Q  & A Blog
    Testimonials
    So all they would like High School Students and College Students to be child tabs underneath the parent tabs and all other tabs to be parent tabs.
    They asked for a spry accordian.
    They want the nav bar to be on the left.
    Here is the link to the website online:
    http://www.elynncohen.com/index2spry2.html#
    and here are my questions:
    1. The spry accordian has a box around it on mouse down but I can't figure out how to get rid of it. I've checked all the CSS rules for the spry accordian and none of them seem to have rules around them.
    2. All the tabs have a content area underneath them and we only want content areas underneath the student tab. You see how it goes when you click on any of the tabs, you get a little thing that says content 1, 2 etc. I tried deleting them in the code and the page goes completely crazy when I do and the nav bar areas stretch all the way across the page.
    3. I can't figure out how to get the child tabs (which would be the tabs under students which say high school and college) to have two tabs. You will see that it does have the high school tab there now. When I try cutting and pasting the code to try to get two tabs, it does not work. The spry accordian framework only creates one content area under each tab.
    4. I'd like the child tabs to have a narrower height than the parent tabs, and be indented so that they will clearly be set off and different than the parent tabs.
    Any help would be much appreciated!
    Thanks!!!
    Here is my code:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Your Career Direction Career and College Counseling</title>
    <meta name="Keywords" content="career counseling, college counseling, job search, career choice, college options, career options, work, jobs, new opportunities, career change, new career, new job" />
    <meta name="Description" content="Your Career Direction :: Career and College Counseling" "Considering your college choices & career options" "Preparing for the world of work after college" "Seeking a new position to further your career"
    "In-transition and considering new opportunities"
    "Seeking to make a significant and meaningful career change"  />
    <meta name="Publisher" content="Your Career Direction, LLC" />
    <meta name="Copyright" content="Copyright 2012, Your Career Direction, LLC. All rights reserved." />
    <meta name="Author" content="Lisa Mark" />
    <meta name="Language" content="en-US" />
    <meta name="distribution" content="global" />
    <meta name="revisit-after" content="10 days" />
    <meta name="Robots" content="All" />
    <link rel="Index" href="index.html" />
    <link rel="Site Map" href="sitemap.html" />
    <script type="text/javascript" src="//use.typekit.net/ifb2bte.js"></script>
    <script src="SpryAssets/SpryAccordion.js" type="text/javascript"></script>
    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
    <style type="text/css">
    <!--
    body {
        margin: 0;
        padding: 0;
        color: #000;
        font-size: 100%;
        line-height: 1.4;
        background-image: url(images/background.gif);
        background-repeat: repeat;
    /* ~~ Element/tag selectors ~~ */
    ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
        padding: 0;
        margin: 0;
    h1, h2, h3, h4, h5, h6, p {
        margin-top: 0;     /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
        padding-right: 15px;
        padding-left: 15px;
    .container .sidebar1 h3 {
        padding-left: 0px;
        color: #C60651;
        font-size: x-large;
    h1 strong {
        color: #C60651;
        font-size: 90%;
        font-family: "Binary ITC Bold";
    h1 strong em {
    a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
        border: none;
    /* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
    a:link {
        color:#414958;
        text-decoration: underline; /* unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
    a:visited {
        color: #4E5869;
        text-decoration: underline;
    a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
        text-decoration: none;
    /* ~~ this container surrounds all other divs giving them their percentage-based width ~~ */
    .container {
        width: 80%;
        max-width: 1260px;/* a max-width may be desirable to keep this layout from getting too wide on a large monitor. This keeps line length more readable. IE6 does not respect this declaration. */
        min-width: 780px;/* a min-width may be desirable to keep this layout from getting too narrow. This keeps line length more readable in the side columns. IE6 does not respect this declaration. */
        background: #FFF; /* the auto value on the sides, coupled with the width, centers the layout. It is not needed if you set the .container's width to 100%. */
        margin-top: 0;
        margin-bottom: 0;
        margin-right: auto;
        margin-left: auto;
        border-right-width: thick;
        border-left-width: thick;
        border-right-style: solid;
        border-left-style: solid;
        border-right-color: #C60651;
        border-left-color: #C60651;
    /* ~~ the header is not given a width. It will extend the full width of your layout. It contains an image placeholder that should be replaced with your own linked logo ~~ */
    .header {
        padding-top: 40px;
    #Quote {
        float: right;
        clear: left;
        margin-right: 1%;
    /* ~~ These are the columns for the layout. ~~
    1) Padding is only placed on the top and/or bottom of the divs. The elements within these divs have padding on their sides. This saves you from any "box model math". Keep in mind, if you add any side padding or border to the div itself, it will be added to the width you define to create the *total* width. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design.
    2) No margin has been given to the columns since they are all floated. If you must add margin, avoid placing it on the side you're floating toward (for example: a right margin on a div set to float right). Many times, padding can be used instead. For divs where this rule must be broken, you should add a "display:inline" declaration to the div's rule to tame a bug where some versions of Internet Explorer double the margin.
    3) Since classes can be used multiple times in a document (and an element can also have multiple classes applied), the columns have been assigned class names instead of IDs. For example, two sidebar divs could be stacked if necessary. These can very easily be changed to IDs if that's your preference, as long as you'll only be using them once per document.
    4) If you prefer your nav on the right instead of the left, simply float these columns the opposite direction (all right instead of all left) and they'll render in reverse order. There's no need to move the divs around in the HTML source.
    .sidebar1 {
        float: left;
        width: 15%;
        padding-bottom: 10px;
        margin-top: 40px;
        margin-left: 25px;
        background-color: #FFF;
        font-family: museo-sans;
    arial;
        max-width: 200px;
        min-width: 180px;
    .content {
        float: left;
        padding-top: 10px;
        padding-bottom: 10px;
        padding-left: 10;
        font-family: museo-sans;
    arial;
        margin-top: 40px;
        padding-right: 10px;
        width: 50px;
        font-size: large;
    .container .content p {
        padding-top: 0px;
    .sidebar2 {
        float: left;
        width: 20%;
        background-color: #D3CCB2;
        margin-top: 40px;
        padding-top: 10px;
        border-top-color: #FFF;
        border-right-color: #FFF;
        border-bottom-color: #FFF;
        border-left-color: #FFF;
        border-right-width: 5px;
        font-family: museo-sans;
    arial;
        font-size: 90%;
        right: 12%;
    /* ~~ This grouped selector gives the lists in the .content area space ~~ */
    .content ul, .content ol {
        padding-top: 0px;
        padding-right: 25px;
        padding-bottom: 15px;
        padding-left: 40px;
        font-family: museo-sans; arial;
        font-size: 100%;
        color: #666;
    .container .content p {
        font-family: museo-sans;
    arial;
        padding-top: 0px;
        padding-left: 17px;
        padding-bottom: 0px;
    #Quote {
        float: right;
        clear: both;
    /* ~~ The navigation list styles (can be removed if you choose to use a premade flyout menu like Spry) ~~ */
    ul.nav {
        list-style: none; /* this creates the space between the navigation on the content below */
        font-family:museo-sans; arial;
        line-height: 250%;
    .nav {
        font-family: museo-sans;
    arial;
        padding-left: 0px;
    ul.nav li {
        font-family: museo-sans; arial;
        padding-bottom: 10px;
    ul.nav a, ul.nav a:visited { /* grouping these selectors makes sure that your links retain their button look even after being visited */
        display: block; /* this gives the link block properties causing it to fill the whole LI containing it. This causes the entire area to react to a mouse click. */
        text-decoration: none;
        color: #333333;
        background-color: #FFF;
        font-family: museo-sans; arial;
        padding-top: 5px;
        padding-right: 5px;
        padding-bottom: 10px;
        padding-left: 15px;
    ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* this changes the background and text color for both mouse and keyboard navigators */
        color: #C60651;
        font-family:museo-sans; arial;
        background-color: #FFF;
        background-image: url(images/navbar2.gif);
        padding-bottom: 10px;
    .content img {
    /* ~~The footer ~~ */
    .footer {
        position: relative;/* this gives IE6 hasLayout to properly clear */
        clear: both; /* this clear property forces the .container to understand where the columns end and contain them */
        padding-top: 0px;
        padding-right: 0;
        padding-bottom: 10px;
    /* ~~miscellaneous float/clear classes~~ */
    .fltrt {  /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
        float: right;
        margin-left: 8px;
    .fltlft { /* this class can be used to float an element left in your page. The floated element must precede the element it should be next to on the page. */
        float: left;
        margin-right: 8px;
    .clearfloat { /* this class can be placed on a <br /> or empty div as the final element following the last floated div (within the #container) if the #footer is removed or taken out of the #container */
        clear:both;
        height:0;
        font-size: 1px;
        line-height: 0px;
    .container .content {
        width: 50%;
        font-size: large;
        font-family: museo-sans; arial;
    #footer {    width: 100%;
        background-color: #FFF;
    .container .sidebar2 h4 img {
        padding-left: 20px;
        padding-top: 0px;
    .sidebar2 p img {
        border: medium solid #C60651;
    #Insert_logo2 {
        border-top-width: 4px;
        border-right-width: 4px;
        border-bottom-width: 4px;
        border-left-width: 4px;
        border-top-color: #fff;
        border-right-color: #fff;
        border-bottom-color: #fff;
        border-left-color: #fff;
    .container .content p .content strong {
        font-family: museo-sans; arial;
    .container .content .content {
        font-family: museo-sans; arial;
    .container .content ul li strong {
        font-family: museo-sans;
    arial;
        font-size: 95%;
        line-height: 150%;
        list-style-type: disc;
    .container .content ul {
    test {
        font-family: "Binary ITC Bold";
    .container .sidebar2 p img {
        margin-right: auto;
        margin-left: auto;
        border-top-width: medium;
        border-right-width: medium;
        border-bottom-width: medium;
        border-left-width: medium;
        border-top-color: #C60651;
        border-right-color: #C60651;
        border-bottom-color: #C60651;
        border-left-color: #C60651;
    li strong {
        line-height: 130%;
        list-style-type: circle;
        color: #978980;
    .container .content ul {
    .container .sidebar1 .nav {
        margin-top: 10px;
        margin-bottom: 10px;
    .sidebar1 .nav li {
        padding-bottom: 10%;
    .nav li a {
        background-image: url(images/navbar2.gif);
        background-repeat: no-repeat;
        background-position: right center;
        left: auto;
        right: auto;
        clip: rect(auto,auto,auto,auto);
    .container .sidebar1 .nav li a {
    .container .sidebar1 h6 {
        padding: 0px;
        color: #000000;
    #footer h3 strong {
        font-size: 60%;
        color: #978980;
    .container .content p {
        padding-right: 0%;
        padding-left: 0%;
        font-size: 85%;
    .container .sidebar2 p {
        padding-right: 8%;
        padding-left: 8%;
        padding-top: 5px;
    #Insert_logo2 #Insert_logo2 {
        padding-left: 15px;
    .container .content ul {
        color: #C60651;
    h6 {
        color: #978980;
        font-family: museo-sans;
    arial;
        font-size: 82%;
        padding-left: 20%;
        text-align: left;
        text-indent: 8px;
    .nav li a {
        padding-bottom: 10px;
    h8 {
        font-family: museo-sans; arial;
        font-size: 100%;
    h4 {
        font-family: museo-sans;
    arial;
        font-size: 100%;
        color: #C60651;
        padding-left: 17px;
        padding-top: 5px;
        padding-bottom: 0px;
    .container .content p {
        padding-left: 17px;
        padding-right: 30px;
    .sidebar1 h8 strong {
        font-size: 80%;
        font-family:museo-sans; arial;
    .container .sidebar1 h7 {
        font-size: 40%;
        color: #978980;
    h7 {
        font-family: museo-sans; arial;
        font-size: 15%;
    .container .sidebar1 h8 {
        font-family: museo-sans; arial;
    .sidebar2 p img {
            max-width: 100%;
    .container .content img {
        padding-left: 3%;
    img {
        position: static;
        text-align: left;
    body,td,th {
        font-family: museo-sans; arial;
    h5 {
        font-size: 150%;
        color: #C60651;
        padding-left: 0px;
        font-family:museo-sans; arial;
    .container .content p {
        padding-left: 17px;
        padding-right: 30px;
        font-size: 87%;
    .container .sidebar2 p {
        font-size: 90%;
    .container .sidebar1 .nav li {
        font-family: museo-sans;
    arial;
    .container .sidebar1 .nav li a {
        padding-left: 0px;
        margin-bottom: 0px;
        height: 30px;
    li a {
        padding-left: 2px;
    -->
    </style><!--[if lte IE 7]>
    <style>
    .content { margin-right: -1px; } /* this 1px negative margin can be placed on any of the columns in this layout with the same corrective effect. */
    ul.nav a { zoom: 1; }  /* the zoom property gives IE the hasLayout trigger it needs to correct extra whiltespace between the links */
    </style>
    <![endif]-->
    <link href="SpryAssets/SpryAccordion.css" rel="stylesheet" type="text/css">
    </head>
    <body><script type="text/javascript">
    function pageWidth() {
    return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
    function pageHeight() {
    return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
    </script>
    <div class="container">
      <div class="header"><!-- end .header -->
        <p class="clearfloat"><a href="#index.html" id="Insert_logo2"><img src="images/YCD-logo-tag-RGB-web-SM.gif" alt="Your Career Direction Logo" name="Insert_logo" width="50%" id="Insert_logo2" style="background: #FFF
        ; display:block;" /></a></p>
        <div id="Quote"><img src="images/quote.gif" alt="Choose a job you love" width="355" height="81"></div>
        <p class="clearfloat"> </p>
    </div>
      <div class="sidebar1">
        <ul class="nav">
          <li>
            <div id="Accordion1" class="Accordion" tabindex="0">
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Home</a></div>
                <div class="AccordionPanelContent">Content 1</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Students</a></div>
                <div class="AccordionPanelContent"><a href="#">High School</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Professional</a></div>
                <div class="AccordionPanelContent">Content 3</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Parent/Educator</a></div>
                <div class="AccordionPanelContent">Content 4</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Seminars</a></div>
                <div class="AccordionPanelContent">Content 5</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Bio</a></div>
                <div class="AccordionPanelContent">Content 6</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Q &amp; A Blog</a></div>
                <div class="AccordionPanelContent">Content 7</div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Testimonials</a></div>
                <div class="AccordionPanelContent">Content 8</div>
              </div>
            </div>
          </li>
        </ul>
      </div>
      <div class="content">
    <p>Given today's competitive job market, global economy, and changed corporate culture,
    we can no longer depend upon others to ensure our professional futures. Choosing or
    changing your career direction requires self-reflection, career education and an action plan.</p>
    <img src="images/Whether-you-are-.gif" alt="Whether you are considering your college choices and career options" width="197" height="31" align="left">
    <ul>
          <br><br><li><strong>Considering your college choices &amp; career options</strong></li>
          <li><strong>Preparing for the world of work after college</strong></li>
          <li><strong>Seeking a new position to further your career</strong></li>
          <li><strong>In-transition and considering new opportunities</strong></li>
          <li><strong>Seeking to make a significant and meaningful career</strong> <strong>change</strong></li>
        </ul>
    <img src="images/Onethingisforsureraster.gif" width="352" height="49" alt="One thing is for sure, we all want to direct our own careers, our own lives!">
    <br><p> Building a successful and rewarding career requires linking your interests, education and experience with employment trends, growth industries, and career choices. It takes making smart decisions about your college major, vocational training and continuing education options. With enthusiasm, persistence and top notch job search skills, you can succeed in finding a path to career that is right for you.</p>
    <p> We are your advocate. We listen, assess, strategize, inspire, counsel, and network on your behalf. With a personalized, holistic approach, we'll work with you to help you create an action plan; a path designed to get you to where you want to go and become what you want to be.</p>
    <img src="images/yourcareerourpassionraster.gif" width="441" height="20" alt="At Your Career Direction, YOUR career is our passion!"> </div>
      <div class="sidebar2">
        <p><img src="images/Counselingastudent.gif" width="100%" alt="Lisa Mark counseling a student"></p>
        <p>Our mission is to help you explore, choose and create your direction for an exciting and rewarding career path.</p>
         <p>We incorporate our experience with today's job market and career counseling expertise with your passions and interests. We'll introduce you to new career ideas, target companies and generate job and internship opportunities for you.</p>
         <p>We provide step by step guidance to ensure your success during the college application, job interview
    and decision making process.
    </p>
    </div>
      <div class="footer">
        <div id="footer">
          <h6 align="left"> Your Career Direction, LLC •  96 Harvard Avenue, Maplewood, N.J. 07040 • (973) 996-0207 • [email protected]</h6>
        </div>
        <p> </p>
      <!-- end .footer --></div>
    <!-- end .container --></div>
    <script type="text/javascript">
    var Accordion1 = new Spry.Widget.Accordion("Accordion1");
    </script>
    </body>
    </html>

    1. The spry accordian has a box around it on mouse down but I can't figure out how to get rid of it. I've checked all the CSS rules for the spry accordian and none of them seem to have rules around them.
    2. All the tabs have a content area underneath them and we only want content areas underneath the student tab. You see how it goes when you click on any of the tabs, you get a little thing that says content 1, 2 etc. I tried deleting them in the code and the page goes completely crazy when I do and the nav bar areas stretch all the way across the page.
    3. I can't figure out how to get the child tabs (which would be the tabs under students which say high school and college) to have two tabs. You will see that it does have the high school tab there now. When I try cutting and pasting the code to try to get two tabs, it does not work. The spry accordian framework only creates one content area under each tab.
    4. I'd like the child tabs to have a narrower height than the parent tabs, and be indented so that they will clearly be set off and different than the parent tabs.
    1. Line 454
    <div id="Accordion1" class="Accordion" tabindex="0" style="outline: none;">
    2 & 3. Change your code from Line 455 - 491:
    <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Home</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Students</a></div>
                <div class="AccordionPanelContent"><a href="#">High School</a><br/><a href="#" style="margin-top: -30px;">College</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Professional</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Parent/Educator</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Seminars</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Bio</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Q &amp; A Blog</a></div>
              </div>
              <div class="AccordionPanel">
                <div class="AccordionPanelTab"><a href="#">Testimonials</a></div>
              </div>
            </div>
          </li>
        </ul>
      </div>
    4. Append your HTML for child tabs like this:
    <div class="AccordionPanelContent" id="submenu"><a href="#">High School</a></div>
    Create a new #submenu css rule in your CSS document and set styling the way you want it.

  • How to apply different styles to multiple spry accordian panels?

    Hi all,
    I have a website that I'm building that has multiple spry accordian features on it.
    I am trying to apply different styles to each accordian. A problem arises when I try to place an accordian within another accordian.
    I have styled two different background images for two of the accordians for the styles (AccordionPanelTab, AccordionPanelTabHover and AccordionPanelOpen AccordionPanelTabHover) which work fine.
    When I try and place an accordian within another accordian the background image for this accordian for the styles (AccordionPanelTab and AccordionPanelOpen AccordionPanelTabHover) has the different style applyed that I stated in the accordion.css file, however the style (AccordionPanelTabHover) has the same style as the accordian it is within even though in the accordion.css file I stated a different background image.
    I hope all this makes sence below is my source and CSS Code.
    I appriciate any help that can be given to help resolve this issue I am running in too.
    Source Code
    <div id="content">
    <p><span class="first_header_word_packages">Welcome</span> <span class="header_word_packages">to our packages page</span></p>
    <p class="content_txt">Here you can build the website package that matches your business needs as well as being able to work out the cost of your site without having to worry about scary hidden costs at a later date.</p>
    <p class="content_txt"> We have two packages available for our customers;</p>
    <div id="Accordion1" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab"></div>
        <div class="AccordionPanelContent">
       <p>Text Goes Here</p>
        <div id="Accordion2" class="Accordion" tabindex="0">
          <div class="AccordionPanel">
        <div class="AccordionPanelTab"></div>
        <div class="AccordionPanelContent">
        <p>Text Goes Here</p>
        </div><!-- end #Accordion2 Content -->
      </div><!-- end #AccordionPanel -->
    </div><!-- end #Accordion2 -->
        </div><!-- end #Accordion1 Content -->
      </div><!-- end #AccordionPanel -->
    </div><!-- end #Accordion1 -->
    <div id="Accordion3" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab"></div>
        <div class="AccordionPanelContent">
             <p>Text Goes Here</p>
          <div id="Accordion4" class="Accordion" tabindex="0">
            <div class="AccordionPanel">
        <div class="AccordionPanelTab"></div>
        <div class="AccordionPanelContent">
         <p>Text Goes Here</p>
        </div><!-- end #Accordion4 Content -->
      </div><!-- end #AccordionPanel -->
    </div><!-- end #Accordion4 -->
        </div><!-- end #Accordion3 Content -->
      </div><!-- end #AccordionPanel -->
    </div><!-- end #Accordion3 -->
    </div><!-- end #content -->
    CSS
    @charset "UTF-8";
    /* SpryAccordion.css - version 0.5 - Spry Pre-Release 1.6.1 */
    /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */
    /* This is the selector for the main Accordion container. For our default style,
    * we draw borders on the left, right, and bottom. The top border of the Accordion
    * will be rendered by the first AccordionPanelTab which never moves.
    * If you want to constrain the width of the Accordion widget, set a width on
    * the Accordion container. By default, our accordion expands horizontally to fill
    * up available space.
    * The name of the class ("Accordion") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style the
    * Accordion container.
    .Accordion {
              border-left: solid 1px gray;
              border-right: solid 1px black;
              border-bottom: solid 1px gray;
              overflow: hidden;
    /* This is the selector for the AccordionPanel container which houses the
    * panel tab and a panel content area. It doesn't render visually, but we
    * make sure that it has zero margin and padding.
    * The name of the class ("AccordionPanel") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style an
    * accordion panel container.
    .AccordionPanel {
              margin: 0px;
              padding: 0px;
    /* This is the selector for the AccordionPanelTab. This container houses
    * the title for the panel. This is also the container that the user clicks
    * on to open a specific panel.
    * The name of the class ("AccordionPanelTab") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style an
    * accordion panel tab container.
    * NOTE:
    * This rule uses -moz-user-select and -khtml-user-select properties to prevent the
    * user from selecting the text in the AccordionPanelTab. These are proprietary browser
    * properties that only work in Mozilla based browsers (like FireFox) and KHTML based
    * browsers (like Safari), so they will not pass W3C validation. If you want your documents to
    * validate, and don't care if the user can select the text within an AccordionPanelTab,
    * you can safely remove those properties without affecting the functionality of the widget.
    .AccordionPanelTab {
              background-color: #CCCCCC;
              border-top: solid 1px black;
              border-bottom: solid 1px gray;
              margin: 0px;
              padding: 2px;
              cursor: pointer;
              -moz-user-select: none;
              -khtml-user-select: none;
    /* This is the selector for a Panel's Content area. It's important to note that
    * you should never put any padding on the panel's content area if you plan to
    * use the Accordions panel animations. Placing a non-zero padding on the content
    * area can cause the accordion to abruptly grow in height while the panels animate.
    * Anyone who styles an Accordion *MUST* specify a height on the Accordion Panel
    * Content container.
    * The name of the class ("AccordionPanelContent") used in this selector is not necessary
    * to make the widget function. You can use any class name you want to style an
    * accordion panel content container.
    .AccordionPanelContent {
              overflow: auto;
              margin: 0px;
              padding: 0px;
    /* This is an example of how to change the appearance of the panel tab that is
    * currently open. The class "AccordionPanelOpen" is programatically added and removed
    * from panels as the user clicks on the tabs within the Accordion.
    .AccordionPanelOpen .AccordionPanelTab {
              background-color: #EEEEEE;
    /* This is an example of how to change the appearance of the panel tab as the
    * mouse hovers over it. The class "AccordionPanelTabHover" is programatically added
    * and removed from panel tab containers as the mouse enters and exits the tab container.
    .AccordionPanelTabHover {
              color: #555555;
    .AccordionPanelOpen .AccordionPanelTabHover {
              color: #555555;
    /* This is an example of how to change the appearance of all the panel tabs when the
    * Accordion has focus. The "AccordionFocused" class is programatically added and removed
    * whenever the Accordion gains or loses keyboard focus.
    .AccordionFocused .AccordionPanelTab {
              background-color: #3399FF;
    /* This is an example of how to change the appearance of the panel tab that is
    * currently open when the Accordion has focus.
    .AccordionFocused .AccordionPanelOpen .AccordionPanelTab {
              background-color: #33CCFF;
    /* Rules for Printing */
    @media print {
      .Accordion {
      overflow: visible !important;
      .AccordionPanelContent {
      display: block !important;
      overflow: visible !important;
      height: auto !important;
    #Accordion1  .AccordionPanelTab {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg1.png);}
    #Accordion1 .AccordionPanelTabHover,
    #Accordion1 .AccordionPanelOpen .AccordionPanelTabHover {
    background:url(../images/package_spry_tab_bg1_RO.png);}
    #Accordion2  .AccordionPanelTab {
    height:44px;
    width:469px;
    background:url(../images/packages_spry1.png);}
    #Accordion2 .AccordionPanelTabHover,
    #Accordion2 .AccordionPanelOpen .AccordionPanelTabHover {
    background:url(../images/packages_spry1_ro.png);}
    #Accordion3  .AccordionPanelTab {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg2.png);}
    #Accordion3 .AccordionPanelTabHover,
    #Accordion3 .AccordionPanelOpen .AccordionPanelTabHover {
    background:url(../images/package_spry_tab_bg2_RO.png);}
    #Accordion4  .AccordionPanelTab {
    height:44px;
    width:469px;
    background:url(../images/packages_spry2.png);}
    #Accordion4 .AccordionPanelTabHover,
    #Accordion4 .AccordionPanelOpen .AccordionPanelTabHover {
    background:url(../images/packages_spry2_ro.png);}

    Okay guys,
    I figured it out, if anyone was having the same problem as me and looking on this thread for the answer, here it is.
    Firstly if you're wanting to seperatly style two or more Spry Accordions that are not within each other e.g.
    <div id="Accordion1" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab">Label 1</div>
        <div class="AccordionPanelContent">
       <p>Content Goes Here </p>
    </div><!-- end #Accordion1 Content -->
      </div><!-- end #Accordion1 .AccordionPanel -->
    </div><!-- end #Accordion1 -->
    <div id="Accordion2" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab">Label 1</div>
        <div class="AccordionPanelContent">
       <p>Content Goes Here </p>
    </div><!-- end #Accordion2 Content -->
      </div><!-- end #Accordion2 .AccordionPanel -->
    </div><!-- end #Accordion2 -->
    You don't have to do this, as long as you have seperate ID's for the divs (which dreamweaver automatically does anyway) you'll be fine.
    However if for some reason you want to put one accordion inside another like I did e.g.
    <div id="Accordion1" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab">Label 1</div>
        <div class="AccordionPanelContent">
       <p>Content Goes Here </p>
    <div id="Accordion2" class="Accordion" tabindex="0">
      <div class="AccordionPanel">
        <div class="AccordionPanelTab">Label 1</div>
        <div class="AccordionPanelContent">
       <p>Content Goes Here </p>
    </div><!-- end #Accordion2 Content -->
      </div><!-- end #Accordion2 .AccordionPanel -->
    </div><!-- end #Accordion2 -->
    </div><!-- end #Accordion1 Content -->
      </div><!-- end #Accordion1 .AccordionPanel -->
    </div><!-- end #Accordion1 -->
    Too style Accordian 1 & 2 so their tabs both have different backgrounds and Hover background when the content panel is open and closed you have to style it in the CSS they following way;
    CSS
    #Accordion1  .AccordionPanelTab {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg.png);}
    #Accordion1 .AccordionPanelTabHover,
    #Accordion1 .AccordionPanelOpen .AccordionPanelTabHover {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg_RO.png);}
    #Accordion2  .AccordionPanelTab {
    height:44px;
    width:469px;
    background:url(../images/packages_spry.png);}
    #Accordion2 .AccordionPanelClosed .AccordionPanelTabHover,
    #Accordion2 .AccordionPanelOpen .AccordionPanelTabHover {
    height:44px;
    width:469px;
    background:url(../images/packages_spry_ro.png);}
    Normally when styling two seperate spry accordions you can just use the following code
    #Accordion1  .AccordionPanelTab {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg.png);}
    #Accordion1 .AccordionPanelTabHover,
    #Accordion1 .AccordionPanelOpen .AccordionPanelTabHover {
    height:75px;
    width:285px;
    background:url(../images/package_spry_tab_bg_RO.png);}
    The only difference with styling a Spry accordion within another to ensure they have different hover backgrounds when the content panel is open and closed is ".AccordionPanelClosed".
    Hope this helped anyone who was having the same issue I was.

  • Anchor to Spry row on another page?

    My current project is a sort of photo gallery,which displays one image at a time from an XML file.
    I decided Spry was the way to go, and it has worked very well so far. I recently figured pagination out, and I have a fully functional page.
    The problem is that I now want to add a permalink system by using anchors.
    The idea is that when someone goes to www.myurl.com/#{number} it shows the page that contains the row that has that value in the "number" column
    In my images.xml file I have
    <images>
    <image>
    <number>6181278919</number>
    <url>http://farm7.staticflickr.com/6153/6181278919_34e959ae96_b.jpg</url>
    <title>Times Square</title>
    </image>
    </image>
    In my header I have
    <script src="xpath.js" type="text/javascript"></script>
    <script src="SpryURLUtils.js" type="text/javascript"></script>
    <script type="text/javascript">var anchno = Spry.Utils.getLocationParamsAsObject();</script>
    <script src="SpryData.js" type="text/javascript"></script>
    <script type="text/javascript">var imagesup = new Spry.Data.XMLDataSet("images.xml", "images/image");</script>
    <script src="SpryPagedView.js" type="text/javascript"></script>
    <script type="text/javascript">var imagespv = new Spry.Data.PagedView( imagesup ,{ pageSize: 1 });</script>
    This creates a paged data set where one row of data shows at a time ("imagespv") from images.xml, and should hopefully create a variable ("anchno") which contains the data put after the "#" in the URL. Therefore if the user goes to www.myurl.com/#6181278919, anchno should equal 6181278919
    In my region, I have
    <div spry:region="imagespv" spry:repeatchildren="imagespv">
    <img src="{url}">
    <h2>{title} (<a href="http://www.flickr.com/photos/myname/{number}">View on Flickr>></a>)
    <input type="button" value="First" onClick="imagespv.firstPage();" />
    <input type="button" value="Prev" onClick="imagespv.previousPage();" />
    <input type="button" value="Next" onClick="imagespv.nextPage();" />
    <input type="button" value="Last" onClick="imagespv.lastPage();" />
    </div>
    Which shows the current content of imagespv, and has 4 buttons that change which row of images.xml is showing.
    So now I need to set up a system where if anchno is given a value, imagespv is changed to show the row where the {number} column matches anchno
    Anything that can be done?

    Thanks for the help, but it still doesn't seem to work. I think I must not be following the instructions properly. I am not familiar with functions, but reading the code it seems to make sense, so I don't see why it's not working.
    My header now reads:
      <script src="xpath.js" type="text/javascript"></script>
      <script src="SpryDOMUtils.js" type="text/javascript"></script>
      <script src="SpryURLUtils.js" type="text/javascript"></script>
      <script type="text/javascript">var params = Spry.Utils.getLocationParamsAsObject();</script>
      <script src="SpryData.js" type="text/javascript"></script>
      <script type="text/javascript">var imagesup = new Spry.Data.XMLDataSet("images.xml", "images/image");</script>
      <script src="SpryPagedView.js" type="text/javascript"></script>
      <script type="text/javascript">var imagespv = new Spry.Data.PagedView( imagesup ,{ pageSize: 1 });</script>
      <script>
        function InitPage() {
          imagespv.addObserver({ onPostLoad: function(ds, type) {
            imagespv.removeObserver(this);
              var row = imagespv.findRowsWithColumnValues({"number": params.anchno }, true);
              if (row)
                imagespv.setCurrentRow(row.ds_RowID);
        Spry.Utils.addLoadListener(InitPage);
      </script>
    And I would have thought that to access the next page I should go to either
    myurl.com/index.html?anchno=6181813282
    or
    myurl.com/index.html#6181813282
    but neither of these work (6181813282 is the value in the "number" column of the next row)
    Thanks for trying to help, I've seen a lot of helpful posts by you when I've been googling, but I really can't see why it won't work.

  • Spry Accordian in navigation

    Hi,
    I am new to the spry and I am using DW CS 3 from a Mac
    (Leopard). It's a cool effect that help designers me who are new to
    scripting or no background at all. I am trying to use the Spry
    Accordian in my navigation as a vertical menu with sub categories
    inside each panel content. My client want to use a specific font so
    I cannot use regular fonts inside the accordian. So I am using jpeg
    button images as roll over, both inside the panel and panel
    contents. I have figured out things like variable heights in
    panels, setting default panels etc. and it works well.
    However the issue is my client says that on IE on a PC the
    whole thing is shaky when navigating, as it jumps around in
    transition which I noticed even on my Safari. After searching
    through your help forums I saw a similar post and the
    recommendation was update the Spry to 1.6. I did that I it seems to
    have helped it localy on my computer in Safari. I haven't changed
    it on the test site as I wanted an expert from here to look at it
    and let me know if I am on the right track or if I need to do
    anything else.
    You can see what my client is referring to when you are in
    OUR PEOPLE category (select a bio) and then try to select OUR
    SOLUTIONS (again select a sub category) and the whole accordian
    jumps and shifts before settling down the way I want it. Any help
    you can give me is much appreciated.. and please note that I am
    basically a designer and not a programmer, so my knowledge on
    scripts are limited...
    Here's the URL to the test site:
    http://www.canlanka.com/ignition/company.html

    Thanks for your reply.....
    The reason I am using images are because the client wants the
    corporate font (Antique Olive) at least used on the buttons and
    headline. This prevents me using the CSS styles and I am not
    proficient enough to find a way to embed this particular font. I
    can change the jpegs into giffs as you suggested if that helps. I
    am also wondering if the staggered loading is anything to do with
    the overflow setting on the panels in the SpryAccordian.css file? I
    had to change it to visible in order to go in and change the image
    as they are selected, after which I have kept the setting as
    AUTO... may be is should be HIDDEN... or it may got n0thing to do
    with the issue... but I am running out of options here....

  • Re: Spry Accordian Panels

    Hi.  I used Spry Accordian Panels in a new website I created using Dreamweaver CS6.  Most people can see and click the panel to open it and see the content in it.  However, I know someone that's blind that would like to use the site but is having a lot of trouble with it.  The panel tabs are not links so it doesn't tell him to click it.  I've tried putting the tabindex attribute on each panel tab and the aria-polite:polite but it hasn't helped.  Any ideas?

    Hi.  I used Spry Accordian Panels in a new website I created using Dreamweaver CS6.  Most people can see and click the panel to open it and see the content in it.  However, I know someone that's blind that would like to use the site but is having a lot of trouble with it.  The panel tabs are not links so it doesn't tell him to click it.  I've tried putting the tabindex attribute on each panel tab and the aria-polite:polite but it hasn't helped.  Any ideas?

  • Need help with horizontal accordian panels

    Hi,
    I'm wondering how I would re-create a horizontal accordian panel set, such as the one used in this website link, "http://www.thecapriapts.com/".
    When I insert a "spry accordian" panel set, the panels are stacked on top of each other. I guess you would consider that a "vertical" accordian. Is it possible to manipulate the CSS to have it display horizontally, like the link I attached? Or.. is this a common javascript that I sould look into?
    As always, thanks for your help out there...
    Chris

    With spry, there are two different kinds you can use: horizontal and vertical. What you're looking at in that site is horizontal. Usually, it appears as rectangles placed next to each other with the spry flying out below. In DW, you can go to your CSS rules for your spry menu and change the width and height of your boxes in your spry, depending upon which rule you have selected. Play around with that and see if you can just manipulate the horizontal accordian spry to where the rectangles end up being tall and thin. This will make it difficult, however, to get the text on its side like you see in that site. I'm not sure how you would go about doing that. But I would suggest trying to play around with the values in your CSS styles panel on the right (this is me looking at CS5 mind you. I'm not sure what you're running.)
    Either way, for times sake and also readability, might I respectfully suggest playing around with other sprys to see if any look more aesthetically pleasing for your site? It would also make it a lot simpler to tweak to your liking.

  • Spry accordian panel not closing

    I have created a page using both the spry tabbed panels and
    accordian panels. The accordian panels are in the content sections
    of the tabbed ares. I want the accordian panels to be closed
    initially, and whenever you click on the tab of the panel it will
    open if it is closed, and close if it is open. I have modified the
    code (as described in the Adobe Resource section) at the bottom of
    the div. I got it to work on a simpler page (without the tabbed
    panels) but I can't get it to close when click on if open. It will
    close if another tab is clicked, but that isn't what I want. I'm
    thinking it has something to do with the fact that it is in the
    tabbed panels spry, or I am overlooking something. I am not very
    verse in javascript, so I can't troubleshoot it. Can someone look
    at the code and suggest a solution? The site is
    http://www.capitolphotointeractive.com/test

    Hi amilesslady,
    You'll need to replace the version of the SpryAccordion.js
    file on your site with a more recent one. You can get the the one
    from Spry 1.6.1 here:
    http://labs.adobe.com/technologies/spry/widgets/accordion/SpryAccordion.js
    Or you can download the Dreamweaver 1.6.1 updater and use it
    to update the Spry related files in Dreamweaver and your sites.
    http://download.macromedia.com/pub/labs/spry/1/spry_p1-6-1_updater_022508.mxp
    --== Kin ==--.

  • Spry Accordian - Javascript Variable - Replace simple ASP

    Hey Gang,
    I'm not familiar with Javasscript Syntax as much as I'd like
    to be.
    But I need to quickly replace this simple VBScript for
    grabbing a querysting
    and using it in the page
    Basically I'm using the Spry Accordian and setting the
    default panel based
    on a querystring variable.
    There may be a far better way, but this is a quick example.
    What I need is a Javascript solution.
    Thanks
    -Dave
    <%
    Select case Request.Querystring("p")
    Case "0"
    strPanel = "0"
    Case "1"
    strPanel = "1"
    End select
    %>
    <script type="text/javascript">
    <!--
    var Accordion1 = new Spry.Widget.Accordion("Accordion1", {
    defaultPanel: <%=
    strPanel %> });
    //-->
    </script>

    Hi Gramps!
    Appreciate your advice and reference to Backyard Furniture. I've been working on it and thought I was getting close...but the revised coding just created havoc on my site.
    Could you please have a look at  http://www.trafficnetwork.ecanvas.com.sg/TMA.html and advice?
    Cheers!

Maybe you are looking for

  • Error while updating Apple IPhone 3GS

    I tried to update my IPhone 3GS using Itunes version 11.0.4 for Windows but at the end it displays the message Your phone could not be activated as the server is temporarily unavailable..Please suggest what can i do in this situation.

  • So to use a mouse with iPad

    I Use iMovie a lot and the iPads great but would love the ease of editing with a mouse, I saw the videos for jbking and installing a mouse, so should I?

  • My phone is not showing up in Devices,

    I have just switched from my 4 to my dad's old 4S and need to plug the 4s in to gain contacts and music, but it is not showing up in devices.

  • Difference in Freehand 11 and Freehand MX

    What are the differences in Freehand 11 and Freehand MX?

  • NO OF USER HITS FOR DASHBOARDS

    Hi all, We are developing dashboards through Visual Composer but we need to count the no of user hits per dashboard. we get count for query, workbook and Template etc correctly. But we usually get dashboard count through portal but it gives the each