如果它离开屏幕,则修剪长导航

时间:2016-06-17 12:51:13

标签: javascript jquery html css

我正在尝试写这件事需要一点帮助。我不需要代码,只需要对逻辑提供一些帮助。

所以我有这个导航,在任何一点可以是不同的宽度,其中有不同数量的锚点。如果它恰好比包装容器长,我必须修剪它,放置" ..."如果用户点击了点,则其余项目必须显示在下拉列表中。

现在好了,但导航也很粘。当它坚持到顶部时,我必须减少徽标并从其宽度共享(有时也是语言选择器)。当它恢复静止时,我必须再次更新它,并显示我之前修剪过的元素。

所有这些"额外"我必须从宽度上减少的元素是网站中的某个容器,没有特殊的类或其中的任何特殊内容,纯内容(它来自CMS,无法更改)。

我很感激任何类型的帮助!

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您知道导航的尺寸,我会说以下步骤可能有所帮助:

  1. 总是有一个带有隐藏类的省略号元素,根据需要切换。
  2. 使用jquery $('navElement')。offset()。left + $('navElement')。width获得导航的右端位置。
  3. 现在您可以在此位置获取元素,可能使用Document.elementFromPoint(),
  4. 识别此元素之后的所有元素,您必须弄清楚这个元素的逻辑,使它们显示块,并将它们全部包装在容器中。
  5. 现在显示隐藏该容器将导致下拉效果。
  6. 只要你可以使用css选择器识别你想要显示/隐藏的徽标和其他组件,当你的导航变粘时,在导航中添加一个父类并写入css以在粘贴类内部隐藏这些元素
  7. 这是我根据你的问题广泛遵循的逻辑。