dedecms怎么做下拉菜单
dedecms做下拉菜单:
将下面这段代码贴到templets\default\footer.htm文件里
<!-- //二级子类下拉菜单,考虑SEO原因放置于底部 --> <script type='text/javascript' src='{dede:global.cfg_cmsurl/}/images/js/dropdown.js'></script> {dede:channelartlist typeid='top' cacheid='channelsonlist'} <ul id="dropmenu{dede:field.typeid/}" class="dropMenu"> {dede:channel type='son' noself='yes'} <li><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel} </ul> {/dede:channelartlist} <script type="text/javascript">cssdropdown.startchrome("navMenu")</script>
以上代码可以看出,二级子类下拉菜单是由dropdown.js控制的,我们来看dropdown.js文件:
由以上的cssdropdown.startchrome("navMenu"),可以看出我们调用的是 startchrome:function()
var cssdropdown={ disappeardelay: 250, disablemenuclick: false, enableswipe: 1, enableiframeshim: 1, dropmenuobj: null, ie: document.all, firefox: document.getElementById&&!document.all, swipetimer: undefined, bottomclip:0, 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; }, swipeeffect:function(){ if (this.bottomclip<parseInt(this.dropmenuobj.offsetHeight)){ this.bottomclip+=10+(this.bottomclip/10) this.dropmenuobj.style.clip="rect(0 auto "+this.bottomclip+"px 0)" } else return this.swipetimer=setTimeout("cssdropdown.swipeeffect()", 10) }, showhide:function(obj, e){ if (this.ie || this.firefox) this.dropmenuobj.style.left=this.dropmenuobj.style.top="-500px" if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover"){ if (this.enableswipe==1){ if (typeof this.swipetimer!="undefined") clearTimeout(this.swipetimer) obj.clip="rect(0 auto 0 0)" this.bottomclip=0 this.swipeeffect() } obj.visibility="visible" } else if (e.type=="click") obj.visibility="hidden" }, iecompattest:function(){ return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body }, clearbrowseredge:function(obj, whichedge){ var edgeoffset=0 if (whichedge=="rightedge"){ var windowedge=this.ie && !window.opera? this.iecompattest().scrollLeft+this.iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15 this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetWidth if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure) edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth } else{ var topedge=this.ie && !window.opera? this.iecompattest().scrollTop : window.pageYOffset var windowedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18 this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetHeight if (windowedge-this.dropmenuobj.y < this.dropmenuobj.contentmeasure){ edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight if ((this.dropmenuobj.y-topedge)<this.dropmenuobj.contentmeasure) edgeoffset=this.dropmenuobj.y+obj.offsetHeight-topedge } } return edgeoffset }, dropit:function(obj, e, dropmenuID){ if (this.dropmenuobj!=null) this.dropmenuobj.style.visibility="hidden" this.clearhidemenu() if (this.ie||this.firefox){ obj.οnmοuseοut=function(){cssdropdown.delayhidemenu()} obj.οnclick=function(){return !cssdropdown.disablemenuclick} this.dropmenuobj=document.getElementById(dropmenuID) if(!this.dropmenuobj) return; this.dropmenuobj.οnmοuseοver=function(){cssdropdown.clearhidemenu()} this.dropmenuobj.οnmοuseοut=function(e){cssdropdown.dynamichide(e)} this.dropmenuobj.οnclick=function(){cssdropdown.delayhidemenu()} this.showhide(this.dropmenuobj.style, 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() } }, positionshim:function(){ if (this.enableiframeshim && typeof this.shimobject!="undefined"){ if (this.dropmenuobj.style.visibility=="visible"){ this.shimobject.style.width=this.dropmenuobj.offsetWidth+"px" this.shimobject.style.height=this.dropmenuobj.offsetHeight+"px" this.shimobject.style.left=this.dropmenuobj.style.left this.shimobject.style.top=this.dropmenuobj.style.top } this.shimobject.style.display=(this.dropmenuobj.style.visibility=="visible")? "block" : "none" } }, hideshim:function(){ if (this.enableiframeshim && typeof this.shimobject!="undefined") this.shimobject.style.display='none' }, contains_firefox:function(a, b) { while (b.parentNode) if ((b = b.parentNode) == a) return true; return false; }, dynamichide:function(e){ var evtobj=window.event? window.event : e if (this.ie&&!this.dropmenuobj.contains(evtobj.toElement)) this.delayhidemenu() else if (this.firefox&&e.currentTarget!= evtobj.relatedTarget&& !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget)) this.delayhidemenu() }, delayhidemenu:function(){ this.delayhide=setTimeout("cssdropdown.dropmenuobj.style.visibility='hidden'; cssdropdown.hideshim()",this.disappeardelay) }, clearhidemenu:function(){ if (this.delayhide!="undefined") clearTimeout(this.delayhide) }, startchrome:function(){ 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") menuitems[i].οnmοuseοver=function(e){ var event=typeof e!="undefined"? e : window.event cssdropdown.dropit(this,event,this.getAttribute("rel")) } } } } if (window.createPopup && !window.XmlHttpRequest){ document.write('<IFRAME id="iframeshim" src="" style="display: none; left: 0; top: 0; z-index: 90; position: absolute; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)" frameBorder="0" scrolling="no"></IFRAME>') this.shimobject=document.getElementById("iframeshim") } } }
由上可以看出,var cssdropdown变量中有多个函数:
getposOffset:function(what, offsettype) swipeeffect:function() showhide:function(obj, e) iecompattest:function() clearbrowseredge:function(obj, whichedge) dropit:function(obj, e, dropmenuID) positionshim:function() hideshim:function() dynamichide:function(e) delayhidemenu:function() clearhidemenu:function() startchrome:function()
更新一下!会发现导航栏已经出现下拉菜单了,只是背景是透明的,原因是没有背景图片。
然后我们可以对此下拉菜单添加背景图片和设置css样式。
推荐:dedecms使用教程
以上是dedecms怎么做下拉菜单的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

帝国CMS模板下载位置:官方模板下载:https://www.phome.net/template/第三方模板网站:https://www.dedecms.com/diy/https://www.0978.com.cn/https://www.jiaocheng.com/安装方式:下载模板解压模板上传模板选择模板

在 Dedecms 中实现模板替换可以通过以下步骤:修改 global.cfg 文件,设置所需的语言包。修改 taglib.inc.php 钩子文件,添加对语言后缀模板文件的支持。创建带有语言后缀的新模板文件,修改所需内容。清除 Dedecms 缓存。

Dedecms是一款开源CMS,可用于创建各种类型的网站,包括:新闻网站博客网站电商网站论坛和社区网站教育网站门户网站其他类型的网站(例如企业网站、个人网站、相册网站、视频共享网站)

如何使用 Dedecms 上传本地视频?准备视频文件,确保格式符合 Dedecms 支持的格式。登录 Dedecms 管理后台,创建新的视频分类。在视频管理页面上传视频文件,填写相关信息并选择视频分类。在编辑文章时嵌入视频,输入上传视频的文件名并调整尺寸。

Dedecms 是一款开源中文 CMS 系统,提供内容管理、模板系统和安全保护等功能。具体使用方法包含以下步骤:1. 安装 Dedecms。2. 配置数据库。3. 登录管理界面。4. 创建内容。5. 设置模板。6. 管理用户。7. 维护系统。

DedeCMS是一个开源的内容管理系统,会存在一些潜在的漏洞和安全风险:1、SQL注入漏洞,攻击者可以通过构造恶意的SQL查询语句来执行未经授权的操作或获取敏感数据;2、文件上传漏洞,攻击者可以上传包含恶意代码的文件到服务器上,从而执行任意代码或获取服务器权限;3、敏感信息泄露;4、未经身份验证的漏洞利用。

精准可靠的dedecms转换工具评测报告随着互联网时代的快速发展,网站建设已经成为许多企业和个人必备的工具之一。在网站建设中,使用内容管理系统(CMS)可以更加便捷高效地管理网站内容和功能。其中,dedecms作为一款知名的CMS系统,被广泛应用于各种网站建设项目中。然而,有时候我们会面临着需要将dedecms网站转换为其他格式的需求,这时就需要用到转换工具

学习dedecms编码转换功能并不复杂,通过简单的代码示例,可以帮助您快速掌握这一技能。在dedecms中,编码转换功能通常用于处理中文乱码、特殊字符等问题,确保系统的正常运行和数据的准确性。下面将详细介绍如何使用dedecms的编码转换功能,让您轻松应对各种编码相关的需求。1.UTF-8转GBK在dedecms中,如果需要将UTF-8编码的字符串转换为G
