diff options
author | lihaoyi <haoyi.sg@gmail.com> | 2014-11-23 19:54:59 -0800 |
---|---|---|
committer | lihaoyi <haoyi.sg@gmail.com> | 2014-11-23 19:54:59 -0800 |
commit | 0f58d9da34162cdb85d8b3b6c6c9c38a991f02db (patch) | |
tree | 6e10fa9867336a78e80d59adcbe7d1b104052ee6 /examples/demos/src/main/scala | |
parent | 2efb486b08ef949f02529a6cc30b94d267862dfd (diff) | |
download | hands-on-scala-js-0f58d9da34162cdb85d8b3b6c6c9c38a991f02db.tar.gz hands-on-scala-js-0f58d9da34162cdb85d8b3b6c6c9c38a991f02db.tar.bz2 hands-on-scala-js-0f58d9da34162cdb85d8b3b6c6c9c38a991f02db.zip |
Hash tracing
Diffstat (limited to 'examples/demos/src/main/scala')
-rw-r--r-- | examples/demos/src/main/scala/scrollmenu/Controller.scala | 20 | ||||
-rw-r--r-- | examples/demos/src/main/scala/scrollmenu/ScrollMenu.scala | 7 |
2 files changed, 8 insertions, 19 deletions
diff --git a/examples/demos/src/main/scala/scrollmenu/Controller.scala b/examples/demos/src/main/scala/scrollmenu/Controller.scala index cb0fc63..80e20eb 100644 --- a/examples/demos/src/main/scala/scrollmenu/Controller.scala +++ b/examples/demos/src/main/scala/scrollmenu/Controller.scala @@ -43,6 +43,9 @@ object Controller{ marginLeft := "0px", paddingLeft := "15px", paddingRight := "15px", + position.absolute, + top := "0px", + right := "0px", cls := "pure-menu-selected", onclick := { (e: dom.Event) => expandIcon.classList.toggle("fa-caret-down") @@ -55,24 +58,9 @@ object Controller{ menu.appendChild( - div( - zIndex := 10, - position := "absolute", - cls := "pure-menu pure-menu-open", - ul(cls := "menu-item-list")( - li( - width := "43px", - float := "right", - expandLink - ) - ) - ).render - ) - - menu.appendChild( div(cls := "pure-menu pure-menu-open")( a(cls := "pure-menu-heading")( - "Contents" + "Contents", expandLink ), list ).render 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)) } |