加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

dom – 如何使用Elm中的Window.dimensions初始化模型?

发布时间:2020-12-14 23:27:28 所属栏目:资源 来源:网络整理
导读:在滑动益智游戏中,我想根据初始窗口尺寸设置初始图块大小(以最大化屏幕空间). 换句话说,我想根据Window.dimensions的初始值设置initialModel. 我找不到如何做到这一点,并最终使用端口来获取初始窗口尺寸: 的index.html Elm.fullscreen(Elm.App,{ windowSize
在滑动益智游戏中,我想根据初始窗口尺寸设置初始图块大小(以最大化屏幕空间).

换句话说,我想根据Window.dimensions的初始值设置initialModel.

我找不到如何做到这一点,并最终使用端口来获取初始窗口尺寸:

的index.html

Elm.fullscreen(Elm.App,{
  windowSize: [
    document.documentElement.clientWidth,document.documentElement.clientHeight
  ]
});

App.elm

port windowSize : (Int,Int)

initialModel =
  -- some function of windowSize

model =
  Signal.foldp update initialModel input

type Action
  = WindowResize (Int,Int)
  | ...

windowResize =
  Signal.map WindowResize Window.dimensions

update action model =
  case action of
    WindowResize dimensions ->
      { model | some change based on dimensions }
  ...

有没有办法在不使用端口的情况下实现相同的结果?

解决方法

您可以使用 Apanatshka/elm-signal-extra包中的 Signal.Extra.foldp’来检查模型初始值对输入信号初始值的影响.

完全披露:我是该套餐的作者.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读