diff options
author | lihaoyi <haoyi.sg@gmail.com> | 2014-11-23 22:21:44 -0800 |
---|---|---|
committer | lihaoyi <haoyi.sg@gmail.com> | 2014-11-23 22:21:44 -0800 |
commit | 85d381c1201ff8aa798321ea9237b57464b40de9 (patch) | |
tree | 26dac3719558b66a549a7236b4c46bb5119a3cf0 /examples | |
parent | 7924069976b15ee0c535221673d89200ce3d5570 (diff) | |
download | hands-on-scala-js-85d381c1201ff8aa798321ea9237b57464b40de9.tar.gz hands-on-scala-js-85d381c1201ff8aa798321ea9237b57464b40de9.tar.bz2 hands-on-scala-js-85d381c1201ff8aa798321ea9237b57464b40de9.zip |
gh links work
Diffstat (limited to 'examples')
-rw-r--r-- | examples/demos/src/main/scala/scrollmenu/Controller.scala | 2 | ||||
-rw-r--r-- | examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala | 18 |
2 files changed, 10 insertions, 10 deletions
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)) } |