summaryrefslogtreecommitdiff
path: root/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala')
-rw-r--r--examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala7
1 files changed, 4 insertions, 3 deletions
diff --git a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala b/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala
index 5bd5259..7c4fb78 100644
--- a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala
+++ b/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala
@@ -7,7 +7,7 @@ import scalatags.JsDom.all._
case class Tree[T](value: T, children: Vector[Tree[T]])
-case class MenuNode(frag: dom.HTMLElement, start: Int, end: Int)
+case class MenuNode(frag: dom.HTMLElement, id: String, start: Int, end: Int)
/**
* High performance scrollspy to work keep the left menu bar in sync.
@@ -33,6 +33,7 @@ class ScrollSpy(structure: Tree[String],
Tree(
MenuNode(
curr(ul(paddingLeft := "15px",children.map(_.value.frag))).render,
+ Controller.munge(t.value),
originalI,
if (children.length > 0) children.map(_.value.end).max else originalI + 1
),
@@ -75,7 +76,7 @@ class ScrollSpy(structure: Tree[String],
el.scrollIntoView(false)
}
def walkTree(tree: Tree[MenuNode]): Boolean = {
- val Tree(MenuNode(menuItem, start, end), children) = tree
+ val Tree(MenuNode(menuItem, itemId, start, end), children) = tree
val before = headers(start) < threshold
val after = (end >= headers.length) || headers(end) > threshold
@@ -95,7 +96,7 @@ class ScrollSpy(structure: Tree[String],
// This means it's the leaf element, because it won but there
// aren't any children which won, so it must be the actual leaf
tree.children.foreach(_.value.frag.classList.remove("selected"))
-
+ dom.location.hash = itemId
scroll(menuItem.children(0))
}