สงสัยกับ Menu drop down ครับ Menu mเวลาเอาเม้าไปชี้แล้วจะมี Menu ย่อยๆยังงี้ออกมาไม่ทราบว่าเขาใช้
ใช้ javascript ค่ะ
โดยดึง code มาจากตรงนี้ค่ะ
<script language="javascript1.1" src="http://hits.truehits.in.th/data/q0027750.js"></script>
ซึ่งก็ไม่รู้เหมือนกันค่ะ ว่าจะดึงโค้ดมาแกะอย่างไรเหมือนกัน
แต่รู้ว่าดึงคลาสมาใช้ได้ค่ะ โดยใส่ โค้ดที่ว่านี้ละค่ะ
แต่เราต้องรู้ชื่อคลาสและฟังก์ชั่นการใช้งานด้วย
Date :
2009-03-02 14:34:52
By :
Jewels
ขอบคุณคับ แก็ยังงงตึ๊บอยู่ดี TT
Date :
2009-03-02 15:03:00
By :
wolfcry
ตอนที่เริ่มศึกษาใหม่ๆ ก็เอา code นี้แหละค่ะไปศึกษาดู จำไม่ได้ว่าเอามาจากไหน
Code
<html>
<head><title>การสร้าง Drop Down เมนู</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<script language="JavaScript" >
var treeExpand;
function dropdownMenu(tagid){
var tree = document.getElementById(tagid);
if (tree) {
treeExpand = tree;
var items = tree.getElementsByTagName("li");
for (var i=0; i < items.length; i++){
showDropdown(tree, items[i], tagid) ;
}
}
}
function showDropdown(tree, li, tagid){
var time_openMenu, time_closeMenu;
var a = li.getElementsByTagName("a")[0];
var menu=li.getElementsByTagName("ul").length > 0 ? li.getElementsByTagName("ul")[0] : null;
var vertical = (tree.className.indexOf("vertical") != -1) ;
var issub = li.parentNode.id == tagid ;
if(menu){
li.className+=(li.className=='' ? '' : ' ' )+ 'hasmenu' ;
}
li.attachEvent("onmouseover", function(e){
clearTimeout(time_closeMenu) ;
if (treeExpand == li){ treeExpand = null }
if (menu){
time_openMenu=window.setTimeout(function()
{
if(treeExpand){
clearMenus(treeExpand);
treeExpand = null ;
}
menu.style.left=vertical ? li.offsetLeft + 'px' : '0' ;
menu.style.top=vertical && issub ? a.offsetHeight + 'px' : li.offsetTop + 'px' ;
positionMenuInside(menu);
}, 250);
}
});
li.attachEvent("onmouseout", function(e){
var related = typeof e.formElement != "undefined" ? e.formElement : e.toElement ;
if (!li.contains(related)){
clearTimeout(time_openMenu);
treeExpand = li;
a.className = a.className.replace(/ ?rollover/g, ' ');
if (menu) {
time_closeMenu = window.setTimeout(function()
{
menu.style.left = "-100em";
}, 600);
}
}
});
}
function clearMenus(root){
var menus = root.getElementsByTagName("ul") ;
for (var i=0; i < menus.length; i++){
menus[i].style.left = "-100em";
}
}
function positionMenuInside(menu){
var extent = [getPosition(menu, 'x') + menu.offsetWidth+25,
getPosition(menu, 'y') + menu.offsetWidth+25
];
var viewsize = getViewSize();
if (extent[0] > viewsize[0]) {
var offset = menu.offsetWidth + menu.parentNode.parentNode.offsetWidth;
var inset = menu.parentNode.offsetWidth - menu.offsetLeft ;
menu.style.left = (0 - offset + (inset * 2)) + 'px' ;
}
if (extent[1] > viewsize[1]) {
var current = parseInt(menu.style.top, 10);
var difference = (extent[1] - viewsize[1]);
menu.style.top = (current + difference) + 'px' ;
}
}
function getPosition(elem, dir){
var position = dir == 'x' ? elem.offsetLeft : elem.offsetTop;
var temp =elem.offsetParent;
while (temp != null){
position += dir == 'x' ? temp.offsetLeft : temp.offsetTop;
temp =temp.offsetParent;
}
return position;
}
function getViewSize(){
var size = [0, 0];
if (document.documentElement.clientWidth != 0){
size = [document.documentElement.clientWidth, document.documentElement.clientHeight];
}
else {
size = [document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight];
}
return size;
}
</script>
<style type="text/css">
<!--
ul.vertical{
position: absolute;
z-index: 1000;
cursor: default;
width: 8em;
margin: 2px 0 0 0;
visibility: visible;
background-color: #7591FF;
}
ul.vertical li {
position: relative;
text-align: left;
cursor: pointer;
cursor: hand;
width: 8em;
margin: -1px 0 0 0;
}
ul.vertical ul {
z-index: 1020;
cursor: default;
width: 8.2em;
margin: -0.3em 0 0 7.6em;
position: absolute;
left: -100em;
top: 0;
padding: 1px 0 0 0;
border-width: 1px;
border-style: solid;
border-color: #ffffff #a97741 #a97741 #ffffff;
}
ul.vertical ul li {
width: 8.2em;
}
ul.vertical ul ul {
margin: -0.3em 0 0 7.8em;
}
ul.vertical a:link, ul.vertical a:visited {
display: block;
cursor: hand;
border: 1px solid #BBC9FF;
padding: 5px 7px;
font: normal normal bold 0.8em tahoma, verdana, sans-serif;
color: #024f02;
text-decoration: none;
letter-spacing: 1px;
}
ul.vertical a:hover, ul.vertical a:focus, ul.vertical a:active, ul.vertical a.rollover:link, ul.vertical a.rollover:visited {
color: #fa3c4e;
}
ul.vertical li {
display: inline;
float: left;
background: #7591FF;
}
ul.vertical li { position: static; }
ul.vertical a:link, ul.vertical a:visited {
position: relative;
}
ul.vertical li.hasmenu a:rollover:link, ul.vertical li.hasmenu a:rollover:visited {
background: expression(/hasmenu/.test(this.parentNode.className) ? "url(right-red.gif) ##7591FF no-repeat 95% 50%" : "#7591FF");*/
}
-->
</style>
</head>
<body onLoad="dropdownMenu('navigation')">
<ul id="navigation" class="vertical">
<li><a href="/">หน้าหลัก</a></li>
<li><a href="/">เกี่ยวกับเรา</a>
<ul>
<li><a href="/products/">สินค้า...</a>
<ul>
<li><a href="/books/">หนังสือวิชาการ</a>
<ul>
<li><a href="/multi/">มัลติมีเดีย</a></li>
<li><a href="/programming/">โปรแกรมมิ่ง</a></li>
<li><a href="/other/">อื่นๆ</a></li>
</ul>
</li>
<li><a href="/software/">ซอฟต์แวร์</a>
<ul>
<li><a href="/eleaning/">E-learning</a></li>
<li><a href="/flashChat/">Flash Chat</a></li>
<li><a href="/iirps/">II-RPS</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/services/">บริการ...</a>
<ul>
<li><a href="/trainning/">ฝึกอบรม</a></li>
<li><a href="/hire purchase/">บริการเช่า-ซื้อ</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/contact/">ติดต่อเรา</a>
<ul>
<li><a href="/phone/">โทรศัพท์</a></li>
<li><a href="/email/">E-mail</a></li>
</ul>
</li>
</ul>
</body>
</html>
Date :
2009-03-02 15:49:11
By :
Jewels
Code (PHP)
<?php
<html>
<head><title>การสร้าง Drop Down เมนู</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<script language="JavaScript" >
var treeExpand;
function dropdownMenu(tagid){
var tree = document.getElementById(tagid);
if (tree) {
treeExpand = tree;
var items = tree.getElementsByTagName("li");
for (var i=0; i < items.length; i++){
showDropdown(tree, items[i], tagid) ;
}
}
}
function showDropdown(tree, li, tagid){
var time_openMenu, time_closeMenu;
var a = li.getElementsByTagName("a")[0];
var menu=li.getElementsByTagName("ul").length > 0 ? li.getElementsByTagName("ul")[0] : null;
var vertical = (tree.className.indexOf("vertical") != -1) ;
var issub = li.parentNode.id == tagid ;
if(menu){
li.className+=(li.className=='' ? '' : ' ' )+ 'hasmenu' ;
}
li.attachEvent("onmouseover", function(e){
clearTimeout(time_closeMenu) ;
if (treeExpand == li){ treeExpand = null }
if (menu){
time_openMenu=window.setTimeout(function()
{
if(treeExpand){
clearMenus(treeExpand);
treeExpand = null ;
}
menu.style.left=vertical ? li.offsetLeft + 'px' : '0' ;
menu.style.top=vertical && issub ? a.offsetHeight + 'px' : li.offsetTop + 'px' ;
positionMenuInside(menu);
}, 250);
}
});
li.attachEvent("onmouseout", function(e){
var related = typeof e.formElement != "undefined" ? e.formElement : e.toElement ;
if (!li.contains(related)){
clearTimeout(time_openMenu);
treeExpand = li;
a.className = a.className.replace(/ ?rollover/g, ' ');
if (menu) {
time_closeMenu = window.setTimeout(function()
{
menu.style.left = "-100em";
}, 600);
}
}
});
}
function clearMenus(root){
var menus = root.getElementsByTagName("ul") ;
for (var i=0; i < menus.length; i++){
menus[i].style.left = "-100em";
}
}
function positionMenuInside(menu){
var extent = [getPosition(menu, 'x') + menu.offsetWidth+25,
getPosition(menu, 'y') + menu.offsetWidth+25
];
var viewsize = getViewSize();
if (extent[0] > viewsize[0]) {
var offset = menu.offsetWidth + menu.parentNode.parentNode.offsetWidth;
var inset = menu.parentNode.offsetWidth - menu.offsetLeft ;
menu.style.left = (0 - offset + (inset * 2)) + 'px' ;
}
if (extent[1] > viewsize[1]) {
var current = parseInt(menu.style.top, 10);
var difference = (extent[1] - viewsize[1]);
menu.style.top = (current + difference) + 'px' ;
}
}
function getPosition(elem, dir){
var position = dir == 'x' ? elem.offsetLeft : elem.offsetTop;
var temp =elem.offsetParent;
while (temp != null){
position += dir == 'x' ? temp.offsetLeft : temp.offsetTop;
temp =temp.offsetParent;
}
return position;
}
function getViewSize(){
var size = [0, 0];
if (document.documentElement.clientWidth != 0){
size = [document.documentElement.clientWidth, document.documentElement.clientHeight];
}
else {
size = [document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight];
}
return size;
}
</script>
<style type="text/css">
<!--
ul.vertical{
position: absolute;
z-index: 1000;
cursor: default;
width: 8em;
margin: 2px 0 0 0;
visibility: visible;
background-color: #7591FF;
}
ul.vertical li {
position: relative;
text-align: left;
cursor: pointer;
cursor: hand;
width: 8em;
margin: -1px 0 0 0;
}
ul.vertical ul {
z-index: 1020;
cursor: default;
width: 8.2em;
margin: -0.3em 0 0 7.6em;
position: absolute;
left: -100em;
top: 0;
padding: 1px 0 0 0;
border-width: 1px;
border-style: solid;
border-color: #ffffff #a97741 #a97741 #ffffff;
}
ul.vertical ul li {
width: 8.2em;
}
ul.vertical ul ul {
margin: -0.3em 0 0 7.8em;
}
ul.vertical a:link, ul.vertical a:visited {
display: block;
cursor: hand;
border: 1px solid #BBC9FF;
padding: 5px 7px;
font: normal normal bold 0.8em tahoma, verdana, sans-serif;
color: #024f02;
text-decoration: none;
letter-spacing: 1px;
}
ul.vertical a:hover, ul.vertical a:focus, ul.vertical a:active, ul.vertical a.rollover:link, ul.vertical a.rollover:visited {
color: #fa3c4e;
}
ul.vertical li {
display: inline;
float: left;
background: #7591FF;
}
ul.vertical li { position: static; }
ul.vertical a:link, ul.vertical a:visited {
position: relative;
}
ul.vertical li.hasmenu a:rollover:link, ul.vertical li.hasmenu a:rollover:visited {
background: expression(/hasmenu/.test(this.parentNode.className) ? "url(right-red.gif) ##7591FF no-repeat 95% 50%" : "#7591FF");*/
}
-->
</style>
</head>
<body onLoad="dropdownMenu('navigation')">
<ul id="navigation" class="vertical">
<li><a href="/">หน้าหลัก</a></li>
<li><a href="/">เกี่ยวกับเรา</a>
<ul>
<li><a href="/products/">สินค้า...</a>
<ul>
<li><a href="/books/">หนังสือวิชาการ</a>
<ul>
<li><a href="/multi/">มัลติมีเดีย</a></li>
<li><a href="/programming/">โปรแกรมมิ่ง</a></li>
<li><a href="/other/">อื่นๆ</a></li>
</ul>
</li>
<li><a href="/software/">ซอฟต์แวร์</a>
<ul>
<li><a href="/eleaning/">E-learning</a></li>
<li><a href="/flashChat/">Flash Chat</a></li>
<li><a href="/iirps/">II-RPS</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/services/">บริการ...</a>
<ul>
<li><a href="/trainning/">ฝึกอบรม</a></li>
<li><a href="/hire purchase/">บริการเช่า-ซื้อ</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/contact/">ติดต่อเรา</a>
<ul>
<li><a href="/phone/">โทรศัพท์</a></li>
<li><a href="/email/">E-mail</a></li>
</ul>
</li>
</ul>
</body>
</html>
?>
Date :
2009-06-01 16:44:38
By :
1
คือ อยากจะถามเรื่องนึง
ถ้าเรามีอยู่ 2 ชั้น จะเปลี่ยนให้เป็น 3-4 ชั้น
ต้องเพิ่มอะไรใน css บ้างอ่ะครับ
มันเอามาใช้ทั้ง 2 css
css ที่ 1
#menu{
position:relative;
z-index:1;
top:0;
left:0;
padding:2px;
margin:0px;
list-style:none;
}
li ul{
position:relative;
display:none;
padding:2px;
margin:0px;
list-style:none;
}
li{
position:relative;
background-color:#ffffff;
border:1px solid black;
padding:2px;
margin:0px;
color:#000000;
}
.subMenu{
background-repeat:no-repeat;
}
.click{
background-color:#fa551a;
color:#fffab5;
}
.click ul{
display:block;
}
.hover, ul li a:hover{
cursor:pointer;
background-color:#fa551a;
color:#FFFAB5;
}
li ul li.hover, li ul li.hover a:hover{
background-color:#fa7d50;
}
li a{
width:100%;
}
li a, li ul li a, li.hover ul li a{
text-decoration:none;
color:#000000;
}
li.hover a, li ul li.hover a{
color:#fffab5;
text-decoration:underline;
}
css ที่ 2
.dbMenu{
width:10em;
}
.dbMenu .subMenu{
background-image:url('right.gif');
background-position:center right;
}
.dbMenu li ul{
position:absolute;
left:9.7em;
top:0;
width:10em;
}
.dbMenu li>ul{
left:9.8em;
}
Date :
2009-09-22 12:52:25
By :
gtokung
ขอบคุณมากครับ
หามาตั้งนาน
Date :
2010-11-17 14:05:36
By :
แดนเทพ
Code (JavaScript)
Date :
2011-09-05 13:05:30
By :
9yh,
Load balance : Server 04