<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          首頁

          輕松三步搞定數據統計分析:統計+分析+可視化!

          資深UI設計者

          我們都知道,數據是支撐決策的重要依據,于是我們可以看到,幾乎所有的產品,都會具有數據統計分析的功能模塊。往大了說,比如數據中臺;往高端了說,比如數據大屏、數據看板、數據駕駛艙;往本質了說,其實就是數據的統計分析。作為一個非數據型產品經理,或者是初級產品經理,該怎樣設計這個功能模塊呢?

          如果你剛好為此苦惱,不妨試一下我最近研究的這三步曲:統計+分析+可視化!

          前言

          關于數據統計分析,首先表達一個我蠻認同的觀點:

          好的數據分析師,要像眼科醫生一樣:配眼鏡可能有很多專業的方法,有很多專業的工具,可在配的過程中,醫生糾結的不是自己的理論,而是關注用戶看得清不清楚,不斷問用戶“這樣可以嗎?這樣更清楚嗎?再這樣試試呢?”

          —— 接地氣的陳老師

          相信在工作中,大家經常會碰到一些“孔乙己”式的數據統計分析,一開口就是“xx 指標體系”,再加上一大堆什么“權威的、標準的、BAT 認定的”這之類的修飾詞匯。這特么就是典型的虛假數據分析啊,因為這些大多數時候,耗時費力,卻沒有解決實際問題。

          并且這種虛假的數據統計分析,還有它遵循的理論模型:

          輕松三步搞定數據統計分析:統計+分析+可視化!

          而真正的數據統計分析,就像太極拳的精髓一樣:“只重其義,不重其招,你忘記所有的招式,就練成太極拳了?!保ㄒ越鉀Q業務問題為根本)

          統計

          要搞數據的統計分析,那第一步我們得先有數據,也就是數據的統計工作。提起數據統計,那自然繞不開數據埋點。如果你們公司從來沒整過埋點這個事,那也不用大費周章,因為界內已經有很多成熟的埋點公司了,例如神策、友盟等等,直接花錢辦事就完了,也不貴。

          我們今天研究的,是通過埋點,能夠獲得哪些數據呢?總結下來,大概有這么五類:

          埋點獲取五類數據

          1. 整體概況
          2. 用戶獲取
          3. 活躍與留存
          4. 事件轉化
          5. 用戶特征

          來來來,我們逐個剖析一下,這幾類數據,具體都包含什么,以及獲取這些數據有啥用。

          1. 整體概況

          輕松三步搞定數據統計分析:統計+分析+可視化!

          實時數據意義:可以獲取到每個小時的產品實時數據,幫助你了解產品目前的實時情況。

          使用概況意義:產品整體的使用情況,包括用戶量、訪問情況、留存等,幫助你對產品整體指標有一個大致的了解。

          2. 用戶獲取

          輕松三步搞定數據統計分析:統計+分析+可視化!

          渠道訪問意義:每個渠道的用戶的使用情況,包括渠道中新用戶的占比、留存等,幫助你了解產品在獲客層面上的優勢與不足。

          版本數據意義:每個版本的使用情況,幫助你了解在產品升級的過程中,是否在活躍和留存方面有所改善。

          3. 活躍與留存

          輕松三步搞定數據統計分析:統計+分析+可視化!

          訪問流量意義:產品的每日訪問數據,指標集中在新老用戶的訪問行為上,提供訪問次數、時長、次數分布、訪問時段高峰等指標,幫助了解新老用戶在使用產品時的一些行為特征。

          用戶留存意義:提供用戶 7 日,次日,次周,次月留存的數據,幫助你了解新老用戶的使用粘性。

          4. 事件轉化

          輕松三步搞定數據統計分析:統計+分析+可視化!

          自定義事件意義:用戶自定義關鍵事件,系統會自動生成該事件的發生次數、人數以及分布情況,也就是能夠看到用戶都在干啥。

          收益類事件意義:用戶自定義收益類事件,系統會自動生成該事件的發生次數、人數以及分布情況,會根據你選擇的數值類型屬性,計算該數值的總值、人均值以及次均值。也就是能夠看到用戶都咋花錢的。

          5. 用戶特征

          輕松三步搞定數據統計分析:統計+分析+可視化!

          用戶特征意義:能夠看到我們的用戶,都是哪些牛鬼蛇神~

          分析

          有了埋點的數據以后,那就是怎樣利用這些數據,充分發掘這些數據的價值了。數據分析的套路就更多了,把下面這些學會,應該“二八原則”里面的“八”就能夠搞定了~

          1. 常見的數據分析指標

          輕松三步搞定數據統計分析:統計+分析+可視化!

          綜合性指標:反映產品的整體情況。

          流程性指標:反映用戶的使用行為。

          業務性指標:反映具體的業務情況。

          2. 常見的數據分析維度

          輕松三步搞定數據統計分析:統計+分析+可視化!

          數據細分:通過不同的細分維度分析,往往可以追溯到問題發生的原因,還能為后續的一些動作提供參考依據。

          數據對比:沒有對比就沒有傷害,一方面是橫向比較,即自身和別人進行對比,如常見的同比、環比;另一方面是縱向比較,即自身和自身進行對比,比如行業競品、全站數據、AB 測試等。

          3. 常見的數據分析方法

          輕松三步搞定數據統計分析:統計+分析+可視化!

          HEART 模型:Google HEART 模型的提出,可以讓大家反思自己的產品設計思維,同時運用相關設計工具去提高 HEART 五項指標來完善用戶體驗,打造更好的產品。

          AARRR 模型:該模型出自于《增長黑客》,它是在 2007 提出,當年的獲客成本還比較低廉,而這種模型很簡單又很直觀地突出了增長的所有重要元素,所以這個模型很長時間內都很受歡迎。

          RARRA 模型:而現在獲客的成本與日俱增,市場情況和 2007 年已經完全不同?,F在黑客增長的真正關鍵在于用戶留存,而不是獲客。于是,一個突出了用戶留存重要性的模型 RARRA 誕生了。

          可視化

          有了統計的數據以及分析的維度之后,最后一步工作就是可視化啦!

          而想要完成這一步,又快又好的方法,那自然就是參考各種規范啦,首先我們可以去一個叫做「e-charts」的網站,去查看各種可視化圖表,因為開發很多時候,就是依照這些開源的圖表庫進行擼代碼的~

          輕松三步搞定數據統計分析:統計+分析+可視化!

          而我們設計的時候,就需要借助各種原型組件啦。數據可視化的內容有很多,我們來舉幾個典型例子:

          1. 折線圖

          輕松三步搞定數據統計分析:統計+分析+可視化!

          注意事項:選用的線型要相對粗些,線條一般不超過 5 條,不使用傾斜的標簽,縱坐標軸一般刻度從 0 開始。預測值的線條線型改為虛線。

          2. 柱形圖

          輕松三步搞定數據統計分析:統計+分析+可視化!

          注意事項:同一數據序列使用相同的顏色。不使用傾斜的標簽,縱坐標軸一般刻度從 0 開始。一般來說,柱形圖最好添加數據標簽,如果添加了數據標簽,可以刪除縱坐標刻度線和網格線。

          3. 條形圖

          輕松三步搞定數據統計分析:統計+分析+可視化!

          注意事項:同一數據序列使用相同的顏色。不使用傾斜的標簽,最好添加數據標簽,盡量讓數據由大到小排列,方便閱讀。

          4. 餅圖

          輕松三步搞定數據統計分析:統計+分析+可視化!

          注意事項:把數據從 12 點鐘的位置開始排列,最重要的成分緊靠 12 點鐘的位置。數據項不要太多,保持在 6 項以內,不使用爆炸式的餅圖分離。不過可以將某一片的扇區分離出來,前提是你希望強調這片扇區。

          餅圖不使用圖例,不使用 3D 效果,當扇區使用顏色填充時,推薦使用白色的邊框線,具有較好的切割感。

          5. 其他

          輕松三步搞定數據統計分析:統計+分析+可視化!

          這種數據可視化的圖表還有很多,而它的意義就在于,用圖表代替大量堆砌的數字,有助于閱讀者更形象直觀地看清楚問題和結論。我也在工作中搜集到了一些不錯的數據可視化原型組件,有需要的同學可以自行下載啦~

          結語

          好了,以上就是今天的所有內容了,正如前言所說的,我們今天只討論武功招式,不討論內功心法。

          延伸一下:數據統計分析,最終還是要從業務中來,到業務中去,一切的形式,都是次要的,關鍵還是要以解決業務問題為根本、但對于我們這些“新手”來說,經驗主義自然也是要借鑒的!相信今天總結的內容,也足夠支撐大家比葫蘆畫瓢啦。


          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png



          文章來源:優設   作者:曉莊同學產品筆記

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務




          掌握好「視覺重力原則」,構圖的奧秘很簡單!

          資深UI設計者

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          生活在地球上的我們,每時每刻其實都在感受著重力的存在。除了物理層面的影響,重力是否會改變我們對于視覺畫面的認知呢?又或者說,物理學中經常聽到的重力概念,和設計中的構圖、排版又存在著怎樣的關聯呢?

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          我們或許能夠從格式塔學派對認知心理學的研究里,尋找到一些蛛絲馬跡。

          人們的大腦總是會去腦補眼前看到的事物。就像我們看到的這三個被遮擋住的圓形圖案,位于中心的倒三角雖然沒有實際出現,但我們確實認為它是存在的對吧。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          視覺本身是很容易被周圍環境影響的,就像我們現在看到的這個畫面。如果忽略掉空間和透視的話,你還會覺得右側的豎線更高嗎?

          而實際上的情況是,左邊的豎線高度要遠遠高于右邊的豎線高度。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          再看這個例子,兩側位于中央的白色球形,它們之間,誰看起來更大,誰又看起來更???也許有的朋友會說左邊更大,這個答案是沒錯的,但它也僅僅是看起來更大而已。

          如果我們在畫面中拉出兩條輔助線,我們就會發現,原本右邊看起來更小的圓球,要比左邊的圓球更大。

          通過剛剛的幾個小測試,相信大家已經對于用眼睛的判斷能力有了一些認識了,是不是有一種眼見不一定為實的感覺?視覺重力原則,其實就是建立在這樣的認知基礎之上的。我們大腦所認為的重心或平衡感,和真實的情況,往往并不相同。

          在做版式設計的時候,我們的構圖越接近重心的平穩狀態,就越會激發和諧的美感。因為重力在自然界中是再平常不過的現象了,生活在這樣環境中的我們,自然也會有這種審美上的傾向了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          我們來看這個例子,這張紙最穩定的位置在哪里呢?答案是它的正中心。

          我們把信息添加在頁面的中心位置,現在它看起來更平穩了嗎?然而并沒有,可問題出在哪?一定是我們沒有把文字擺正吧?上方的區域(a),看起來要比下方的區域(b)面積更大一些,真的是這樣么?

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          可實際上,文字確實是在頁面的正中心位置上了,這同樣我們的眼睛在作怪。

          所以為了抵消視覺上的這種墜落感,我們需要將文字略微向上移動,這樣我們看這段文字才是真正居中的。

          正向

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          我們再舉個例子,這是一個數字 8,我們來仔細觀察一下它的造型,頂部與底部的負空間看起來是一樣大的對嗎?

          垂直翻轉

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          而事實上并不是這樣的,通過將它倒置,我們就會更明顯的看出來,其實為了抵消人眼的錯覺,我們在做字的時候,需要將上面做的更小,底部做的更大一些。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          這是兩個完全等大的黑色圓形,但它在視覺上其實并不是平衡的,人們的眼睛會覺得右邊更輕,這雖然沒有頂部和底部那么明顯,但也確實存在。那么解決的方法就是將左邊的圓形略微縮小一些,現在這個頁面看起來平衡多了。我們總是會下意識的認為左側要更重要些。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          ? 畫作:The Creation of Adam

          看這幅畫,很明顯左側的內容要比右側更少,可如果我們將它鏡像翻轉過來,它原版的平衡感就會被打破了。人們更多會認為左邊看起來更重了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          同樣的,在我們的漢字設計中,也會應用這種做法,比如林字的兩個木字旁,就并不是左右等大的,因為這樣在視覺上會顯得不平衡。所以需要將左側的偏旁削弱,才會在視覺上看起來更加和諧。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          具有左右結構的漢字,基本上都遵循了這個原則。形成了左收右放的構成樣式。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          漢字“田”的中心十字筆畫,為了看起來是居中的感覺,實際上也特地微調了文字的重心部分。利用輔助線,我們會更容易察覺到這其中的變化??梢钥吹剑瑱M筆部分,向上移動了很多。豎筆部分也相應向左做了位置上的調整。

          人們常說,細節決定成敗。也正是這些不起眼的細節,拉開了專業平面設計和業余設計師之間的距離。相信看到這里的小伙伴們,應該已經領略到了視覺重力原則在設計中的重要地位了。那么光知道有這么一回事兒可不行,我們更應該去了解它的特點,以及嘗試著去掌握它。

          我們看到的所有圖像,無論抽象的還是具象的,其實都是具有重量感的。那么都有哪些因素會影響到視覺重力的大小呢?找到視覺重心之后,我們又要怎樣去利用它們?接下來我們就一起去尋找相應的答案。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          色彩對視覺重量有影響嗎?我們看畫面中的這兩個圖形,是不是很明顯感覺到右邊更重呢?黃色的色相本身的視覺明度就要比藍色更淺,所以我們會感覺到右邊更重。

          為了抵消顏色對視覺重量的影響,我們需要降低藍色的面積,這樣才能讓兩個圖形看起來是平衡的。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          那么換成具象的物體呢?道理其實也是一樣的。我們依然可以把它們看成是純粹的色彩。經過這一步分析,我們是不是發現了左側紅色的蘋果,顯然會更深和更重呢?

          所以,為了保持左右的平衡感,我們也需要把紅色相應的縮小一些。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          我們看這兩個圖形,它們誰更重?左側的八邊形,它的頁面邊緣更復雜,角度變化也更多,所以承載了更多的信息量,相比正方形更簡潔的造型來說,左側會更重。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          那么換成大小相同的秤砣和棉花呢?誰更重?幾乎沒懸念了,棉花完敗。當具象的物體出現時,結合以往的視覺經驗后,誰更重誰更輕也就很顯而易見了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          對齊也需要考慮到視覺重力嗎?如果你也有這種疑問的話,接著往下看。這是兩個馬克杯,它們雖然造型類似,但是色彩卻不同。很顯然藍色的版本會更重,而在位置上更靠近左邊,也就顯得更重了。

          所以,為了抵消這種重量上的輕微不平穩,我們可以把顏色更淺的橙色放到左側的位置上。這樣雖然色彩上橙色更輕,可由于它的位置更重要,也就不會給人不平穩的感覺了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          那么構圖基本確定之后,我們為這兩個杯子搭配上一段文案信息。這樣兩個商品的展示也就做完了。你發現這兩個組合出現什么問題了嗎?當文字信息加入到頁面之后,是不是覺得哪里不對呢?

          電腦是看不懂圖像的,所以用到對齊命令時,它們會圍繞著像素的邊緣去做對齊??蓡栴}在于,并不是所有圖片的視覺重心都剛好在方框的中間位置。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          所以我們要去修改的地方,也正是這個視覺重心的對齊位置?,F在再看這兩個組合,是不是感覺和諧了很多。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          當西文和漢字相互組合時,需不需要考慮到視覺重心的對齊呢?我們看,如果僅僅是依據邊緣進行對齊的話,就會讓西文部分看上去很小。而正確的做法是需要我們忽略掉一些文字邊緣的。

          分別找到兩組文字的視覺大小。只有這樣,才能讓兩組文字在視覺面積上達到相同的重量。當然,文字字重部分也是需要做出相應匹配。我們看,經過調整后,中西文的搭配明顯要更加平穩了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          但也是有例外的,比如這個例子,明明是按照之前的調整方式,僅僅是更換了文字的內容。為什么它看上去依然沒有對齊呢?這里的問題其實出現在西文部分,有些單詞組合,字母并沒有占據下伸部的空間。所以在整體上,就會顯得有高低的錯落感。

          這種情況,當然就需要重新去匹配了。解決方法依然是對齊文字之間的視覺重心部分。所以,方法并不是死記硬背的。我們需要根據不同的情況去做出有針對性的調整。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          接下來我們來做一個包裝的案例。它是一個螃蟹口味的海鮮調味料。首先,我們選擇這個手繪的螃蟹作為這個畫面中的視覺焦點,把它放在版面的中心位置。經過前面的學習,我們知道了,選擇對齊元素時,我們要忽略掉那些細枝末節的部分,才能找到真正的視覺中心位置。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          找到了視覺重心后,我們把它安排到頁面真正的中央部位。頂部和底部的空間,我們就繼續調整其他的信息。首先從層級上來說,在頁面頂部我們需要一個相對第二大面積的文字組合。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          而其余的元素,圍繞著底部的負空間去排列就可以了,到這里這個包裝也就做完了。

          無論是版式設計,還是繪畫攝影,構圖從來都是一個講究的事情。想要做一版在視覺上平穩的版面,最簡單的辦法,就是把主體固定在頁面的中心位置??墒沁@種對稱的設計,由于太過完美,也多少會給人一種單調和乏味的印象。那么有沒有一種既讓頁面保持平衡,又能在結構上做出變化的設計方法呢?這就引出了我們接下來的內容了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          這個案例,屬于網頁中會出現的廣告頁面。首先,如果我想要讓版面達到平衡狀態,就需要把主體的重心安排在頁面的中央位置。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          但是,為了讓頁面中加入更多信息,我們也不得不讓主體向頁面的一端靠攏,從而預留出足夠的空間。

          可這樣就導致了頁面的不平衡,左側的文字重量并不能平衡整個版面。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          其實,解決的辦法也很簡單,我們可以試著將主體略微移向頁面的中心部分。這樣一來,就實現了一種動態的平衡狀態。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          這背后的知識其實很簡單,就是最基本的杠桿原理。如果天平兩端并不平衡,那就讓更重那個的靠近中心,更輕的遠離中心。這樣也就恢復到平衡狀態了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          這同樣是一個網頁中會出現的廣告頁面。我們看,它都出現了哪些問題。版面中所有的元素都集中到了頂部,這就導致了頁面底部重量過輕,頂部重量過重的極端對比。也就是我們俗稱的頭重腳輕。那么經過調整之后問題依然存在。過多的空白,會讓人們感覺這個版面作品沒有完成。所有的重量都集中到了版面的左側,這依然是一個極端的構圖。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          正確的做法應該是怎樣的呢?我們可以將重量最大的元素安排在中心位置。并且讓其他元素以對稱的樣式排布。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          當然,你也可以將信息放大,和原本的圖像進行一個疊壓組合,形成一個更重更大的整體。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          又或者,采用頂部圖像,底部文字的做法,讓頁面中的重量分配均等。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          反過來也是一樣的,頂部安排文字,底部安排圖像。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          再或者,我們可以將信息安排在頁面的左側,形成左字右圖的配置。這樣的構成,有助于人們第一眼發現你想傳達的信息。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          而反過來呢?圖像就成為了更重要的那個。人們會先看到圖,然后緊接著去閱讀相應的文字信息。

          到這里,我們分別從細節的刻畫,再到元素的重心對齊;又從視覺重心的動態調整,一直講解到了宏觀頁面的構建思路。我們可以看到,視覺重力原則幾乎滲透了整個設計流程。很多時候我們其實并不缺乏理論知識的武裝,可一到自己實際動手,就馬上繳槍投降了。矛盾點還是出在對理論知識點靈活運用上,接下來我就帶著大家再做幾個案例。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          打算做一套大米的包裝設計。產品的名字就叫高山巖米。它長什么樣子呢,就像我們現在看到的這樣,類似葡萄干一樣,和我們平時見到的大米顏色是有一些區別的,據說營養價值很高,也被譽為米中黃金。

          我想利用圖形的切割來表現這個巖米的部分。同時,在輔助一個篆書結構的山字,以這樣的圖形來體現這個主題內容。并且,我也希望這個大米的部分是鏤空的,能夠透過它看到真實的米。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          主視覺的刻畫差不多后,接下來我把它放到包裝上,并且將其他信息也一并加入到版面里。不過這樣一來,信息和主視覺相互疊壓,對于內容來說可能會有些相互干擾了。所以我們來試著編排一下。到這里,好像出現了我們前面提到過的問題了,那就是,整個布局顯得頭重腳輕了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          接下來再試著調整一下?,F在我們把底部和頂部的空間都占據了,同時也預留出了三分之一的留白,這該不會有什么問題了吧。相信看到這里的小伙伴應該都能看出問題了,那就是這樣的配置確實有些左重右輕了。留白可以有,但絕對不是這樣做的。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          除了我們之前提到的上圖下字,或者是左圖右字之外。我們當然也可以綜合的應用它們。我們現在這個構成,其實就是一種全包圍的結構。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          又或者,將一部分內容放在底部,而主要去刻畫上方的文本樣式。這就形成了類似半包圍的結構。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          如果說之前的版本是上下樣式的半包圍構成的話。那么接下來的這個構圖,就是融合了重心動態布局的左右樣式半包圍構成了。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          當我們不知道怎樣去安排版式構成時,視覺重力原則就成為了一個很好的參考依據。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          我們再做一版活動海報。畫面中出現的各種電器,都是經過退底處理的。這樣的處理,能夠讓它們毫無違和感的出現在同一個頁面中。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          在頁面的部分,我加入了這個活動的具體內容。展覽的主題叫《模塊世界展》,是著名設計師迪特拉姆斯的個人展覽。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          拿到這樣的內容時,最保險的做法就是讓頂部的圖片成為一個更大的組合。上圖下字,很平穩,也很保守。

          我們可以看到,圖片部分,我盡量將它們還原成了現實中它們本來的比例關系。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          或許,我們也可以再換一種思路,相對的更突破一些。將圖片通過顏色劃分成組。我們能夠看到,其中有全黑的,也有彩色的,更有白色的。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          除了像剛剛的堆積到角落,我們也可以把圖片組合規劃成對角線的樣式,在這樣的形式下,版面構圖依然是平衡的。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          我們當然也能讓圖片組合劃分成一個更大的組合,以及一個更小的組合。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          又或者,打亂圖片的順序,完全依據視覺重心去匹配其中的位置關系。

          掌握好「視覺重力原則」,構圖的奧秘很簡單!(超多案例)

          最終,我決定從展覽的主題中尋找突破口,以“錯位”的手法去呼應“模塊化”這個概念。不僅僅是文字部分的錯位和拆解,圖片部分也通過硬邊的投影,形成了一種嵌套于版面中的視覺印象。

          掌握好「視覺重力原則」,構圖的奧秘很簡單?。ǔ喟咐? loading=

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png



          文章來源:優設   作者:研習社

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務





          立方體輪播圖(3d輪播圖)

          前端達人


          <!DOCTYPE html>

          <html lang="en">

          <head>

            <meta charset="UTF-8">

            <meta name="viewport" content="width=device-width, initial-scale=1.0">

            <meta http-equiv="X-UA-Compatible" content="ie=edge">

            <title>Document</title>

            <style>

              * {

                margin: 0;

                padding: 0;

                list-style: none;

              }

              html {

                height: 100%;

              }

              .container {

                width: 400px;

                margin: 200px auto;

                height: 100px;

                position: relative;

              }

              .box {

                width: 100px;

                height: 100px;

                position: absolute;

                float: left;

              }

              #rigth {

                background-color: rgba(0, 0, 0, 0.3);

                position: absolute;

                right: 0px;

                top: 50%;

                transform: translateY(-50%);

              }

              #left {

                position: absolute;

                left: 0px;

                background-color: rgba(0, 0, 0, 0.3);

                top: 50%;

                transform: translateY(-50%);

              }

              span:hover {

                cursor: pointer;

                color: red;

              }


              ul {

                width: 100px;

                height: 100px;

                transform-style: preserve-3d;

                float: left;

                transition: all 1s;

              }

              .top {

                background-color: red;

                transform: translateY(50px) rotateX(-90deg);

                transform: translateY(50px) rotateX(-90deg);

                background: url('./image/4.jpg') no-repeat;

              }

              .footer {

                transform: translateY(-50px) rotateX(90deg);

                background: url('./image/2.jpg') no-repeat;

              }

              .left {

                transform: translateX(50px) rotateY(90deg)

              }

              .rigth {

                background-color: yellow;

                transform: translateX(-50px) rotateY(-90deg);

              }

              .Front {

                background-color: pink;

                transform: translateZ(50px);

                background: url('./image/1.jpeg') no-repeat;

              }

              .behind {

                background-color: blue;

                transform: translateZ(-50px) rotateX(-180deg);

                background: url('./image/3.jpg') no-repeat;

              }

              /* 前 */

              .container ul:nth-child(2) .Front {

                background-position: -100px 0;

              }

              .container ul:nth-child(3) .Front {

                background-position: -200px 0;

              }

              .container ul:nth-child(4) .Front {

                background-position: -300px 0;

              }

              /* 底部 */

              .container ul:nth-child(2) .footer {

                background-position: -100px 0;

              }

              .container ul:nth-child(3) .footer {

                background-position: -200px 0;

              }

              .container ul:nth-child(4) .footer {

                background-position: -300px 0;

              }

              /* 后面 */

              .container ul:nth-child(2) .behind {

                background-position: -100px 0;

              }

              .container ul:nth-child(3) .behind {

                background-position: -200px 0;

              }

              .container ul:nth-child(4) .behind {

                background-position: -300px 0;

              }

              /* 上面 */

              .container ul:nth-child(2) .top {

                background-position: -100px 0;

              }

              .container ul:nth-child(3) .top {

                background-position: -200px 0;

              }

              .container ul:nth-child(4) .top {

                background-position: -300px 0;

              }

            </style>

          </head>

          <body>

            <div class="container">

              <ul>

                <li class="box top"></li>

                <li class="box footer"></li>

                <li class="box left"></li>

                <li class="box rigth"></li>

                <li class="box Front"></li>

                <li class="box behind"></li>

              </ul>

              <ul>

                <li class="box top"></li>

                <li class="box footer"></li>

                <li class="box left"></li>

                <li class="box rigth"></li>

                <li class="box Front"></li>

                <li class="box behind"></li>

              </ul>

              <ul>

                <li class="box top"></li>

                <li class="box footer"></li>

                <li class="box left"></li>

                <li class="box rigth"></li>

                <li class="box Front"></li>

                <li class="box behind"></li>

              </ul>

              <ul>

                <li class="box top"></li>

                <li class="box footer"></li>

                <li class="box left"></li>

                <li class="box rigth"></li>

                <li class="box Front"></li>

                <li class="box behind"></li>

              </ul>

              <span id="rigth">下張</span>

              <span href="JavaScript:;" id="left">上張</span>

            </div>

          </body>

          <script>

            var rigth = document.getElementById("rigth")

            var left = document.getElementById("left")

            var ul = document.querySelectorAll(".container ul")

            var index = 0

            var flags = false

            rigth.onclick = function () {

              if (flags == false) {

                flags = true

                index++

                for (var i = 0; i < ul.length; i++) {

                  ul[i].style.transform = "rotateX(" + index * 90 + "deg)"

                  ul[i].style.transitionDelay = "" + i * 0.3 + "s"

                }

                setTimeout(function () {

                  flags = false

                }, 2000)

              }

            }

            left.onclick = function () {

              if (flags == false) {

                flags = true

                index--

                for (var i = 0; i < ul.length; i++) {

                  ul[i].style.transform = "rotateX(" + index * 90 + "deg)"

                  ul[i].style.transitionDelay = "" + i * 0.3 + "s"

                }

                setTimeout(function () {

                  flags = false

                }, 2000)

              }

            }

          </script>

          </html>



          作者:yuanzhuang

          鏈接:https://www.jianshu.com/p/10c90c482795

          來源:簡書

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png


          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


          css簡單樣式(旋轉正方形、紙片旋轉、輪播圖3D、簡單輪播圖)

          前端達人

           
          
          1. 旋轉正方形
          2. <!DOCTYPE html>
          3. <html>
          4. <head>
          5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          6. <meta charset="utf-8">
          7. <title>旋轉立方體</title>
          8. <style type="text/css">
          9. .stage{
          10. position: relative;
          11. perspective: 800px;
          12. }
          13. @keyframes rotate-frame{ /* 設置動畫效果 */
          14. 0% {
          15. transform: rotateX(0deg) rotateY(0deg);
          16. }
          17. 50% {
          18. transform: rotateX(360deg) rotateY(0deg);
          19. }
          20. 100% {
          21. transform: rotateX(360deg) rotateY(360deg);
          22. }
          23. }
          24. .container{
          25. width: 450px;
          26. height: 450px;
          27. margin: 0 auto;
          28. transform-style:preserve-3d;
          29. animation: rotate-frame 8s infinite linear;
          30. animation-timing-function: all;
          31. animation-direction: normal;
          32. animation-fill-mode: backwards;
          33. transform-origin: 50% 50% 75px;
          34. /*background: yellow; 容器屏幕背景色*/
          35. }
          36. .container:hover{
          37. /*覆蓋時暫停動畫*/
          38. animation-play-state: paused;
          39. }
          40. .side{
          41. width: 150px;
          42. height: 150px;
          43. position: absolute;
          44. text-align: center;
          45. line-height: 150px;
          46. font-size: 50px;
          47. }
          48. .top{
          49. left: 150px;
          50. top: 0;
          51. transform: rotateX(-90deg); /* 設置角度 */
          52. transform-origin: bottom;
          53. background-color: rgba(0,0,255,0.5);
          54. }
          55. .bottom{
          56. left: 150px;
          57. top: 300px;
          58. transform: rotateX(90deg);
          59. transform-origin: top;
          60. background-color: rgba(0,255,0,0.5);
          61. }
          62. .left{
          63. left: 0;
          64. top: 150px;
          65. transform: rotateY(90deg);
          66. transform-origin: right;
          67. background-color: rgba(255,0,0,0.5);
          68. }
          69. .right{
          70. left: 300px;
          71. top: 150px;
          72. transform: rotateY(-90deg);
          73. transform-origin: left;
          74. background-color: rgba(0,0,100,0.5);
          75. }
          76. .front{
          77. left: 150px;
          78. top: 150px;
          79. transform: translateZ(150px);
          80. background-color: rgba(0,100,0,0.5);
          81. }
          82. .back{
          83. left: 150px;
          84. top: 150px;
          85. background-color: rgba(100,0,0,0.5);
          86. }
          87. .rotateX180{
          88. /*讓倒置的數字倒置回正常狀態*/
          89. transform: rotateX(180deg);
          90. }
          91. </style>
          92. </head>
          93. <body>
          94. <div class="stage">
          95. <div class="container">
          96. <div class="side top" >1</div>
          97. <div class="side bottom">2</div>
          98. <div class="side left">3</div>
          99. <div class="side right">4</div>
          100. <div class="side front">5</div>
          101. <div class="side back">6</div>
          102. </div>
          103. </div>
          104. </body>
          105. </html>
           
          
          1. 紙片旋轉
          2. <!DOCTYPE html>
          3. <html lang="en">
          4. <head>
          5. <meta charset="UTF-8">
          6. <title>Document</title>
          7. <style type="text/css">
          8. .zpbox{
          9. /*設置3D視角*/
          10. perspective: 800px;
          11. perspective-origin: bottom right;
          12. }
          13. .box{
          14. height: 200px;
          15. width: 100px;
          16. margin: 50px auto;
          17. /*preserve-3d 指定子元素定位在三維空間內 */
          18. transform-style: preserve-3d;
          19. /*指定變換為:linear-線性過渡*/
          20. transition-timing-function:linear;
          21. /*指定旋轉動畫*/
          22. animation-name: action_b1;
          23. animation-duration: 4s;
          24. animation-timing-function: all;
          25. animation-direction: normal;
          26. animation-iteration-count: infinite;
          27. animation-fill-mode: backwards;
          28. position: relative;
          29. }
          30. .box:hover{
          31. /*覆蓋時暫停動畫*/
          32. animation-play-state: paused;
          33. }
          34. .b1{
          35. /*聲明第一個卡片為浮動,使得兩個卡片能重疊*/
          36. float: left;
          37. height: 200px;
          38. width: 100px;
          39. background-color: #000;
          40. text-align:center;
          41. line-height: 100px;
          42. color: #fff;
          43. font-size:50px;
          44. }
          45. .b2{
          46. height: 200px;
          47. width: 100px;
          48. background-color: #000;
          49. text-align:center;
          50. line-height: 100px;
          51. color: #fff;
          52. font-size:50px;
          53. /*第二個卡片旋轉90度*/
          54. transform: rotateX(90deg);
          55. /*第二個卡片位于中間位置*/
          56. position: absolute;
          57. margin-left: 0;
          58. margin-top: 0;
          59. }
          60. .rotateX180{
          61. /*讓倒置的2、4數字倒置回正常狀態*/
          62. transform: rotateX(180deg);
          63. }
          64. @keyframes action_b1{
          65. 100%{
          66. transform: rotateX(-360deg);
          67. }
          68. }
          69. </style>
          70. </head>
          71. <body>
          72. <div class="zpbox">
          73. <div class="box">
          74. <div class="b1">
          75. <div>1</div>
          76. <div class="rotateX180">3</div>
          77. </div>
          78. <div class="b2">
          79. <div>2</div>
          80. <div class="rotateX180">4</div>
          81. </div>
          82. </div>
          83. </div>
          84. </body>
          85. </html>
           
          
          1. 輪播圖3D
          2. <!DOCTYPE html>
          3. <html lang="en">
          4. <head>
          5. <meta charset="UTF-8">
          6. <title>Document</title>
          7. <style type="text/css">
          8. html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin:0; padding:0; } /*去掉多余的像素*/
          9. body{
          10. perspective: 800px;
          11. }
          12. .box{
          13. width: 800px;
          14. height: 360px;
          15. margin: 100px auto;
          16. text-align:center;
          17. position: relative;
          18. left: 50%;
          19. margin-left: -400px;
          20. /*background-color: #eee;*/
          21. transform-style: preserve-3d; /*設置為3D模式*/
          22. /*transform: rotateY(-30deg) rotateX(57deg);*/
          23. /*transition:5s ease;*/
          24. animation-name: animate;
          25. animation-duration: 10s;
          26. animation-iteration-count: infinite;
          27. }
          28. .box>div{
          29. width: 800px;
          30. height: 360px;
          31. position: absolute;
          32. }
          33. .box>.up{
          34. background: url(flower.jpg); /*引入照片*/
          35. transform: rotateX(90deg) translateZ(180px); /* 設置角度 */
          36. }
          37. .box>.down{
          38. background: url(flower.jpg);
          39. transform: rotateX(90deg) rotateZ(180deg)translateZ(-180px);
          40. }
          41. .box>.before{
          42. background: url(flower.jpg);
          43. transform: translateZ(180px);
          44. }
          45. .box>.after{
          46. background: url(flower.jpg);
          47. transform: translateZ(-180px) rotateX(180deg);
          48. }
          49. .box:hover{
          50. animation-play-state: paused; /* 當鼠標懸停的時候停止 */
          51. }
          52. @keyframes animate{
          53. 0%{
          54. }
          55. 25%{
          56. transform: rotateX(90deg);
          57. }
          58. 50%{
          59. transform: rotateX(180deg);
          60. }
          61. 75%{
          62. transform: rotateX(270deg);
          63. }
          64. 100%{
          65. transform: rotateX(360deg);
          66. }
          67. </style>
          68. </head>
          69. <body>
          70. <div class="box">
          71. <div class="up"></div>
          72. <div class="down"></div>
          73. <div class="before"></div>
          74. <div class="after"></div>
          75. </div>
          76. </body>
          77. </html>
            
          
          1. 輪播
          2. <!DOCTYPE html>
          3. <html lang="en">
          4. <head>
          5. <meta charset="UTF-8">
          6. <title>輪播</title>
          7. <style>
          8. .frame{
          9. position:absolute;
          10. margin: 50px 200px;
          11. width:280px;
          12. height:200px;
          13. overflow:hidden;
          14. border-radius:6px;
          15. background-color: #000;
          16. }
          17. .imgdiv img{
          18. float:left;
          19. width:280px;
          20. height:200px;
          21. }
          22. .imgdiv {
          23. position: absolute;
          24. width: 1500px;
          25. }
          26. .play{
          27. animation: lbt 10s ;
          28. animation-direction: normal;
          29. animation-iteration-count: infinite;
          30. }
          31. .play:hover{
          32. animation-play-state: paused;
          33. }
          34. @keyframes lbt {
          35. 0%,20% {
          36. margin-left: 0px;
          37. }
          38. 20%,40% {
          39. margin-left: -300px;
          40. }
          41. 40%,60% {
          42. margin-left: -600px;
          43. }
          44. 60%,80% {
          45. margin-left: -900px;
          46. }
          47. 80%,100% {
          48. margin-left: -1200px;
          49. }
          50. }
          51. </style>
          52. </head>
          53. <body>
          54. <div class="frame" >
          55. <div class="imgdiv play">
          56. <img src="lunbo.jpg" > <!-- 引入照片 -->
          57. <img src="lunbo.jpg" >
          58. <img src="lunbo.jpg" >
          59. <img src="lunbo.jpg" >
          60. <img src="lunbo.jpg" >
          61. </div>
          62. </div>
          63. </body>
          64. </html>

          1

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png


          部分借鑒自:csdn  

          原文鏈接:

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          這樣做設計,可太香了~

          seo達人



          今天我將告訴大家一個更加簡單高效的技巧去定義一個色板。在星球里還有很多這樣的文章,無論是現有的500+精華文章,還是每天100+設計干貨,我們堅信相信水滴石穿的力量。請看今天的分享,Enjoy it。

          圖片

          a

          一套界面需要哪些顏色?

          圖片

          說到色板,我們得首先弄清楚一套APP需要哪幾種色彩,我們從airbnb的色板中,以及很多很多產品中大概可以得出一個公式:品牌色 + 提醒類型顏色(成功,錯誤,警告)+ 中性黑白灰顏色(各種字體,背景,分割線顏色等)

          圖片

          在定義了上述大的色彩原理下,我們需要對界面中使用場景進行梳理得出下列大概色彩類型。

          圖片

          a

          如何去做呢?

          重點來了,那我們如何去做呢?首先,我們先創建3個方塊,這些方塊后面會成為基礎顏色!這里我設置的是被3整除的高度和寬度,我創建了一個300X300的正方形:

          圖片

          接著我們填充3個顏色,紅,綠,藍,為什么是紅,藍綠,因為在色彩體系里面,這三種顏色屬于色光三原色(色光三原色為:紅、綠、藍。光線會越加越亮)

          紅,綠,藍怎么定義,大家可以從自己品牌色里面去定一個,然后可以根據HSB的方法去得出同色溫下面的綠和藍!

          圖片

          h值(色相)以15,S和B不變,遞增得到基于品牌色的24個色帶,有人可能會問為什么是24個?因為24X15=360剛好圍繞色環盤一圈。

          圖片

          所以我們得到一圈基于品牌色,明度和飽和度一致性的顏色!

          圖片

          你也可以依據https://coolors.co/去生成一套藍色或者綠色

          第二步

          第二步,將這三個方塊橫向等分,因為每個方塊300X300,所以除以3就是100PX

          圖片

          圖片

          圖片

          將一個矩形與畫板頂部對齊,然后填充微白色,將第二個矩形與畫板底部對齊,填充微黑色,然后將頂部的白色,和黑色透明度調整微20,這樣我們就過得到,三種不同的紅色,綠色,和藍色。

          第三步

          第三步,我們需要定義垂直等分的區間,我們需要畫2個矩形,這2個矩形的寬度剛好是300X300的三分之一也就是100X100,將他們和正方形的右側對齊。

          圖片

          現在到了這篇文章的核心,就是我們需要將這個顏色改為黃色,很多人可能會好奇,為什么是黃色,因為黃色是色彩的三原色之一(可以參考上面我們通過HSB得出黃色)

          圖片

          圖片

          調整黃色的模式改為疊加,將其中一個透明度降低為40%,另外一個降低為80%,然后將他們復制到綠色和藍色的畫布上,借助疊加模式,我們得到了明亮和鮮艷的顏色。

          第四步

          這樣我們就快速的得出了一套色彩體系,然后根據我們的需求選取一部分顏色成為這個色盤體系:

          圖片

          圖片

          然后添加到我們的整個色盤里面去,同理我們可以得出黑白灰色顏色,比如我們的顏色最黑是#333333

          圖片

          頂部20%白色,底部80%黑色得出

          圖片

          圖片

          縱向疊加40%白色,80%白色得出

          圖片

          得出文字3個梯度顏色

          生成最終色板

          圖片

          通過上面的步驟就可以得出整個色板

          注意

          色彩感覺不好的同學,如果沒有品牌色,或者品牌色搭配出來不太和諧,強烈推薦大家使用這個網站進行配色。

          圖片

          他是基于設計師人工智能匹配出來的顏色,都比較和諧,使用起來的,我們隨便試試。

          圖片

          在這個網站上輸入一個紅色,鎖定,然后按空格隨機生成顏色,最終確定,藍色,綠色黃色,制作出色盤。

          圖片

          得出色盤

          關于色彩系統構建的方法就是這樣,不知道大家掌握沒有,希望大家在做設計時候,色彩運用更加科學,一定要自己動手試試!

           

          原文地址:我們的設計日記(公眾號)

          作者:sky


           

          轉載請注明:學UI網》這樣做設計,可太香了~

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

                                                                      微信圖片_20210513163802.png

           

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

           

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          設計心理學系列(03)——雅各布定律與心智模型

          seo達人



          在體驗設計層面,設計師需要匹配用戶心智和引導用戶心智。而產品設計更需要建立品牌心智,提升用戶對品牌的忠誠度。因此在產品和運營活動設計時需要充分考慮對品牌心智的影響,避免帶來負面效果。今天我們繼續設計心理學第3篇——雅各布定律。

          本文主要內容包括:
          • 雅克布定律與心智模型
          • 心智模型對設計的影響

           

          01雅各布定律與心智模型

          雅各布定律指的是如果用戶已將大部分時間花費在某個網站上,那么他們會希望你的網站可以與那些他們已熟悉的網站一樣擁有相似的使用模式。
          這個定律揭示了用戶認知事物的過程和特點——用戶是“懶”的,會通過已有的經驗去認知新的事物。當經驗無法匹配時,用戶會產生各種不適應,極端情況下用戶會放棄使用產品。
          比較典型的就是長期使用Windows的用戶,最開始使用Mac時會表現出各種不習慣。最根本的原因就是用戶在Windows系統中建立的使用心智,無法適用于Mac系統,為此有人在MacBook 中安裝了Windows 系統。
          圖片
          Don Norman 將心智模型定義為:“存在于用戶頭腦中的關于一個產品應該具有的概念和行為的知識,這種知識可能來源于用戶以前使用類似產品的經驗,或者是用戶根據使用該產品要達到的目標而對產品的概念和行為的一種期望。”

          因此我認為雅各布定律其實是用戶心智模型的外在表現。

           

          02心智模型對設計的影響

          設計師如何去應用心智模型呢?主要有以下3個方面。

          圖片

          1、匹配用戶心智

          匹配用戶心智模型來改善體驗是設計師的首要任務。當設計方案與用戶心智模型一致,用戶可以輕松地將已有經驗從一個產品轉移到另一個產品上,無需額外的理解和學習成本。

           

          最常見的就是與真實環境相匹配。例如手機系統中開關樣式、日歷風格,都是與現實生活中相匹配的,用戶的認知成本很低。同樣在電商平臺中,很多彈窗套用類似于微信紅包樣式,希望可以提高活動對用戶吸引力帶來更多點擊和轉化。

          圖片

          之前曾經碰到一個案例。在某一數據監控系統中,數據正增長時采用紅色表示,負增長采用綠色表示,理由是與股市的漲跌配色保持一致,但是系統跟股市并沒有任何關系。該系統中紅色又代表了告警色,綠色代表了健康色,同一系統中采用了兩套設計形式,結果造成了用戶困擾。

           

          因此匹配用戶心智需要綜合考慮用戶場景、應用目的等多種因素。

           

          例如常見的地圖,在不同的場景中表現方式也是有所差異的。在高德地圖中,用戶需要查詢地點、導航出行等等,所以地圖與我們常見的實物地圖更加匹配。而在滴滴打車中,地圖更多是為了確定用戶地理位置、上車地點、周邊車輛數量等等,所以地圖更多的是作為背景進行了簡單化的處理。

          圖片

           

          2、建立新的心智

          我們在設計工作中會遇到各種新的場景、新的功能,無法完全匹配用戶已有的認知,因此需要借助一定的設計手段建立用戶新的心智,主要包括以下3種設計形式。

          圖片

           

          1)產品心智植入

          最開始我對slogan之類的品牌心智是無感的,感覺這種口號太虛了,用戶不會care,或者很難引起用戶共鳴。但是今日頭條改變了我的認知,短視頻逐漸占領了我的碎片時間,通過短視頻讓我看到了別人不一樣的生活,跟著別人的鏡頭也讓我“看見了更大的世界”。

          拼多多月卡為了建立用戶的省錢心智,在頁面中突出了產品slogan,并且將“4張5元無門檻券”打造成標志性權益,降低用戶的決策成本,并且形成權益記憶點,方便營銷傳播。

          圖片

           

          2)心智引導

          當產品設計無法與用戶心智相匹配,或者改變了用戶已有心智時,需要通過引導方式讓用戶快速建立新的心智。例如常見新手引導、功能入口提示、功能調整說明等。

          圖片

           

          3)行為培養心智

          為了培養用戶習慣,簽到類產品都會采用“定時玩法”打造用戶心智。例如淘系的各種游戲化產品,都采用了每天早上7點定時收獲游戲獎勵的玩法,通過日復一日的行為刺激固化用戶心智模型。

          圖片

          對于會期比較長的年卡付費會員,用戶對權益感知比較散碎,同樣需要周期性權益激發用戶與產品之間的互動,不斷的增強用戶的省錢感知。因此不少付費產品增加了月度權益。例如京東每月100元優惠券,淘寶88VIP每月兌換優惠券,1號會員店每月領雞蛋,考拉海購黑卡月度專享購物券權益等。

           

          這些月度權益在用戶生命周期中形成了一個個記憶點,逐漸增強用戶對產品的“省錢”心智,并且可以持續的激活用戶,為續費活動做好銜接。

          圖片

           

          3)利用心智

          設計師既要為用戶服務,又要考慮商業價值實現。所以某些場景下,設計師需要利用已有的心智為產品服務。

          例如彈窗可以更好地吸引用戶注意力,并且用戶對于彈窗主要有兩種操作,要么關閉要么點擊?;谶@樣的心智,某些App開機廣告就采用彈窗樣式吸引用戶點擊。

          圖片

           

          另外廣告作為互聯網平臺重要的收入來源,需要考慮投放效果,因此廣告大都采用軟植入的方式,在形式上盡可能的與實際內容保持一致,從而借助已有的心智引導用戶瀏覽和點擊。

          圖片

          寫在最后
          我個人認為心智模型其實包括交互和品牌兩個層面。

          在體驗設計層面,設計師需要匹配用戶心智和引導用戶心智。而產品設計更需要建立品牌心智,提升用戶對品牌的忠誠度。因此在產品和運營活動設計時需要充分考慮對品牌心智的影響,避免帶來負面效果。

           

          原文地址:子牧UXD(公眾號)

          作者:子牧先生


           

          轉載請注明:學UI網》設計心理學系列(03)——雅各布定律與心智模型



          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

                                                                      微信圖片_20210513163802.png

           

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

           

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          設計實驗室:車載交互(HMI)的一些設計探索

          ui設計分享達人

          關于車載交互(HMI)的一些探索,用一些試驗和案例來進行探索與驗證。

          這次我們不聊視覺,也不暢想未來,只說說當下HMI產品設計與交互體驗。

          本文內容會涉及一些專業的汽車知識名詞,因為篇幅有限,如有些知識名詞不太明白可以百度一下。



          別看錯了,不是HDMI!


          說到HMI大多數設計師應該是既熟悉又陌生,HMI是Human Machine Interface 的縮寫,“人機接口”,也叫人機界面,人機界面(又稱用戶界面或使用者界面)是系統和用戶之間進行交互和信息交換的媒介, 它實現信息的內部形式與人類可以接受形式之間的轉換,凡參與人機信息交流的領域都存在著人機界面。


          聽起來是不是覺得這不就是UI嗎?有什么區別嗎?emm......的確...似乎...差不多...幾乎是沒有區別的,只不過是在某些場合和設備上管他叫UI,比如移動端設備,而在另外某些場所和設備上管他就叫HMI,比如汽車車機和數控機床。所以這個概念也不用去特別較真,HMI就權當做是汽車上的UI界面吧。畢竟汽車是高科技與工業結合的完美產物,“HMI”念出這個詞時候就感覺是蠻專業的!很般配!


          HMI前世與今生?

          剛才說HMI最早更應用于工業上,比如常見的各種機床、制造裝備。

          或者說讓時間在向前推進一點!

          而這里通常意義的HMI則更加聚焦點,基本特指汽車車機或者車載多媒體設備。

          說到這里還是要從車載儀表盤說起,從德國人卡爾·本茨發明世界第一輛汽車,距今已經100多年的時間了,在那些還沒有HMI這個名詞的年代,那么他是以什么形態出現的?那就不得不提“儀表盤”了。




          當然寫這篇文章并不是去評測誰家HMI更優秀,而是希望通過一些假設、實驗和推斷,和大家一起來探討一下如何更有效的設計HMI。



          屏幕越大越好?車內到底需要幾塊屏幕?

          我們先從屏幕開始。

          說到屏幕,設計師都是比較敏感的,因為我們最終的設計交互創意都是需要都是在屏幕上顯示展示出來的,HMI當然也不例外?,F在在車載屏幕上你能看到最大尺寸多大?

          拿特斯拉為例,Model S和Model X車型都是17英寸,Model 3為15英尺。

          當然他肯定不是最大的,熟悉汽車朋友你應該知道我想說誰了,沒錯就是他!擁有48寸可多段升降屏幕的BYTON新能源概念車M-Byte!48寸的確很夸張,難道屏幕越來越大就是未來HMI的方向嗎?

          當然這個問題肯定是否定的,為什么?那就要從車載屏幕的作用來說起。


          首先我是作為一個曾經就職于汽車公司的設計師,并且是一名地道的汽車發燒友,憑借對汽車還算熟悉和熱愛做出一些產品交互分析,以下如有不妥之處還望海涵。


          汽車內屏幕的作用

          按照功能場景總體可為三類:主行駛狀態信息、附設備狀態信息、多媒體&外設


          不可缺少還需要與使用者與場景結合,我們先來做一個大概的用戶畫像


          對應這些需求,汽車需要有儀表臺(屏)控制和顯示的區域有五個。


          五個區域分別是:

          1、主駕駛儀表屏   

          2、中控臺控制(屏)  

          3、后排娛樂屏   

          4、副駕駛信息屏  

          5、扶手控制臺(屏)


          其中前三個是主流配置,后兩個比較少見。

          關于汽車設備這塊我們不做深入展開了,畢竟這篇文章主要討論的還是設計,直接看結果!


          題外音:屏幕安全性的考量

          汽車是比較特殊的設備,基于安全性考慮,汽車內屏幕尺寸不易太大與太多。

          屏幕總體為玻璃材質,但與車窗風擋玻璃的材質不同,當汽車遭遇碰撞的時候,車內屏幕極易破損并形成尖銳物,極大可能會乘坐人員造成二次傷害,所以車內屏幕不易太多,更不易太大。雖然車載屏幕變大變多已不可逆轉,而且隨著屏幕技術的提升,柔性OLED的應用也將會在一定范圍解決安全問題。但也需要汽車相關設計者多在安全方面進行考慮,任何產品體驗應該建立在安全基礎之上的,特別是交通工具。


          物理實體按鈕過時了?

          為什么大屏幕操控成為了當前的HMI主流了呢?那不不得不去提一下另外一個我們熟悉的設備--手機!


          同樣一個有限的區域,如果用物理按鍵那么這么區域只能是固定的功能,而屏幕就可以無限擴展。特別是在汽車中控屏上集成內容會很多,體現就更加突出。

          但是在汽車上的全部使用屏幕真的是最佳選擇嗎?顯然這是有待商榷的。

          不可否認屏幕的確有很強的擴展性,但是缺點也是明顯的:1.觸控反饋缺乏    2.交互效率不高


          對于這樣的判斷,我們可以通過兩個實驗來進行驗證。



          將類似于Surface Dial這種智能按鈕交互裝置引入汽車的屏幕控制中,每個按鈕可以根據情景進行自定義,并且吸附到汽車屏幕的任何位置進行交互操作,相信這一定是一種全新的使用體驗。當然這一定是需要解決比如吸附力、安全性等一系列問題。


          屏幕觸控反饋

          雖然目前的屏幕還有無法做到完美觸控反饋,但已經出現了一些新的硬件技術來試圖解決這些問題,比如Tanvas Touch,其定義為 “手指與觸摸界面之間的電子壓力控制”。簡單來說他們的產品就 “皮膚的磁鐵” 一樣,能夠更加精準的感應手指的動作,最后結果就是比 Apple 的 3D Touch 更加具有壓感的觸摸操作表現。



          原理是利用手指尖觸摸顯示屏時產生的靜電引力來模擬觸感,通過電磁脈沖把更精確的反饋發送到用戶的指尖。



          Tanvas 也正在與汽車制造商們合作把這項技術嵌入到汽車或屏幕上,讓人們更容易感觸受到不同物體的表面。

          也許在未來我們真的會遇到他。


          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png



          文章來源:站酷   作者:殘酷de樂章

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          3D與UI結合的設計探索

          ui設計分享達人

          在2020 年的蘋果全球開發者大會(WWDC),蘋果發布了新的 macOS 11(又名 Big Sur)。其中在UI視覺方面macOS Big Sur 系統最大的變化就是圖標上, Big Sur更新了很多新設計風格的應用圖標。

          關于 Big Sur 的新圖標的討論很多,很多都在激烈爭論。人們對蘋果公司沒有將完全扁平設計引入 Mac 感到松了一口氣,但分歧并未停止。有些人認為這引領一種新的圖標表現方式,而有些人則認為這是丑到了天際。



          但蘋果的設計就是這樣,不管你你喜不喜歡,過一段時間他總會流行起來。就像iPhone11剛面世時,背面的攝像頭組被無數人吐槽一樣,而現在這個設計已經成了高端機的標板。


          大家還能想起來UI扁平化設計已經流行了多少年了嗎?

          從2013年6月11日蘋果發布iOS7算起,現在已經將近8年了,這8年時間扁平化像颶風一般席卷了整個UI設計圈,一夜間幾乎所有的APP UI都被拍扁了。




          其中以Instagram的換標作為扁平盛行時代的里程碑



          但扁平化設計的確已經一統江湖太久了,人們似乎已經有點厭倦了。其實設計風格就是這樣,并沒有絕對的好與不好,只要審美不疲勞,就可以繼續流行下去,至于流行多久我們經常會用一個詞去形容---耐看度。

          扁平化帶給我們的是畫面的輕盈和設計的高效率,但是缺點也是明顯的,場景表現過于單一的問題,設計感體現較為有限,于是很多設計師都在嘗試用新的設計風格替代或者進化現在的扁平化設計風格,今天我們就來探討一下新擬物背景下3D與平面的結合設計,能在UI中擦出什么樣的火花。


          2014年我的作品-Cache 

          https://www.zcool.com.cn/work/ZMjY1OTEwMA==.html


          現在這樣的風格會被我們稱之為重度擬物風格,他不好看了?技術落后了嗎?當然不是!只是目前不流行了!

          他的特點是強調光影對比與物理質感,色彩都會比較偏“暗”,而且伴隨設計的往往是難和慢!刻畫一個細節需要很久,在強調設計效率組件化的今天,這種費時又難學的設計方法必然不會成為主流。


          當前的UI流行趨勢是強調高飽和的色彩搭配(在沒有光影細節之下也只有色彩可以玩了),這種風格明顯也不符合趨勢,被“淘汰”也就難免了。


          從設計角度上解析,圖標主要是由四方面構成:構圖+光影+色彩+紋理

          而擬物風格圖標在這四方面更加強調構圖、光影和紋理,而色彩則是更多去搭配紋理質感,所以你看到多數擬物風格圖標在質感上很棒,但是色彩卻沒有那么豐富。




          說到新的擬物風格,這只是一個概念,也有稱之為輕擬物,輕偏平,這里并沒有通用的稱呼和預設的設計方法,一切的UI設計風格都是為產品本身服務,如果新的設計風格能讓產品整體體驗得到“提升”,哪怕這種提升只是成功獲取到了用戶的注意力,那這個設計就是有價值的。



          所以當下如果你的產品中想要吸引目光就要有點與眾不同的東西,要么是獨門的功能,要么就是吸晴的設計。
          顯然扁平的彩色圖標現在已經達不到這個效果了,而以前的擬物又顯得有點過時,在這種時代背景下,新的風格必然就會被碰撞出來。


          于是乎我們就會看到以下的一些大廠“創新”,你不止能看到輕擬物設計,還能看到“實物”設計......

          不得不說,各位設計師們還真是拼了...


          “哪怕這種提升只是成功獲取到了用戶的注意力,那這個設計就是有價值的。”沒毛??!各位加油!


          當然蘋果BigSur帶給我們的圖標設計創新更加有趨勢意義,這種3D+平面的設計組合方法更加能給我們一些設計啟迪和思考,并且這種3D圖標與之前的擬物風格有著明顯的視覺區別

          我用3D重構了一個計算器icon,以此為例來進行分解,如下:

          與2D設計方法設計圖標一致,都是先勾畫圖形(建模),然后填色、加材質和燈光,但不同的是在3D環境下,這一切都比2D環境下簡單了,而且視覺效果更佳,整體畫面感更佳立體,質感更加飽滿,并且根據渲染器的參數調節和材質質感的不同,即使是在同一模型下,也能制造出很多種不同的視覺體驗。



          圖標背板的選擇上,由于選擇了3D作為主體表現,3D背板過于搶視線,圖標為了突出主體而非背景,建議使用2D平面背板與3D前景圖標進行結合。

          3D設計圖標的確有一些天然的優勢,特別是在質感和光感的表達準確度上,是絕對超過2D的。
          但是2D圖標在一些風格的設計也是很難替代的,比如線性圖標和漸變風格圖標。




          3D設計的確可以提升UI整體的視覺氛圍,并且現在在一些APP中已經可以看到小范圍3D案例了(比如支付寶),但是多是以插畫的形式出現,其實與產品UI還是有一定距離的。

          未來3D設計一定會是UI中大展身手,但是目前的常見的3D設計軟件實在是太龐大了,我與許多3D行業的同行聊天的時候,大家普遍的認知是現在的3D軟件(包括C4D)的實際最佳場景依然是動畫設計,UI的中的3D屬于非常輕量級的,用現在主流的3D設計軟件做UI應用案例,有點用巡航導彈打蚊子的感覺,而且這個蚊子還是距離一米以內。這有點像當年的PS來做UI,雖然可以完成但是效率不高,學習曲線也高,于是Sketch和Figma這樣的產品順理成章的取代了PS在UI界的地位。


          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png



          文章來源:站酷   作者:殘酷de樂章

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          D3.js中Force-Directed Graph詳解

          前端達人

          Force-Directed Graph

          聊一聊力導向圖。力導向圖在echarts等快捷的可視化工具中都有非常方便的實現方式。來看看d3.js是如何實現的。
          先來一張d3.js官網實現的力導向圖的照片:

          接下來解釋一下d3.js中實現此力導向圖的過程。

          index.html——源碼

          <!DOCTYPE html> <meta charset="utf-8"> <style> .links line { stroke: #999; stroke-opacity: 0.6; } .nodes circle { stroke: #fff; stroke-width: 1.5px; } </style> <svg width="960" height="600"></svg> <script src="https://d3js.org/d3.v4.min.js"></script> <script> // 定義一個svg畫布 var svg = d3.select("svg"), // 獲取svg畫布的寬度 width = +svg.attr("width"), // 獲取svg畫布的高度 height = +svg.attr("height"); // 定義一個顏色函數 // d3.scaleOrdinal()函數用來定義一個序列,其中的參數d3.schemeCategory20代表序 // 列函數的值域,這里d3.schemeCategory20指的是由RGB十六進制字符串表示的二十種分類 // 顏色的數組。因此,color()函數的值域就是離散的20中顏色值 var color = d3.scaleOrdinal(d3.schemeCategory20); // 創建一個力學模擬器 // d3.forceSimulation()函數用來創建一個空的模擬器 var simulation = d3.forceSimulation() // simulation.force(name,[force])函數的作用是:如果指定了力force,則為指 // 定的名稱name分配力并返回該模擬。 如果未指定力,則返回具有指定名稱的力,如果 // 沒這樣的力,則返回undefined。 (默認情況下,新的模擬沒有力量。) // d3.forceLink()函數用來創建一個空的link力數組 // d3.forceLink().id()用來指定link力數組中每個節點的id的獲取方式 .force("link", d3.forceLink().id(function(d) { return d.id; })) // 創建一個charge數組,forceManyBody()返回一個新的多體力數組 .force("charge", d3.forceManyBody()) // d3.forceCenter()用指定的x坐標和y坐標創建一個新的居中力。 // 如果未指定x和y,則默認為?0,0?。 .force("center", d3.forceCenter(width / 2, height / 2)); // 讀取數據,該例子中的數據是雨果的《悲慘世界》中的人物關系信息。 // 通過力學模擬,人物關系相近的節點會比較接近;反之,節點會比較疏遠 d3.json("miserables.json", function(error, graph) { if (error) throw error; // 定義人物節點之間連線的信息 var link = svg.append("g")
                .attr("class", "links") // 用line元素來繪制  .selectAll("line") // 綁定json文件中的links數據 .data(graph.links)
              .enter().append("line") // 人物節點之間連接線的粗細通過連接線的value字段來計算,value越大,連接線  // 越粗 .attr("stroke-width", function(d) { return Math.sqrt(d.value); }); // 定義人物節點信息 var node = svg.append("g")
                .attr("class", "nodes") // 人物節點通過圓來繪制  .selectAll("circle") // 為人物節點綁定nodes數據 .data(graph.nodes)
              .enter().append("circle") // 設置節點半徑 .attr("r", 5) // 設置節點的填充色,通過節點的group屬性來計算節點的填充顏色 .attr("fill", function(d) { return color(d.group); }) // 以定義的這些人物節點為參數,調用drag()函數 // 綁定拖拽函數的三個鉤子,即拖拽開始、拖拽中、拖拽結束 .call(d3.drag()
                    .on("start", dragstarted)
                    .on("drag", dragged)
                    .on("end", dragended)); //為人物節點綁定文字 node.append("title")
                .text(function(d) { return d.id; }); // 為力模擬器綁定節點數據 // 會為每個節點自動添加可視化時所需的index,vx,xy,x,y五個字段信息 // 并且為simulation內部計時器tick監聽綁定動作,來繪制圖形 simulation
                .nodes(graph.nodes)
                .on("tick", ticked);// 此處在每次tick時繪制力導向圖 // 為力模擬器綁定連接線數據 // 調用結束后,會為每個連接線添加可視化時所需要的index,vx,vy,x,y五個字段信息 simulation.force("link")
                .links(graph.links); // 定義simulation內部計時器tick每次結束時的動作 function ticked() { // 每次tick計時到時,連接線的響應動作 // 設置連接線兩端的節點的位置 link
                  .attr("x1", function(d) { return d.source.x; })
                  .attr("y1", function(d) { return d.source.y; })
                  .attr("x2", function(d) { return d.target.x; })
                  .attr("y2", function(d) { return d.target.y; }); // 每次tick計時到時,節點的響應動作 // 設置節點的圓心坐標 node
                  .attr("cx", function(d) { return d.x; })
                  .attr("cy", function(d) { return d.y; });
            }
          }); // 定義開始拖拽節點時的動作 function dragstarted(d) { // restart()方法重新啟動模擬器的內部計時器并返回模擬器。  // 與simulation.alphaTarget或simulation.alpha一起使用時,此方法可用于在交互 // 過程中進行“重新加熱”模擬,例如在拖動節點時,在simulation.stop暫停之后恢復模 // 擬。 if (!d3.event.active) simulation.alphaTarget(0.3).restart();
            d.fx = d.x;
            d.fy = d.y;
          } // 定義拖拽中的動作 function dragged(d) { d.fx = d3.event.x;
            d.fy = d3.event.y;
          } // 定義拖拽結束的動作 function dragended(d) { if (!d3.event.active) simulation.alphaTarget(0);
            d.fx = null;
            d.fy = null;
          } </script>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24
          • 25
          • 26
          • 27
          • 28
          • 29
          • 30
          • 31
          • 32
          • 33
          • 34
          • 35
          • 36
          • 37
          • 38
          • 39
          • 40
          • 41
          • 42
          • 43
          • 44
          • 45
          • 46
          • 47
          • 48
          • 49
          • 50
          • 51
          • 52
          • 53
          • 54
          • 55
          • 56
          • 57
          • 58
          • 59
          • 60
          • 61
          • 62
          • 63
          • 64
          • 65
          • 66
          • 67
          • 68
          • 69
          • 70
          • 71
          • 72
          • 73
          • 74
          • 75
          • 76
          • 77
          • 78
          • 79
          • 80
          • 81
          • 82
          • 83
          • 84
          • 85
          • 86
          • 87
          • 88
          • 89
          • 90
          • 91
          • 92
          • 93
          • 94
          • 95
          • 96
          • 97
          • 98
          • 99
          • 100
          • 101
          • 102
          • 103
          • 104
          • 105
          • 106
          • 107
          • 108
          • 109
          • 110
          • 111
          • 112
          • 113
          • 114
          • 115
          • 116
          • 117
          • 118
          • 119
          • 120
          • 121
          • 122
          • 123
          • 124
          • 125
          • 126
          • 127
          • 128
          • 129
          • 130
          • 131
          • 132
          • 133
          • 134
          • 135
          • 136
          • 137
          • 138
          • 139
          • 140
          • 141
          • 142
          • 143
          • 144
          • 145

          至此,力導向圖解析完畢,這篇中有很多關于力學的專業的功能函數,理解起來有點難度。今天周日,起床后第一件事就是把這篇完結了,歐耶~

          這篇文

          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png


          部分借鑒自:csdn  

          原文鏈接:

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          jquery獲取焦點和失去焦點事件代碼

          前端達人

          鼠標在搜索框中點擊的時候里面的文字就消失了,經常會用到搜索框的獲得焦點和失去焦點的事件,接下來介紹一下具體代碼,感興趣的朋友額可以參考下

          input失去焦點和獲得焦點
          鼠標在搜索框中點擊的時候里面的文字就消失了。
          我們在做網站的時候經常會用到搜索框的獲得焦點和失去焦點的事件,因為懶,每次都去寫非常的煩,于是就一勞永逸,遇到類似情況就來調用一下就OK 了
          相關js代碼:

          復制代碼代碼如下:

          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>input失去焦點和獲得焦點jquery焦點事件插件 - 懶人建站</title>
          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
          <script type="text/javascript">
          $(document).ready(function(){
          //focusblur
          jQuery.focusblur = function(focusid) {
          var focusblurid = $(focusid);
          var defval = focusblurid.val();
          focusblurid.focus(function(){
          var thisval = $(this).val();
          if(thisval==defval){
          $(this).val("");
          }
          });
          focusblurid.blur(function(){
          var thisval = $(this).val();
          if(thisval==""){
          $(this).val(defval);
          }
          });
          };
          /*下面是調用方法*/
          $.focusblur("#searchkey");
          });
          </script>
          </head>
          <body>
          <form action="" method="post">
          <input name="" type="text" value="輸入搜索關鍵詞" id="searchkey"/>
          <input name="" type="submit" id="searchbtn" value="搜索"/>
          </form>
          <p>input失去焦點和獲得焦點jquery焦點事件插件,<br/><strong style="color:#F00">鼠標在搜索框中點擊的時候里面的文字就消失了</strong>。</p>
          </body>
          </html>

          jquery獲取和失去焦點事件
          復制代碼代碼如下:


          <script src="jquery-1.9.1.js" type="text/javascript"></script>
          <script type="text/javascript">
          $(function () {
          $('#username').focus(function ()//得到教室時觸發的時間
          {
          $('#username').val('');
          })
          $('#username').blur(function () 失去焦點時觸發的時間
          {
          if ($('#username').val() == 'marry') {
          $('#q').text('用戶名已存在!')
          }
          else { $('#q').text('ok!') }

          })



          藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

          截屏2021-05-13 上午11.41.03.png


          部分借鑒自:腳本之家

          原文鏈接:

          分享此文一切功德,皆悉回向給文章原作者及眾讀者.
          免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合