<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2" -->
<rss version="2.0">
    <channel>
        <title>Lowyat.NET: Latest topics by kgleng</title>
        <description></description>
        <link>http://forum.lowyat.net/</link>
        <lastBuildDate>Sun, 08 Nov 2026 20:17:28 +0800</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <item>
            <title>Vertical Link using CSS &amp;amp; JS</title>
            <link>http://forum.lowyat.net/topic/479628</link>
            <description>I&amp;#39;m a freshie at using js n css, and I have a problem trying to create click-and-display vertical menu. I got the code online:&lt;br /&gt;&lt;br /&gt;Here&amp;#39;s the link to view:&lt;br /&gt;&lt;a href='http://www.7dec2007.com/test1/' target='_blank'&gt;http://www.7dec2007.com/test1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See &amp;#39;Network Security&amp;#39;, the submenu should be hidden, but it&amp;#39;s still showing... I know it&amp;#39;s the setting i type in the css and js...tried to change, but it affects the main link which are 2 lines... &lt;b&gt;pls help&amp;#33; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My CSS:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;div.sdmenu {&lt;br /&gt;	width: 130px;&lt;br /&gt;	padding: 0px 0px 5px;&lt;br /&gt;	font-family: Arial, sans-serif;&lt;br /&gt;	font-size: 12px;&lt;br /&gt;	background : #FFFFFF;&lt;br /&gt;	color: #45535E;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div {&lt;br /&gt;	overflow: hidden;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div:first-child {&lt;br /&gt;	background : #FFFFFF;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div.collapsed {&lt;br /&gt;	height: 35px;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div span {&lt;br /&gt;	display: block;&lt;br /&gt;	color: #45535E;&lt;br /&gt;	font-weight: normal;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div.collapsed span {&lt;br /&gt;	background : #FFFFFF;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div a {&lt;br /&gt;	display: block;&lt;br /&gt;	font-family: Arial, sans-serif;&lt;br /&gt;	font-size: 11px;&lt;br /&gt;	color: #45535E;&lt;br /&gt;	font-weight: normal;&lt;br /&gt;	text-decoration:none&lt;br /&gt;}&lt;br /&gt;div.sdmenu div a.current {&lt;br /&gt;	background : #FFFFFF;&lt;br /&gt;}&lt;br /&gt;div.sdmenu div a:hover {&lt;br /&gt;	color: #45535E;&lt;br /&gt;	text-decoration: none;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;b&gt;My js:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;function SDMenu(id) {&lt;br /&gt;	if (&amp;#33;document.getElementById || &amp;#33;document.getElementsByTagName)&lt;br /&gt;		return false;&lt;br /&gt;	this.menu = document.getElementById(id);&lt;br /&gt;	this.submenus = this.menu.getElementsByTagName(&amp;quot;div&amp;quot;);&lt;br /&gt;	this.remember = true;&lt;br /&gt;	this.speed = 5;&lt;br /&gt;	this.markCurrent = true;&lt;br /&gt;	this.oneSmOnly = true;&lt;br /&gt;	this.collapseAll();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;SDMenu.prototype.init = function() {&lt;br /&gt;	var mainInstance = this;&lt;br /&gt;	for (var i = 0; i &amp;lt; this.submenus.length; i++)&lt;br /&gt;		this.submenus[i].getElementsByTagName(&amp;quot;span&amp;quot;)[0].onclick = function() {&lt;br /&gt;			mainInstance.toggleMenu(this.parentNode);&lt;br /&gt;		};&lt;br /&gt;	if (this.markCurrent) {&lt;br /&gt;		var links = this.menu.getElementsByTagName(&amp;quot;a&amp;quot;);&lt;br /&gt;		for (var i = 0; i &amp;lt; links.length; i++)&lt;br /&gt;			if (links[i].href == document.location.href) {&lt;br /&gt;				links[i].className = &amp;quot;current&amp;quot;;&lt;br /&gt;				break;&lt;br /&gt;			}&lt;br /&gt;	}&lt;br /&gt;	if (this.remember) {&lt;br /&gt;		var regex = new RegExp(&amp;quot;sdmenu_&amp;quot; + encodeURIComponent(this.menu.id) + &amp;quot;=([01]+)&amp;quot;);&lt;br /&gt;		var match = regex.exec(document.cookie);&lt;br /&gt;		if (match) {&lt;br /&gt;			var states = match[1].split(&amp;quot;&amp;quot;);&lt;br /&gt;			for (var i = 0; i &amp;lt; states.length; i++)&lt;br /&gt;				this.submenus[i].className = (states[i] == 0 ? &amp;quot;collapsed&amp;quot; : &amp;quot;&amp;quot;);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.toggleMenu = function(submenu) {&lt;br /&gt;	if (submenu.className == &amp;quot;collapsed&amp;quot;)&lt;br /&gt;		this.expandMenu(submenu);&lt;br /&gt;	else&lt;br /&gt;		this.collapseMenu(submenu);&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.expandMenu = function(submenu) {&lt;br /&gt;	var fullHeight = submenu.getElementsByTagName(&amp;quot;span&amp;quot;)[0].offsetHeight;&lt;br /&gt;	var links = submenu.getElementsByTagName(&amp;quot;a&amp;quot;);&lt;br /&gt;	for (var i = 0; i &amp;lt; links.length; i++)&lt;br /&gt;		fullHeight += links[i].offsetHeight;&lt;br /&gt;	var moveBy = Math.round(this.speed * links.length);&lt;br /&gt;	&lt;br /&gt;	var mainInstance = this;&lt;br /&gt;	var intId = setInterval(function() {&lt;br /&gt;		var curHeight = submenu.offsetHeight;&lt;br /&gt;		var newHeight = curHeight + moveBy;&lt;br /&gt;		if (newHeight &amp;lt; fullHeight)&lt;br /&gt;			submenu.style.height = newHeight + &amp;quot;px&amp;quot;;&lt;br /&gt;		else {&lt;br /&gt;			clearInterval(intId);&lt;br /&gt;			submenu.style.height = &amp;quot;&amp;quot;;&lt;br /&gt;			submenu.className = &amp;quot;&amp;quot;;&lt;br /&gt;			mainInstance.memorize();&lt;br /&gt;		}&lt;br /&gt;	}, 30);&lt;br /&gt;	this.collapseOthers(submenu);&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.collapseMenu = function(submenu) {&lt;br /&gt;	var minHeight = submenu.getElementsByTagName(&amp;quot;span&amp;quot;)[0].offsetHeight;&lt;br /&gt;	var moveBy = Math.round(this.speed * submenu.getElementsByTagName(&amp;quot;a&amp;quot;).length);&lt;br /&gt;	var mainInstance = this;&lt;br /&gt;	var intId = setInterval(function() {&lt;br /&gt;		var curHeight = submenu.offsetHeight;&lt;br /&gt;		var newHeight = curHeight - moveBy;&lt;br /&gt;		if (newHeight &amp;gt; minHeight)&lt;br /&gt;			submenu.style.height = newHeight + &amp;quot;px&amp;quot;;&lt;br /&gt;		else {&lt;br /&gt;			clearInterval(intId);&lt;br /&gt;			submenu.style.height = &amp;quot;&amp;quot;;&lt;br /&gt;			submenu.className = &amp;quot;collapsed&amp;quot;;&lt;br /&gt;			mainInstance.memorize();&lt;br /&gt;		}&lt;br /&gt;	}, 30);&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.collapseOthers = function(submenu) {&lt;br /&gt;	if (this.oneSmOnly) {&lt;br /&gt;		for (var i = 0; i &amp;lt; this.submenus.length; i++)&lt;br /&gt;			if (this.submenus[i] &amp;#33;= submenu &amp;amp;&amp;amp; this.submenus[i].className &amp;#33;= &amp;quot;collapsed&amp;quot;)&lt;br /&gt;				this.collapseMenu(this.submenus[i]);&lt;br /&gt;	}&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.expandAll = function() {&lt;br /&gt;	var oldOneSmOnly = this.oneSmOnly;&lt;br /&gt;	this.oneSmOnly = false;&lt;br /&gt;	for (var i = 0; i &amp;lt; this.submenus.length; i++)&lt;br /&gt;		if (this.submenus[i].className == &amp;quot;collapsed&amp;quot;)&lt;br /&gt;			this.expandMenu(this.submenus[i]);&lt;br /&gt;	this.oneSmOnly = oldOneSmOnly;&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.collapseAll = function() {&lt;br /&gt;	for (var i = 0; i &amp;lt; this.submenus.length; i++)&lt;br /&gt;		if (this.submenus[i].className &amp;#33;= &amp;quot;collapsed&amp;quot;)&lt;br /&gt;			this.collapseMenu(this.submenus[i]);&lt;br /&gt;};&lt;br /&gt;SDMenu.prototype.memorize = function() {&lt;br /&gt;	if (this.remember) {&lt;br /&gt;		var states = new Array();&lt;br /&gt;		for (var i = 0; i &amp;lt; this.submenus.length; i++)&lt;br /&gt;			states.push(this.submenus[i].className == &amp;quot;collapsed&amp;quot; ? 0 : 1);&lt;br /&gt;		var d = new Date();&lt;br /&gt;		d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));&lt;br /&gt;		document.cookie = &amp;quot;sdmenu_&amp;quot; + encodeURIComponent(this.menu.id) + &amp;quot;=&amp;quot; + states.join(&amp;quot;&amp;quot;) + &amp;quot;; expires=&amp;quot; + d.toGMTString() + &amp;quot;; path=/&amp;quot;;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;</description>
            <author>kgleng</author>
            <category>Codemasters</category>
            <pubDate>Wed, 27 Jun 2007 21:49:09 +0800</pubDate>
        </item>
    </channel>
</rss>
