成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

用vue2.6實(shí)現(xiàn)一個(gè)抖音很火的【時(shí)間輪盤】屏保小DEMO

wind5o / 3822人閱讀

摘要:代碼如下轉(zhuǎn)動(dòng)然后通過具體的秒分小時(shí)上下午星期日期月值轉(zhuǎn)動(dòng),來控制角度,而且當(dāng)前值進(jìn)行文字高亮。

寫在前面:

前段時(shí)間看抖音,有人用時(shí)間輪盤作為動(dòng)態(tài)的桌面壁紙,一時(shí)間成為全網(wǎng)最火的電腦屏保,后來小米等運(yùn)用市場(chǎng)也出現(xiàn)了【時(shí)間輪盤】,有點(diǎn)像五行八卦,感覺很好玩,于是突發(fā)奇想,自己寫一個(gè)網(wǎng)頁版小DEMO玩玩,先看看效果:

在線體驗(yàn)


當(dāng)然實(shí)現(xiàn)這個(gè)效果,前端的角度來說,有很多,這里介紹最簡(jiǎn)單的,達(dá)到這個(gè)效果純粹是元素圓性布局,如果僅僅是這樣肯定沒有達(dá)到各位老鐵心理需求,所以既然,做了肯定是要做一個(gè)麻雀雖小五臟俱全的小demo,于是就把vue全家桶用上帶設(shè)置的小項(xiàng)目。接下來就一步一步帶各位從0到1構(gòu)建這個(gè)小東西。

一、項(xiàng)目需求:

功能描述:實(shí)現(xiàn)一個(gè)帶設(shè)置的并兼容移動(dòng)端的時(shí)間羅盤(設(shè)置包含:多語言切換,垂直水平位置,縮放大小,旋轉(zhuǎn)角度,文字顏色,背景顏色等)

二、預(yù)備基礎(chǔ)知識(shí)點(diǎn):

1、圓形布局,如下效果圖

解析:
1、圓心:O點(diǎn)、半徑r ,我這里用transform: translateX值來設(shè)置半徑值;
2、圓心角:∠BOM;
3、需要布局的元素:A、B、C、D、E、F、G、H絕對(duì)定位的元素;
4、絕對(duì)定位時(shí)的元素的坐標(biāo)點(diǎn),可以用transform:rotate值,按照秒、分、小時(shí)、上下午、星期、日期、月等份旋轉(zhuǎn)角度來控制各個(gè)元素在圓心的位置


有了這些信息,我們就開始寫代碼了(vue構(gòu)建項(xiàng)目這里就略了 ),簡(jiǎn)單的直接用vue-cli3

開發(fā)環(huán)境基本信息:npm:? v6.4.1;? node: v10.8.0;? vue-cli 3.5.3

?代碼風(fēng)格規(guī)范:ESLint + Prettier

三、項(xiàng)目布局效果開發(fā) 3.1布局

首先我們看到時(shí)間輪盤分別由 秒、分、小時(shí)、上下午、星期、日期、月,這幾項(xiàng)組成,于是把他們都封裝在一個(gè)小模塊組件里

而且同一圓心,所以公共部分的樣式可以共用

這里圓布局,我們以星期為例看下面代碼

Week.vue




先看看布局部分 ul li 標(biāo)簽v-for出周一到周天,一共七天,所以下面li的樣式,熟悉scss語法的同學(xué),就嘴角微微上揚(yáng),@for 的運(yùn)用,360度被分成7等份 , 嗯,真香。來看一波效果,還不錯(cuò)


那接下來,同樣的操作把秒、分、小時(shí)、上下午、星期、日期、月全部配齊,耐心調(diào)translateX()其讓秒、分、小時(shí)、上下午、星期、日期、月的半徑不會(huì)互相重疊,看看效果,初具樣子


注意因?yàn)橥粓A心和絕對(duì)定位所以每個(gè)模塊要z-index 設(shè)置層

3.2JS同步時(shí)間

我們只需要通過JavaScript Date 對(duì)象new一個(gè) Date()出來,然后通過Date 對(duì)象方法,獲取到具體秒、分、小時(shí)、轉(zhuǎn)換上下午、星期、日期、月。代碼如下


3.2轉(zhuǎn)動(dòng)

然后通過具體的秒、分、小時(shí)、上下午、星期、日期、月值ul轉(zhuǎn)動(dòng)transform:rotate:,來控制角度,而且當(dāng)前值進(jìn)行文字高亮。還是以星期為例Week.vue



我們通過watch父組件home.vue傳過來的星期數(shù),然后對(duì)ul父容器進(jìn)行旋轉(zhuǎn),li對(duì)應(yīng)的星期數(shù),動(dòng)態(tài)加當(dāng)前星期class .hover樣式

    li {
      position: absolute;
      height: 60px;
      width: 60px;
      color: #fff;
      text-align: center;
      font-size: 14px;
      line-height: 20px;
     // 高亮
      &.hover {
        text-shadow: rgb(255, 255, 255) 0px 0px 10px,
          rgb(255, 255, 255) 0px 0px 20px, rgb(255, 0, 222) 0px 0px 30px,
          rgb(255, 0, 222) 0px 0px 40px, rgb(255, 0, 222) 0px 0px 70px,
          rgb(255, 0, 222) 0px 0px 80px, rgb(255, 0, 222) 0px 0px 100px;
      }
    }

:class="{ hover: index == rotates - 1 || index == rotates + 6 }",實(shí)現(xiàn)當(dāng)前星期高亮,其他秒、分、小時(shí)、上下午、星期、日期、月亦是如此。接下來就可以愛的魔力轉(zhuǎn)圈圈了


到這里,基礎(chǔ)效果我們已經(jīng)開發(fā)完了

四、設(shè)置開發(fā)

4.1 全屏,這里直接用的是screenfull.js

4.2 切換語言,這里用了?i18n和js-cookie第三方插件,具體實(shí)現(xiàn)是模仿vue-element-admin的實(shí)現(xiàn)方式

import Vue from "vue";
import VueI18n from "vue-i18n";
import Cookies from "js-cookie";
import enLocale from "./en";
import zhLocale from "./zh";
import esLocale from "./zw";

Vue.use(VueI18n);

const messages = {
  en: {
    ...enLocale
  },
  zh: {
    ...zhLocale
  },
  zw: {
    ...esLocale
  }
};
export function getLanguage() {
  const chooseLanguage = Cookies.get("language");
  if (chooseLanguage) return chooseLanguage;

  const language = (
    navigator.language || navigator.browserLanguage
  ).toLowerCase();
  const locales = Object.keys(messages);
  for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
      return locale;
    }
  }
  return "en";
}
const i18n = new VueI18n({
  locale: getLanguage(),
  messages
});

export default i18n;

值得注意的是我們把秒、分、小時(shí)、上下午、星期、日期、月統(tǒng)統(tǒng)都寫在了多語言切換里,所以,我們要時(shí)刻計(jì)算語言的切換變化后的值。以星期為例,這里computed,weekList,實(shí)時(shí)計(jì)算它的變化,然后渲染頁面

看效果,為了美觀簡(jiǎn)單加了一點(diǎn)設(shè)置的小效果,目前支持簡(jiǎn)體中文,繁體中文,英文


4.3其他設(shè)置功能待開發(fā)...


占坑

當(dāng)然布局用畫布寫,肯定是更優(yōu)雅,總的來說實(shí)現(xiàn)起來并不是很難,如果要實(shí)現(xiàn)其他設(shè)置功能的話,部分邏輯需要重構(gòu),其他設(shè)置功能近期會(huì)陸陸續(xù)續(xù)更新發(fā)布出來,本項(xiàng)目源碼學(xué)習(xí)移步

項(xiàng)目源碼地址


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/7381.html

相關(guān)文章

  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0
  • tiktok什么意思-tiktok和抖音的區(qū)別

      tiktok是國(guó)際版的抖音。Tik Tok在海外一通亂殺,超越y(tǒng)outubo,讓Facebook害怕,從中國(guó)走出去的APP正走在征服歐美和世界的路上?! ≌f起Tik Tok,大家都不陌生,這是從中國(guó)走出去的APP,海外版抖音。Tik Tok出海后,迅速贏得了海外用戶的喜歡,而在今年第一季度數(shù)據(jù)統(tǒng)計(jì)中,Tik Tok的用戶每月平均使用時(shí)間為23.6小時(shí),正式超越了youtubo的23.2小時(shí)...

    白馬嘯西風(fēng) 評(píng)論0 收藏0

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

0條評(píng)論

閱讀需要支付1元查看
<