I have a working code of 2 level horizontal tab menu....it is now onmouse over ,I want to convert it to onclick. I have taken from....
Code:
var mastertabvar=new Object()
mastertabvar.baseopacity=0
mastertabvar.browserdetect=""
function showsubmenu(masterid, id){
if (typeof highlighting!="undefined")
clearInterval(highlighting)
submenuobject=document.getElementById(id)
[Code]...
I'm in trouble implementing superfish in a website project. My problem is: I have a category based menu item that has two sub-levels set to display horizontally. I hover the first menu item and the first sub- level shows. Then I click the first sub-level and both it and its parent-item get highlighted and stay visible.Then I do the same to the sub-level below these but it doesn't work. This second sub-level gets the right class ('current') but the first level loses its 'current-cat-parent sfHover sf-breadcrumb' classes causing all levels to disappear.
The problem is that the height of the second level menu results in their being gaps in between each menu item so that as you move your mouse down the second menu items it quickly closes again. scripting novice fix this by telling me which variable I need to change either in the Java script or the CSS files.
how to make the menu items a fixed width in a horizontal Superfish menu . I've tried mucking about with the CSS but no luck so far. I'm sure it's easy, but I can't seem to work it out.
I actually want to make a horizontal drop down menu with a sub menu.As far as I have researched, I think that it can be done by JavaScript. I have searched for some java scripts but they are very long and complex.
That made me wonder that for a funcitonality like a Drop down is so complex?
So here is my question : Is there any JavaScript that can be applied for drop down menu exclusively? Which just presents logic of drop down solely?
I want to make a horizontal menu with a lot of menu items but some of them wont have any sub menus associated with them. Right now, i have to add at least one item in submenu with sometext in it, else it gives a weired behavior. But I want that any of the items should have no items below it yet submenu shud be displayed, just like a long horizontal bar..
I would like to use the menu that is linked below. I implemented it on my website but I discovered that it can only go 2 levels deep. I would like it to go one more level and I think that would be done in the javascript but I can't tell for sure. Could someone steer me in the right direction? [URL]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript">
var response = ""; var nContainer = ""; var mainItemsText = []; var mainItemsLink = []; var subItemsText = []; var subItemsLink = []; var mainItemsWithSubs = []; var IE = true; if (navigator.appName != "Microsoft Internet Explorer"){IE = false}
function hideSubs(nMain){
var nSubs = nMain.getElementsByTagName('dd'); for (i=0; i<nSubs.length; i++) { nSubs[i].style.display = 'none' } }
function showSubs(nMain){
var nSubs = nMain.getElementsByTagName('dd'); for (i=0; i<nSubs.length; i++) { nSubs[i].style.display = '' } }
function setHoverDisplay(){
if (IE) { for (i=0; i<mainItemsWithSubs.length; i++) { for (n=0; n<subItemsText[i].length; n++) { nContainer.childNodes[mainItemsWithSubs[i]].childNodes[n+1].style.display = 'none' nContainer.childNodes[mainItemsWithSubs[i]].onmouseover = function(){showSubs(this)} nContainer.childNodes[mainItemsWithSubs[i]].onmouseout = function(){hideSubs(this)} } } } else { for (i=0; i<mainItemsWithSubs.length; i++) { for (n=0; n<subItemsText[i].length; n++) { nContainer.childNodes[mainItemsWithSubs[i]+1].childNodes[n+1].style.display = 'none' nContainer.childNodes[mainItemsWithSubs[i]+1].onmouseover = function(){showSubs(this)} nContainer.childNodes[mainItemsWithSubs[i]+1].onmouseout = function(){hideSubs(this)} } } } }
function buildMenu(){
nContainer = document.getElementById('menuContainer'); mainItemsWithSubs = []; var n = 0; for (i=0; i<mainItemsText.length; i++) { var nItem = document.createElement('dt'); var nLink = document.createElement('a'); nItem.appendChild(nLink); nLink.appendChild(document.createTextNode(mainItemsText[i])); if (mainItemsLink[i] != undefined) { nLink.setAttribute('href',mainItemsLink[i]); } else{ nLink.setAttribute('href',"#"); nLink.onclick = function(){return false;} mainItemsWithSubs[n++] = i; } nContainer.appendChild(nItem); } for (i=0; i<mainItemsWithSubs.length; i++) { for (s=0; s<subItemsText[i].length; s++) { nItem = document.createElement('dd'); nLink = document.createElement('a'); nItem.appendChild(nLink); nLink.appendChild(document.createTextNode(subItemsText[i][s])); nLink.setAttribute('href',subItemsLink[i][s]); if (IE){nContainer.childNodes[mainItemsWithSubs[i]].appendChild(nItem)} else {nContainer.childNodes[mainItemsWithSubs[i]+1].appendChild(nItem)} } } setHoverDisplay(); }
function parseResponse(){
var n = 0; var s = 0; var mainItems = response.getElementsByTagName('main'); if (IE) { for (i=0; i<mainItems.length; i++) { mainItemsText[n] = mainItems[i].firstChild.text; if (mainItems[i].childNodes[1].nodeName == "link") { mainItemsLink[n] = mainItems[i].childNodes[1].text; } n++; } } else { for (i=0; i<mainItems.length; i++) { mainItemsText[n] = mainItems[i].childNodes[1].firstChild.data; if (mainItems[i].childNodes[3].nodeName == "link") { mainItemsLink[n] = mainItems[i].childNodes[3].firstChild.data; } n++; } } for (i=0; i<mainItems.length; i++) { if (IE && mainItems[i].childNodes[1].nodeName == "sub") { subItemsText[s] = []; subItemsLink[s] = []; for (n=0; n<mainItems[i].getElementsByTagName('sub').length; n++) { subItemsText[s][n] = mainItems[i].childNodes[n+1].childNodes[0].text; subItemsLink[s][n] = mainItems[i].childNodes[n+1].childNodes[1].text; } s++; } if (!IE && mainItems[i].childNodes[3].nodeName == "sub") { subItemsText[s] = []; subItemsLink[s] = []; var subs = mainItems[i].getElementsByTagName('sub'); for (n=0; n<subs.length; n++) { subItemsText[s][n] = subs[n].childNodes[1].firstChild.data; subItemsLink[s][n] = subs[n].childNodes[3].firstChild.data; } s++; } } buildMenu(); }
function getMenuTree(){
var request = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(); request.onreadystatechange = function() { if (request.readyState == 4) { if (request.status == 200) { response = request.responseXML; parseResponse(); } else {alert('Error MenuTree.xml '+ request.statusText)} } } var forceGET = "?n="+ parseInt(Math.random()*999999999); request.open("GET", "MenuTree.xml"+forceGET, true); request.send(null); }
onload=getMenuTree;
</script> <style type="text/css">
dt {background-color:#b0c4de;text-indent:5px} dd {background-color:#87ceeb} a {color:#00008b}
I've been asked to create a site for my younger sister and she's requested a horizontal pull-down menu using graphics for the links instead of simply text. This is my first time trying to code such a menu (topic not covered in class) and I'm having some difficulty getting it to work completely.
Right now it's partially working. The various sub menus do show up when clicking or rolling over the previous menu item. However all menu items past the one clicked jump down one line when expanding instead of simply showing the sub menu under the main line up. The rollover also has issues but mostly because I haven't finished coding the onmouseout part, so it doesn't go away. I'm trying to get the main pull down working before tackling that part. Below is the JavaScript function I'm trying to use as well as a part of the menu. I've already spent months trying to get this working and am not making much headway.
I run an educational website with a CSS/JavaScript based menu that is right now only single level. I am trying to convert it over to multi level. I have tried a few other multi level menus but I have done a lot of customization in terms of appearance for this current menu, so none of the new ones looked right.
Here is the site: [url] Here is the CSS: [url] Here is the JavaScript: [url]
I have a 3-level menu using JQuery-Superfish. I would like to hover over the top-level menu item and have BOTH the 2nd and 3rd-level menus open automatically.
Well I have used this same script a few times, but this time I am having an issue, When I hover the text the drop down shows, as soon as I try to hover the drop down it will disappear.I am also trying to make the background stick on main text (hover text) untl the mouse moves off. Been stuck on this for hours.Here is my HTML
I have inherited a site with superfish used as the menu which seems to work fine except that I wish to disable the links at the top level so that a click on the top level of the menu goes nowhere only clicks on the sub menu list. At the moment each top level menu item is a section and the sub menu list categories. There is nothing I need or want to place in the Section heading so a link from this is unnecessary but at the moment clicking on the top level (section) leads to a page i do not want.Example:-Top Level Section (no link to anywhere)2nd level Category 1 (link to article)3rd level Category 2 (link to article)etc.
Is this possible to do. I feel sure it should be as it is a normal facility on a drop down menu but I cannot find anywhere in the options which enables this. I am not sufficiently conversant with CSS to try playing with the current layout which other than this seems to be working ok.
I am really pressing on to finish this home page menu, and I'm trying to find out why this odd behavior is occurring. There is obviously some conflicting code in my CSS. You can see this odd behaving menu for yourself at productreview. The other thing I'm trying to learn how to do is how to get the 3rd and 4th level lists to appear on the parent item's hover.This is my JavaScript:
I have implemented a jQuery hover top level menu & it is working fine in bothIE 7& 8. However, when I am executing the same code in Mozilla Firefox, it is not rendering hover effect at all. Also, I am adding a <span> using jQuery if JavaScript isn't enabled. This span is also not getting added in Mozilla.
Following is the code that I am using. <script type="text/javascript" src="[URL]"></script> <script> $(document).ready(function(){ $("ul.subnav").parent().append("<span></span>"); $("ul.pnode li a").mouseover(function() { //When trigger is clicked... //Following events are applied to the subnav itself (moving subnav up and down) $(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click $(this).parent().hover(function() { }, function(){ $(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up }); //Following events are applied to the trigger (Hover events for the trigger) }).hover(function() { $(this).addClass("subhover"); //On hover over, add class "subhover" }, function(){ //On Hover Out $(this).removeClass("subhover"); //On hover out, remove class "subhover" }); }); </script>
I came to know that IE & Mozilla see .parent differently.I have tried everything but not able to get this stuff working in Mozilla. I am using Firefox 3.5.5 version.
I have implemented Superfish in SAP Portal. there is a small issue when I take a print using the browser's print option. When I try printing the Web Page from the browser, the Top Level Navigation Menu appears as a list of links (vertical). This is happening in both IE as well as Firefox.
I have seen the same issue in the website from where I downloaded Superfish :-|
1. Goto: [URL]
2. Click on 'Print Preview' button in your Browser.
3. The Superfish Menu below the text 'The result:' will appear as a list of links in the print preview.
I want that when i click on a other main item that the other will close. Now it still keep open and then ill get a long menu list. How do i do it , i dont have js experience.
I would like the second level of buttons (submenu) to disappear once the cursor is no longer hovering over them - rather than appearing until another button in the top level is hovered over. modify the javascript below to do that?
i am trying to get a horizontal menu and sub menu in css, which works great on my Firefox But, in order to get around the ie hover bug, i included some javascript which gives me a strange result.. Code:
I am trying to create a horizontal menu, and I have succeeded in getting the menu to view the way I want it, but for some reason when I mouse over the <li> in the root <ul> it shows me all the <ul> under every <li> at once. Here is a sample. <div id="MainMenu"> <ul id="Nav"> <li class="level1"><a href="~/Default.aspx">Home</a></li> <li class="level1"><a href="~/Default.aspx">Bullitens</a> <div class="SubMenu"> <ul class="SubNav"> <li class="level2"><a href="~/Default.aspx">Home</a></li> ..... .level1 { display: inline-block; margin: 0 10px; height: 25px; padding-right: 20px; } .level2 { padding: 0px 15px; margin: 4px 10px 0px; display: inline-block; } This code would most likely be what is necessary to reproduce my issue. Am I at least close to getting this menu to function the way I want it to?
I'd like to create a nav bar like the one on this site:menu.I searched the internet, but couldn't find any tutorials that match this style. Does anyone know of any sites that explain how to do this?
I'm currently trying to build a vertical mega menu as all the ones on the net seem to be set up for horizontal menus. I'm struggling a bit on a certian point as I'm not a very strong Javascript user.It places the mega menu under the button but i want it to appear to the side of the button and be flush with the top of it. I have made it appear to the side but I cant seem to make it run flush with the top of the button, it appears at the bottom of the button.The buttons are 142px wide and 28 in height.