【问题标题】:Sticky scroll in Scala.JSScala.JS 中的粘性滚动
【发布时间】:2017-07-07 18:13:36
【问题描述】:

我正在尝试在 Scala.JS 中做同样的答案:https://stackoverflow.com/a/21067431

以他为例:http://jsfiddle.net/dotnetCarpenter/KpM5j/
我试着在这里重做:https://scalafiddle.io/sf/gKgxQY0/3277

import scalatags.JsDom.all._
import scala.concurrent.duration._
import org.scalajs.dom

println(div(id := "logs", style := "height: 100px"))

js.timers.setInterval(1.millisecond) {
  val logs = dom.document.getElementById("logs")

  val isScrolledToBottom = logs.scrollHeight - logs.clientHeight <= logs.scrollTop + 1

  val child = dom.document.createElement("div")
  child.innerHTML = s"isScrolledToBottom: $isScrolledToBottom"
  logs.appendChild(child)

  if (isScrolledToBottom) logs.scrollTop = logs.scrollHeight - logs.clientHeight

  val child2 = dom.document.createElement("div")
  child2.innerHTML = s"logs.scrollTop: ${logs.scrollTop}"
  logs.appendChild(child2)
}

有人知道为什么 Scala.JS 版本不工作了吗?

干杯

【问题讨论】:

    标签: scala scala.js


    【解决方案1】:

    好的,那是因为我没有在 div 上添加 overflow:autohttps://scalafiddle.io/sf/gKgxQY0/3294

    import scalatags.JsDom.all._
    import scala.concurrent.duration._
    import org.scalajs.dom
    
    println(div(id := "logs", style := "overflow:auto; height: 100px"))
    
    js.timers.setInterval(1.second) {
      val logs = dom.document.getElementById("logs")
    
      val isScrolledToBottom =
        logs.scrollHeight - logs.clientHeight <= logs.scrollTop + 1
    
      val child = dom.document.createElement("div")
      child.innerHTML = s"isScrolledToBottom: $isScrolledToBottom"
      logs.appendChild(child)
    
      if (isScrolledToBottom)
        logs.scrollTop = logs.scrollHeight - logs.clientHeight
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-03
      • 2023-04-01
      • 2016-04-30
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 2016-05-15
      • 2012-07-23
      • 1970-01-01
      相关资源
      最近更新 更多