dede下拉友情链接怎么实现?

99ANYc3cd6
预计阅读时长 21 分钟
位置: 首页 DEDE建站 正文
  1. 使用 DedeCMS 自带的“友情链接”模块(推荐,最简单)
  2. 自定义调用,实现更灵活的下拉菜单效果

使用 DedeCMS 自带的“友情链接”模块(推荐)

这是最简单、最标准的方法,利用 DedeCMS 后台自带的“友情链接”功能,通过一个简单的标签就能实现下拉效果。

步骤 1:在后台添加友情链接

  1. 登录你的 DedeCMS 后台。
  2. 在左侧菜单栏找到 【核心】 -> 【友情链接】
  3. 点击 【增加一个链接】
  4. 在添加页面,你可以选择一个已有的 分类,或者直接创建一个新分类(网站首页”)。
  5. 填写网站名称、网址(必须以 http:// 开头)、Logo(可选)等信息。
  6. 点击 【确定】 保存,重复此步骤,添加你需要的所有链接。

步骤 2:修改模板文件,添加下拉菜单代码

我们需要在网站模板文件中调用这些链接,并给它们加上下拉菜单的样式。

  1. 找到模板文件: 通常友情链接会放在网站的页脚(footer)部分,请登录你的 FTP 或主机文件管理器,找到并打开对应的模板文件,常见路径是:

    • /templets/default/footer.htm (默认模板)
    • 或者你自定义模板目录下的类似文件,如 /templets/你的模板名/footer.htm
  2. 添加下拉菜单代码: 在 footer.htm 文件中,找到你希望放置友情链接的位置,用以下代码替换掉原有的 {dede:flink/}

    <div class="dropdown-flink">
      <a href="javascript:;" class="dropdown-toggle">友情链接 <i class="caret"></i></a>
      <ul class="dropdown-menu">
        {dede:flink type='text' row='24' titlelen="24" typeid="0"}
        <li><a href="[field:url/]" target="_blank">[field:name/]</a></li>
        {/dede:flink}
      </ul>
    </div>

    代码解释

    • <div class="dropdown-flink">...</div>:这是一个容器,用于包裹整个下拉菜单。
    • <a href="javascript:;" ...>:这是鼠标悬停时触发的菜单标题。
      • class="dropdown-toggle":我们自定义的 CSS 类,用于样式和 JS 事件绑定。
      • <i class="caret"></i>:一个向下的小箭头图标,增强视觉效果。
    • <ul class="dropdown-menu">...</ul>:这是下拉菜单的主体,一个无序列表。
    • {dede:flink ...}:这是 DedeCMS 的友情链接调用标签。
      • type='text':只调用文字链接,不调用 Logo 图片。
      • row='24':调用 24 条链接。
      • titlelen="24":链接名称显示最多 24 个字符。
      • typeid="0":调用所有分类的链接,如果你想只调用某个分类的链接,把 0 换成分类的 ID。
      • [field:url/][field:name/]:分别调用链接的网址和名称。
  3. 添加 CSS 样式: 为了让下拉菜单看起来美观,你需要添加一些 CSS 代码,可以在你的模板的 CSS 文件(如 /templets/default/style/dedecms.css)中,或者在 <head> 标签内添加 <style> 块。

    /* 友情链接下拉菜单样式 */
    .dropdown-flink {
      position: relative; /* 关键:为下拉菜单定位提供参考 */
      display: inline-block;
    }
    .dropdown-flink .dropdown-toggle {
      text-decoration: none;
      color: #333; /* 标题颜色 */
      padding: 5px 10px;
    }
    .dropdown-flink .dropdown-menu {
      display: none; /* 默认隐藏菜单 */
      position: absolute; /* 关键:相对于父容器定位 */
      top: 100%; /* 菜单显示在标题的下方 */
      left: 0;
      background-color: #fff;
      border: 1px solid #ddd;
      border-radius: 4px;
      padding: 10px 0;
      min-width: 150px;
      z-index: 1000; /* 确保菜单显示在其他内容之上 */
      box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    }
    /* 当鼠标悬停在容器上时,显示菜单 */
    .dropdown-flink:hover .dropdown-menu {
      display: block;
    }
    .dropdown-flink .dropdown-menu li {
      list-style: none;
    }
    .dropdown-flink .dropdown-menu li a {
      display: block;
      padding: 5px 20px;
      text-decoration: none;
      color: #333;
    }
    .dropdown-flink .dropdown-menu li a:hover {
      background-color: #f5f5f5;
    }
  4. 添加 JavaScript (可选): 对于更高级的浏览器兼容性或点击效果,可以加入 JS,但对于简单的 hover 效果,纯 CSS 已经足够。

完成以上步骤后,刷新你的网站页面,将鼠标移动到“友情链接”上,就应该能看到一个漂亮的下拉菜单了。


自定义调用,实现更灵活的下拉菜单效果

如果你希望友情链接能按分类显示在下拉菜单中(一级菜单是“网站合作”,二级菜单是具体的链接列表),那么就需要更复杂的自定义调用。

步骤 1:在后台添加带分类的友情链接

与方法一类似,在后台 【核心】->【友情链接】 中,先创建几个分类(如“门户网站”、“技术博客”、“资源下载”),然后将链接分别添加到对应的分类下。

步骤 2:修改模板文件,实现多级下拉

这种方法需要用到 DedeCMS 的 channel 标签来调用分类,再用 flink 标签在循环中调用每个分类下的链接。

<div class="dropdown-flink-multi">
  <a href="javascript:;" class="dropdown-toggle">友情链接</a>
  <ul class="dropdown-menu">
    {dede:channel type='self' row='10'}
      <li class="dropdown-submenu">
        <a href="javascript:;">[field:typename/]</a>
        <ul class="dropdown-menu">
          {dede:flink type='text' row='10' titlelen="24" typeid="[field:id/]"}
          <li><a href="[field:url/]" target="_blank">[field:name/]</a></li>
          {/dede:flink}
        </ul>
      </li>
    {/dede:channel}
  </ul>
</div>

代码解释

  • {dede:channel type='self' ...}:调用友情链接的分类。type='self' 表示只调用当前栏目(友情链接)下的子分类。
  • [field:typename/]:输出分类的名称。
  • [field:id/]:输出分类的 ID,作为 typeid 参数传递给 {dede:flink} 标签,从而只调用该分类下的链接。
  • class="dropdown-submenu":自定义的 CSS 类,用于实现二级菜单的定位。

步骤 3:添加更复杂的 CSS 样式

这种方法需要更复杂的 CSS 来处理二级菜单的定位和显示。

/* 多级友情链接下拉菜单样式 */
.dropdown-flink-multi {
  position: relative;
  display: inline-block;
}
.dropdown-flink-multi .dropdown-toggle {
  text-decoration: none;
  color: #333;
  padding: 5px 10px;
}
.dropdown-flink-multi .dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 5px 0;
  min-width: 180px;
  z-index: 1000;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.dropdown-flink-multi:hover .dropdown-menu {
  display: block;
}
/* 二级菜单样式 */
.dropdown-flink-multi .dropdown-submenu {
  position: relative;
}
.dropdown-flink-multi .dropdown-submenu > a::after {
  content: '>';
  float: right;
  margin-left: 5px;
}
.dropdown-flink-multi .dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%; /* 二级菜单显示在一级菜单的右侧 */
  margin-top: -5px; /* 微调位置,与一级菜单对齐 */
}
.dropdown-flink-multi .dropdown-menu li,
.dropdown-flink-multi .dropdown-menu li a {
  display: block;
  width: 100%;
  padding: 5px 20px;
  text-decoration: none;
  color: #333;
  white-space: nowrap; /* 防止文字换行 */
}
.dropdown-flink-multi .dropdown-menu li a:hover {
  background-color: #f5f5f5;
}
特性 方法一 (自带模块) 方法二 (自定义调用)
实现难度 非常简单 较复杂
灵活性 一般,只能调用所有或单个分类 非常高,可实现多级分类菜单
适用场景 大多数网站,只需一个简单下拉列表 链接非常多,且需要按类别清晰展示的专业网站
推荐度 ⭐⭐⭐⭐⭐ (首选) ⭐⭐⭐ (有特殊需求时使用)

对于绝大多数 DedeCMS 方法一已经完全足够,并且是最稳定、最不容易出错的选择,只有在你有非常明确的、按分类展示链接的需求时,才需要考虑使用方法二。

-- 展开阅读全文 --
头像
dede为何无法生成文章?
« 上一篇 今天
dede微信支付制作怎么操作?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码