如何实现导航文字与折叠文字的联动

今天需要实现一个需求是点开折叠的菜单文字,导航栏文字按顺序移动并且选中文字高亮。效果图类似以下这样。

 核心代码:

/**
   * 创建dom元素
   */
function domToString (node) {
  /**
   * 创建一个div元素
   */
  var tmpNode = document.createElement('div')
  /**
   * 克隆节点
   */
  var deepList = node.cloneNode(true)
  /**
   * 创建的div添加这些克隆节点
   */
  tmpNode.appendChild(deepList)
  var str = tmpNode.innerHTML
  // console.log(str)
  tmpNode = node = null // 解除引用,以便于垃圾回收
  return str
}
$(".unfold")
    .off("click")
    .on("click", ".text6", function (e) {
      var $slidePlace = $(".slidePlace a")
      let x = null
      x = $(this).index()
      if ($slidePlace.length > 7 && x > 2) {

        var $navBtnbox = ""
        $navBtnbox += domToString($slidePlace[x - 3])
        $navBtnbox += domToString($slidePlace[x - 2])
        $navBtnbox += domToString($slidePlace[x - 1])
        $navBtnbox += domToString($slidePlace[x])
        if ($slidePlace.length > x + 1)
          $navBtnbox += domToString($slidePlace[x + 1])
        if ($slidePlace.length > x + 2)
          $navBtnbox += domToString($slidePlace[x + 2])
        if ($slidePlace.length > x + 3)
          $navBtnbox += domToString($slidePlace[x + 3])
        $(".nav").html($navBtnbox)
      } else {
        var $navBtnbox = ""
        var aa = $slidePlace.length > 6 ? 6 : $slidePlace.length
        for (var a = 0; a <= aa; a++) {
          $navBtnbox += domToString($slidePlace[a])
        }
      }
      console.log(e.target.innerText)
      let nav_text = e.target.innerText
      $('.nav a').each((item, exm) => {
        console.log($(exm).text())
        if ($(exm).text() === nav_text) {
          $(exm).addClass('bh')
          $(exm).siblings('a').removeClass('bh')
        }
      })
      $(this).addClass('bh').parent().siblings().removeClass('bh')
      $(".more").removeClass("actived")
      const word1 = $(this).text()
      getList1(word1)
      $(".bumenguizhang").hide()
      $(".diviedConUl").show()
    })

 页面元素的整体结构如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwq8023520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值