亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

用electron仿qq首頁(yè)

Bmob / 1254人閱讀

摘要:首頁(yè)的彈窗和天氣效果都挺好,最近琢磨了一下用來(lái)仿造出這樣的效果,主要是彈窗控件這塊,也考慮了一下窗口的復(fù)用,下面展示一下做好后的效果,注樣式只是隨便調(diào)了一下,畢竟沒(méi)有那么多時(shí)間去弄樣式分析思路制作思路首先是左邊鼠標(biāo)放到頭像上顯示出窗口并且?guī)?/p>

QQ首頁(yè)的彈窗和天氣效果都挺好,最近琢磨了一下用electron來(lái)仿造出這樣的效果,主要是彈窗控件這塊,也考慮了一下窗口的復(fù)用,下面展示一下做好后的效果,注:樣式只是隨便調(diào)了一下,畢竟沒(méi)有那么多時(shí)間去弄樣式

分析思路

制作思路首先是左邊鼠標(biāo)放到頭像上顯示出窗口并且?guī)в袆?dòng)畫(huà)效果,鼠標(biāo)在兩個(gè)窗口之間來(lái)回移動(dòng)窗口會(huì)跟隨移動(dòng)并且切換內(nèi)容,不難發(fā)現(xiàn)此時(shí)移動(dòng)的時(shí)候是復(fù)用的一個(gè)窗口,這樣可以減少創(chuàng)建窗口的開(kāi)銷(xiāo),天氣那里窗口反轉(zhuǎn)用個(gè)路由動(dòng)畫(huà)就可以了

解決方案

解決方案直接寫(xiě)代碼吧,這里使用了electron-vue和electron-vue-windows兩個(gè)插件,如果不了解具體可以看這里electron-vue-windows,思路是通過(guò)reuse這個(gè)屬性就可以直接讓窗口復(fù)用,當(dāng)調(diào)用closeWin()的時(shí)候?qū)嶋H上是吧窗口隱藏掉了,這樣就減少了創(chuàng)建窗口的開(kāi)銷(xiāo),窗口打開(kāi)時(shí)的動(dòng)畫(huà)一個(gè)效果就搞定了,但是窗口已經(jīng)打開(kāi)只能通過(guò)移動(dòng)動(dòng)畫(huà)來(lái)達(dá)到移動(dòng)的效果,就是animation,所以我們要加一個(gè)判斷如果窗口已經(jīng)打開(kāi)就移動(dòng)沒(méi)有打開(kāi)的話就創(chuàng)建,代碼如下:

openLeft (e, index) {
  clearTimeout(this.timeTap)
  let width = 300
  // 獲取當(dāng)前窗口的寬高,用于定位子窗口位置
  let fatherBounds = this.$Win.win.getBounds()
  // 判斷右邊是否過(guò)界(計(jì)算出子窗口的坐標(biāo)點(diǎn))
  let leftWidth = e.screenX - e.offsetX - width - 15
  let x = leftWidth < 0 ? leftWidth + width + fatherBounds.width : leftWidth
  let y = e.screenY - e.offsetY
  // 查詢(xún)子窗口是否存在
  let win = this.$Win.getWinByName("leftname")
  if (win) {
    // 如果存在跳轉(zhuǎn)路由,并重新發(fā)送數(shù)據(jù)
    this.$Win.routerPush({
      router: "/infoWindow/" + index,
      win: win,
      data: {name: index}
    })
    win.show()
    // 動(dòng)畫(huà)過(guò)度到新位置
    this.$Win.animation({
      win: win,
      time: 200,
      to: {
        x: x,
        y: y
      }
    })
  } else {
    this.$store.dispatch("changeTransition", "default")
    // 不存在子窗口就新建窗口
    win = this.$Win.createWin({
      width: 300,
      height: 200,
      windowConfig: {
        router: "/infoWindow/" + index,
        name: "leftname",
        customAnimation: {
          fromPosition: {x: x, y: y - 50},
          time: 300 // 動(dòng)畫(huà)時(shí)間
        },
        data: {name: index},
        reuse: true,
        reload: true,
        vibrancy: true
      },
      x: x,
      y: y,
      alwaysOnTop: true,
      skipTaskbar: true
    })
    win.show()
  }
}

另外一個(gè)天氣窗口,注意qq的天氣窗口是可以旋轉(zhuǎn)的,所以此時(shí)是不能用背景模糊的窗口來(lái)做,只能使用透明窗口,那么反轉(zhuǎn)的效果也很容易,直接寫(xiě)css就行了,代碼如下:

showwindow () {
  let fatherBounds = this.$Win.win.getBounds()
  // 判斷右邊是否過(guò)界
  let leftWidth = window.screen.width - fatherBounds.width - fatherBounds.x - 300
  let x = leftWidth >= 0 ? fatherBounds.width + fatherBounds.x : fatherBounds.x - 300
  let y = fatherBounds.y
  let win = this.$Win.createWin({
    width: 300,
    height: 200,
    x: x,
    y: y,
    windowConfig: {
      router: "/cloudWindow",
      vibrancy: false,
      name: "cloud",
      animation: "fromBottom"
    }
  })
  win.show()
}

窗口反轉(zhuǎn)的代碼如果不懂可以看這里

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/108563.html

相關(guān)文章

  • Vue.js全家桶低仿網(wǎng)易云音樂(lè)(MacOS版) 已新增electron打包pc平臺(tái)app

    摘要:項(xiàng)目地址暫時(shí)只實(shí)現(xiàn)了基本功能加了一點(diǎn)微小的效果主要適配瀏覽器對(duì)和做了一點(diǎn)微小的適配現(xiàn)在已經(jīng)包括了打包平臺(tái)的功能了源碼地址項(xiàng)目預(yù)覽項(xiàng)目描述前端部分整體加載進(jìn)度懶加載模塊的加載中提示實(shí)現(xiàn)了滑塊增量分頁(yè)新曲等使用了做單頁(yè)應(yīng)用使用了處理路由使用了管 項(xiàng)目地址 暫時(shí)只實(shí)現(xiàn)了基本功能 加了一點(diǎn)微?小的效果 主要適配pc瀏覽器 對(duì)android 和ios 做了一點(diǎn)微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    leap_frog 評(píng)論0 收藏0
  • Vue.js全家桶低仿網(wǎng)易云音樂(lè)(MacOS版) 已新增electron打包pc平臺(tái)app

    摘要:項(xiàng)目地址暫時(shí)只實(shí)現(xiàn)了基本功能加了一點(diǎn)微小的效果主要適配瀏覽器對(duì)和做了一點(diǎn)微小的適配現(xiàn)在已經(jīng)包括了打包平臺(tái)的功能了源碼地址項(xiàng)目預(yù)覽項(xiàng)目描述前端部分整體加載進(jìn)度懶加載模塊的加載中提示實(shí)現(xiàn)了滑塊增量分頁(yè)新曲等使用了做單頁(yè)應(yīng)用使用了處理路由使用了管 項(xiàng)目地址 暫時(shí)只實(shí)現(xiàn)了基本功能 加了一點(diǎn)微?小的效果 主要適配pc瀏覽器 對(duì)android 和ios 做了一點(diǎn)微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    graf 評(píng)論0 收藏0
  • Vue.js全家桶低仿網(wǎng)易云音樂(lè)(MacOS版) 已新增electron打包pc平臺(tái)app

    摘要:項(xiàng)目地址暫時(shí)只實(shí)現(xiàn)了基本功能加了一點(diǎn)微小的效果主要適配瀏覽器對(duì)和做了一點(diǎn)微小的適配現(xiàn)在已經(jīng)包括了打包平臺(tái)的功能了源碼地址項(xiàng)目預(yù)覽項(xiàng)目描述前端部分整體加載進(jìn)度懶加載模塊的加載中提示實(shí)現(xiàn)了滑塊增量分頁(yè)新曲等使用了做單頁(yè)應(yīng)用使用了處理路由使用了管 項(xiàng)目地址 暫時(shí)只實(shí)現(xiàn)了基本功能 加了一點(diǎn)微?小的效果 主要適配pc瀏覽器 對(duì)android 和ios 做了一點(diǎn)微?小的適配 現(xiàn)在已經(jīng)包括了ele...

    melody_lql 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<