見出し画像

TWSNMP FCフィードバック回答:マップのスクロール位置を固定したい

今朝は4時半から開発開始です。
開発助手見習いの猫さんは2時半に起こしてくれましたが、抱っこして撫でて、まだ早いと教えました。次に起こしてくれたのが4時すぎです。ごはんを上げてから開発開始です。猫さんはだいぶ慣れてきましたが、ビビリなので下で私にあうと二階に逃げていきます。

昨日、問い合わせのメールを頂きました。

マップについて1点確認したいことがございまして
連絡をさせて頂きました。
弊社環境ですとマップを閲覧してる際に一定時間毎にリロードがされるようで、その度にマップの一番先頭(おそらく左端)に画面が強制的に戻されてしまいます。
画面を一切スクロールせずに作業している分には全く問題ないのですが、
下にスクロールして下方のマップを編集していると、一定時間毎に
先頭にビューが戻ってしまうので、再度目的の場所まで移動しなおして
作業を継続しているような状況です。
一応、Edge Chrome Firefoxの3種で試してみたのですが、
どれも同様の事象が確認できました。何かブラウザの設定でこの定期ジャンプを回避できる手段があるようでしたら、教えて頂けますと幸いです。

この動作は気づいていたのですが、それほど影響ないかと思って手抜きしてしました。

マップの状態を更新する時にマップを再描画します。その時スクロール位置がリセットされるようです。

再描画の前後でスクロール位置が変わらないような処理と追加して改善しました。次のリリースにご期待ください。

  async fetch() {
    this.map = await this.$axios.$get('/api/map')
// 更新前のスクロール位置を取得
    const mb = document.getElementById('map')
    const sbt = mb ? mb.scrollTop : 0
    const sbl = mb ? mb.scrollLeft : 0
    this.$showMAP(
      'map',
      this.map,
      this.$axios.defaults.baseURL,
      this.$store.state.map.readOnly
    )
// 更新後にスクロール位置を戻す
    if (mb) {
      const ma = document.getElementById('map')
      if (ma) {
        ma.scrollTop = sbt
        ma.scrollLeft = sbl
      }
    }

今朝、シン・TWSNMPのアイコン設定を作っています。

明日に続く

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。