สอบถามเกี่ยวกับเมนู Dropdown ใน Chrome
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเกี่ยวกับเมนู Dropdown ใน Chrome
สอบถามเกี่ยวกับเมนู Dropdown ใน Chrome
Copy
สอบถามผู้รู้เกี่ยวกับปัญหาเมนู Dropdown มันทับกับเมนูหลัก เป็นเฉพาะตอนรันผ่าน Chrome แต่พอลองรันผ่าน Browser อื่นกลับไม่มีปัญหา
เป็นเพราะอะไร มีวิธีแก้ไหมครับ
อันนี้รันผ่าน Chrome
[img=012]/upload/stock/20141113110339.jpg[/img]
อันนี้รันผ่าน Browser อื่น
[img=013]/upload/stock/20141113111533.jpg[/img]
Code menubar.php
Code chrome.css
Code chrome.js
เป็นเพราะอะไร มีวิธีแก้ไหมครับ
อันนี้รันผ่าน Chrome
[img=012]/upload/stock/20141113110339.jpg[/img]
อันนี้รันผ่าน Browser อื่น
[img=013]/upload/stock/20141113111533.jpg[/img]
Code menubar.php
<TR> <TD> <DIV id=chromemenu><A class=MENU href="index.php"> <A class=MENU onmouseover="cssdropdown.dropit(this,event,'gdropmenu7')"> <IMG src="img/menu3.jpg" border=0></A> <DIV class="dropmenudiv bluetheme" id=gdropmenu7><A href="pr_president.php"> The President</A> <A href="pr_awards.php">Awards </A> </DIV> </TD> </TR>
Code chrome.css
.chromemenugroup { } .chromemenugroup:unknown { CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: "." } .chromemenugroup UL { BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; PADDING-LEFT: 0px; BACKGROUND: url(chrometheme/chromebg.gif) repeat-x center center; FLOAT: left; MARGIN: 0px; FONT: bold 12px Verdana; BORDER-LEFT: #bbb 1px solid; WIDTH: 100%; BORDER-BOTTOM: #bbb 1px solid } .chromemenugroup UL LI { DISPLAY: inline } .chromemenugroup UL LI A { PADDING-RIGHT: 12px; PADDING-LEFT: 7px; FONT-WEIGHT: bold; BACKGROUND: url(chrometheme/divider.gif) no-repeat right center; FLOAT: left; PADDING-BOTTOM: 6px; COLOR: #7f7f7f; PADDING-TOP: 6px; TEXT-DECORATION: none } .chromemenugroup UL LI A:hover { COLOR: #494949 } UNKNOWN { content: " v" } .chromemenugroup { WIDTH: 99% } #chromemenu2 UL { BACKGROUND: url(chrometheme/chromebg2.gif) repeat-x center center } #chromemenu3 UL { BACKGROUND: url(chrometheme/chromebg3.gif) repeat-x center center } #chromemenu4 UL { BACKGROUND: url(chrometheme/chromebg4.gif) repeat-x center center } #chromemenu2 UL LI A { BACKGROUND: url(chrometheme/divider2.gif) no-repeat right center } #chromemenu3 UL LI A { BACKGROUND: url(chrometheme/divider3.gif) no-repeat right center } #chromemenu4 UL LI A { BACKGROUND: url(chrometheme/divider4.gif) no-repeat right center } .dropmenudiv { BORDER-RIGHT: #bbb 1 solid; BORDER-TOP: #bbb 1 solid; Z-INDEX: 100; FILTER: progid:DXImageTransform.Microsoft.Shadow(color=#CACACA,direction=135,strength=4); VISIBILITY: hidden; FONT: 13px/15px ; FONT-FAMILY: "MS Sans Serif"; COLOR: #333333; BORDER-LEFT: #bbb 1 solid; WIDTH: 200px; BORDER-BOTTOM: #bbb 0 solid; POSITION: absolute; TOP: 0; BACKGROUND-COLOR: #d8e9ff } .dropmenudiv A { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; WIDTH: 100%; COLOR: #333333; TEXT-INDENT: 3px; PADDING-TOP: 2px; BORDER-BOTTOM: #bbb 1px solid; TEXT-DECORATION: none; } .dropmenudiv A:hover { BACKGROUND-COLOR: #f0f0f0 } .bluetheme { BORDER-LEFT-COLOR: #959595; BORDER-BOTTOM-COLOR: #959595; BORDER-TOP-COLOR: #959595; BORDER-RIGHT-COLOR: #959595 } .bluetheme A { BORDER-BOTTOM-COLOR: #959595 } .bluetheme A:hover { BACKGROUND-COLOR: #ffe4e2 } .greentheme { BORDER-LEFT-COLOR: #aded7c; BORDER-BOTTOM-COLOR: #aded7c; BORDER-TOP-COLOR: #aded7c; BORDER-RIGHT-COLOR: #aded7c } .greentheme A { BORDER-BOTTOM-COLOR: #aded7c } .greentheme A:hover { BACKGROUND-COLOR: #eafadc } .redtheme { BORDER-LEFT-COLOR: #e8bebe; BORDER-BOTTOM-COLOR: #e8bebe; BORDER-TOP-COLOR: #e8bebe; BORDER-RIGHT-COLOR: #e8bebe } .redtheme A { BORDER-BOTTOM-COLOR: #e8bebe } .redtheme A:hover { BACKGROUND-COLOR: #ffecec }
Code chrome.js
//** Chrome Drop Down Menu- Author: Dynamic Drive (http://www.dynamicdrive.com) //** Updated: July 14th 06' to v2.0 //1) Ability to "left", "center", or "right" align the menu items easily, just by modifying the CSS property "text-align". //2) Added an optional "swipe down" transitional effect for revealing the drop down menus. //3) Support for multiple Chrome menus on the same page. //** Updated: Nov 14th 06' to v2.01- added iframe shim technique //** Updated: July 23rd, 08 to v2.4 //1) Main menu items now remain "selected" (CSS class "selected" applied) when user moves mouse into corresponding drop down menu. //2) Adds ability to specify arbitrary HTML that gets added to the end of each menu item that carries a drop down menu (ie: a down arrow image). //3) All event handlers added to the menu are now unobstrusive, allowing you to define your own "onmouseover" or "onclick" events on the menu items. //4) Fixed elusive JS error in FF that sometimes occurs when mouse quickly moves between main menu items and drop down menus //** Updated: Oct 29th, 08 to v2.5 (only .js file modified from v2.4) //1) Added ability to customize reveal animation speed (# of steps) //2) Menu now works in IE8 beta2 (a valid doctype at the top of the page is required) var cssdropdown={ disappeardelay: 250, //set delay in miliseconds before menu disappears onmouseout dropdownindicator: '<img src="down.gif" border="0" />', //specify full HTML to add to end of each menu item with a drop down menu enablereveal: [true, 5], //enable swipe effect? [true/false, steps (Number of animation steps. Integer between 1-20. Smaller=faster)] enableiframeshim: 1, //enable "iframe shim" in IE5.5 to IE7? (1=yes, 0=no) //No need to edit beyond here//////////////////////// dropmenuobj: null, asscmenuitem: null, domsupport: document.all || document.getElementById, standardbody: null, iframeshimadded: false, revealtimers: {}, getposOffset:function(what, offsettype){ var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; var parentEl=what.offsetParent; while (parentEl!=null){ totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; parentEl=parentEl.offsetParent; } return totaloffset; }, css:function(el, targetclass, action){ var needle=new RegExp("(^|s+)"+targetclass+"($|s+)", "ig") if (action=="check") return needle.test(el.className) else if (action=="remove") el.className=el.className.replace(needle, "") else if (action=="add" && !needle.test(el.className)) el.className =" "+targetclass }, showmenu:function(dropmenu, e){ if (this.enablereveal[0]){ if (!dropmenu._trueheight || dropmenu._trueheight<10) dropmenu._trueheight=dropmenu.offsetHeight clearTimeout(this.revealtimers[dropmenu.id]) dropmenu.style.height=dropmenu._curheight=0 dropmenu.style.overflow="hidden" dropmenu.style.visibility="visible" this.revealtimers[dropmenu.id]=setInterval(function(){cssdropdown.revealmenu(dropmenu)}, 10) } else{ dropmenu.style.visibility="visible" } this.css(this.asscmenuitem, "selected", "add") }, revealmenu:function(dropmenu, dir){ var curH=dropmenu._curheight, maxH=dropmenu._trueheight, steps=this.enablereveal[1] if (curH<maxH){ var newH=Math.min(curH, maxH) dropmenu.style.height=newH "px" dropmenu._curheight= newH + Math.round((maxH-newH)/steps) + 1 } else{ //if done revealing menu dropmenu.style.height="auto" dropmenu.style.overflow="hidden" clearInterval(this.revealtimers[dropmenu.id]) } }, clearbrowseredge:function(obj, whichedge){ var edgeoffset=0 if (whichedge=="rightedge"){ var windowedge=document.all && !window.opera? this.standardbody.scrollLeft this.standardbody.clientWidth-15 : window.pageXOffset window.innerWidth-15 var dropmenuW=this.dropmenuobj.offsetWidth if (windowedge-this.dropmenuobj.x < dropmenuW) //move menu to the left? edgeoffset=dropmenuW-obj.offsetWidth } else{ var topedge=document.all && !window.opera? this.standardbody.scrollTop : window.pageYOffset var windowedge=document.all && !window.opera? this.standardbody.scrollTop this.standardbody.clientHeight-15 : window.pageYOffset window.innerHeight-18 var dropmenuH=this.dropmenuobj._trueheight if (windowedge-this.dropmenuobj.y < dropmenuH){ //move up? edgeoffset=dropmenuH+obj.offsetHeight if ((this.dropmenuobj.y-topedge)<dropmenuH) //up no good either? edgeoffset=this.dropmenuobj.y obj.offsetHeight-topedge } } return edgeoffset }, dropit:function(obj, e, dropmenuID){ if (this.dropmenuobj!=null) //hide previous menu this.hidemenu() //hide menu this.clearhidemenu() this.dropmenuobj=document.getElementById(dropmenuID) //reference drop down menu this.asscmenuitem=obj //reference associated menu item this.showmenu(this.dropmenuobj, e) this.dropmenuobj.x=this.getposOffset(obj, "left") this.dropmenuobj.y=this.getposOffset(obj, "top") this.dropmenuobj.style.left=this.dropmenuobj.x-this.clearbrowseredge(obj, "rightedge")+"px" this.dropmenuobj.style.top=this.dropmenuobj.y-this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight 1 "px" this.positionshim() //call iframe shim function }, positionshim:function(){ //display iframe shim function if (this.iframeshimadded){ if (this.dropmenuobj.style.visibility=="visible"){ this.shimobject.style.width=this.dropmenuobj.offsetWidth "px" this.shimobject.style.height=this.dropmenuobj._trueheight "px" this.shimobject.style.left=parseInt(this.dropmenuobj.style.left) "px" this.shimobject.style.top=parseInt(this.dropmenuobj.style.top) "px" this.shimobject.style.display="block" } } }, hideshim:function(){ if (this.iframeshimadded) this.shimobject.style.display='none' }, isContained:function(m, e){ var e=window.event || e var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement) while (c && c!=m)try {c=c.parentNode} catch(e){c=m} if (c==m) return true else return false }, dynamichide:function(m, e){ if (!this.isContained(m, e)){ this.delayhidemenu() } }, delayhidemenu:function(){ this.delayhide=setTimeout("cssdropdown.hidemenu()", this.disappeardelay) //hide menu }, hidemenu:function(){ this.css(this.asscmenuitem, "selected", "remove") this.dropmenuobj.style.visibility='hidden' this.dropmenuobj.style.left=this.dropmenuobj.style.top="-1000px" this.hideshim() }, clearhidemenu:function(){ if (this.delayhide!="undefined") clearTimeout(this.delayhide) }, addEvent:function(target, functionref, tasktype){ if (target.addEventListener) target.addEventListener(tasktype, functionref, false); else if (target.attachEvent) target.attachEvent('on'+tasktype, function(){return functionref.call(target, window.event)}); }, startchrome:function(){ if (!this.domsupport) return this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body for (var ids=0; ids<arguments.length; ids++){ var menuitems=document.getElementById(arguments[ids]).getElementsByTagName("a") for (var i=0; i<menuitems.length; i++){ if (menuitems[i].getAttribute("rel")){ var relvalue=menuitems[i].getAttribute("rel") var asscdropdownmenu=document.getElementById(relvalue) this.addEvent(asscdropdownmenu, function(){cssdropdown.clearhidemenu()}, "mouseover") this.addEvent(asscdropdownmenu, function(e){cssdropdown.dynamichide(this, e)}, "mouseout") this.addEvent(asscdropdownmenu, function(){cssdropdown.delayhidemenu()}, "click") try{ menuitems[i].innerHTML=menuitems[i].innerHTML+" "+this.dropdownindicator }catch(e){} this.addEvent(menuitems[i], function(e){ //show drop down menu when main menu items are mouse over-ed if (!cssdropdown.isContained(this, e)){ var evtobj=window.event || e cssdropdown.dropit(this, evtobj, this.getAttribute("rel")) } }, "mouseover") this.addEvent(menuitems[i], function(e){cssdropdown.dynamichide(this, e)}, "mouseout") //hide drop down menu when main menu items are mouse out this.addEvent(menuitems[i], function(){cssdropdown.delayhidemenu()}, "click") //hide drop down menu when main menu items are clicked on } } //end inner for } //end outer for if (this.enableiframeshim && document.all && !window.XDomainRequest && !this.iframeshimadded){ //enable iframe shim in IE5.5 thru IE7? document.write('<IFRAME id="iframeshim" src="about:blank" frameBorder="0" scrolling="no" style="left:0; top:0; position:absolute; display:none;z-index:90; background: transparent;"></IFRAME>') this.shimobject=document.getElementById("iframeshim") //reference iframe object this.shimobject.style.filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)' this.iframeshimadded=true } } //end startchrome }
Rubik59
13-11-2014
11:26:35
คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา
โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ