From 85d381c1201ff8aa798321ea9237b57464b40de9 Mon Sep 17 00:00:00 2001 From: lihaoyi Date: Sun, 23 Nov 2014 22:21:44 -0800 Subject: gh links work --- .../demos/src/main/scala/scrollmenu/Controller.scala | 2 +- .../demos/src/main/scala/scrollmenu/ScrollMenu.scala | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'examples') diff --git a/examples/demos/src/main/scala/scrollmenu/Controller.scala b/examples/demos/src/main/scala/scrollmenu/Controller.scala index d359138..4480445 100644 --- a/examples/demos/src/main/scala/scrollmenu/Controller.scala +++ b/examples/demos/src/main/scala/scrollmenu/Controller.scala @@ -34,7 +34,7 @@ object Controller{ scrollSpy.domTrees.map(_.value.frag) ).render - def updateScroll() = scrollSpy(main.scrollTop) + def updateScroll() = scrollSpy() val expandIcon = i(cls := "fa fa-caret-down").render val expandLink = a( diff --git a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala b/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala index 29c44a6..9ce9a2b 100644 --- a/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala +++ b/examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala @@ -61,13 +61,13 @@ class ScrollSpy(structure: Tree[String], } - private[this] var scrolling = false - def apply(threshold: => Double) = if (!scrolling){ - scrolling = true - dom.setTimeout(() => start(threshold), 200) + private[this] var scrolling = -1 + def apply() = { + dom.clearTimeout(scrolling) + scrolling = dom.setTimeout(() => start(), 200) } - private[this] def start(threshold: Double) = { - scrolling = false + private[this] def start() = { +// scrolling = false def scroll(el: dom.Element) = { val rect = el.getBoundingClientRect() if (rect.top <= 0) @@ -77,8 +77,8 @@ class ScrollSpy(structure: Tree[String], } def walkTree(tree: Tree[MenuNode]): Boolean = { val Tree(MenuNode(menuItem, itemId, start, end), children) = tree - val before = headers(start) <= threshold - val after = (end >= headers.length) || headers(end) > threshold + val before = headers(start) <= main.scrollTop + val after = (end >= headers.length) || headers(end) > main.scrollTop val win = before && after @@ -97,7 +97,7 @@ class ScrollSpy(structure: Tree[String], // aren't any children which won, so it must be the actual leaf tree.children.foreach(_.value.frag.classList.remove("selected")) if (dom.location.hash != itemId) - dom.location.hash = itemId + dom.history.pushState(null, null, "#"+itemId) scroll(menuItem.children(0)) } -- cgit v1.2.3