了控制篇幅,本打算分3篇文章來講述輪播圖實現(xiàn)的,后來想了想,JS代碼量其實很少,完全沒必要,所以這篇文章就是收尾。
昨天,我們完成了結構和布局設計,今天我們來完成JavaScript邏輯部分。我這人比較有代碼潔癖,不喜歡過多的變量污染全局作用域,習慣使用自執(zhí)行的匿名函數(shù)包裹一個功能塊。我們所有的JS代碼都在如下函數(shù)內(nèi)部編寫:
(function () {
// ... ... 我們的代碼都寫到這兒
})();
我們的程序中需要用到多個DOM元素,所以我們先拿到它們的引用存儲到變量中。
/** @type {HTMLDivElement} 輪播圖容器 */
const carouselWrapper = document.querySelector('.carousel-wrapper')
/** @type {HTMLUListElement} banner列表元素 */
const slides = carouselWrapper.querySelector('.slides')
/** @type {HTMLDivElement} 指示器 */
const indicator = carouselWrapper.querySelector('.indicators')
/** @type {NodeListOf<HTMLLIElement>} 指示器節(jié)點列表 */
const indicatorItems = indicator.querySelectorAll('.indicator-item')
/** @type {HTMLUListElement} 導航按鈕列表元素 */
const nav = carouselWrapper.querySelector('.nav')
接下來,我們定義一些常量和變量,建議大家定義常量名使用全大寫字母下劃線分割。
/** 活動類名 */
const ACTIVE_CLS_NAME = 'active'
/** 左導航按鈕類名 */
const CLS_NAME_NAV_LEFT = 'nav-left'
/** 右導航按鈕類名 */
const CLS_NAME_NAV_RIGHT = 'nav-right'
/** 取消過渡的類名 */
const CLS_NAME_NO_TRANSITION = 'no-transition'
/** 定時器間隔 */
const TIMER_DELAY = 3000
/** 定時器id */
let timerId
/** 當前指示器索引 */
let currentIndex = 0
/** 當前banner索引 */
let currentslideItemIndex = 0
/** 過渡結束標識 */
let transitionendFlag = true
要做到左右滾動的無縫切換,我們必須至少拷貝banner列表中的第一和最后一個元素,將其追加到banner列表尾部,并更新banner列表的寬度。為了節(jié)省代碼,我完全拷貝了一份banner列表的子元素。我們用一個函數(shù)來做這件事,代碼如下:
function updateSlides() {
slides.innerHTML += slides.innerHTML
slides.style.width = `${slides.childElementCount * 100}%`
}
當用戶單擊指示器項的時候,我們需要切換當前顯示的banner圖。首先需要確定被單擊指示器項的索引。我們用一個函數(shù)來實現(xiàn),代碼如下:
function getTargetIndex(el) {
for (let i = 0, len = indicatorItems.length; i < len; i++) {
if (indicatorItems[i] === el) {
return i
}
}
return -1
}
索引確定了,我們需要根據(jù)索引來更新X軸的平移值。當然,要實現(xiàn)左右滾動,我們還有其它實現(xiàn)方案,例如:改變可滾動元素的滾動條位置,改變元素的左右定位等。那么,為什么使用3D平移變換呢?原因之一就是,瀏覽器會對3D平移變換開啟GPU硬件加速渲染,以獲得更好的性能,直觀感受就是動畫非常絲滑,毫無拖泥帶水之感。我們用一個函數(shù)來更新X軸平移,代碼如下:
function updateTranslateX(index, targetIndex = -1) {
// 如果過渡沒有結束,直接返回
if (!transitionendFlag) return
// 當前指示器移除活動類
indicatorItems[currentIndex].classList.remove(ACTIVE_CLS_NAME)
// 如果沒有提供目標索引,就把index賦給它
if (targetIndex < 0) {
targetIndex = index
}
// 目標指示器添加活動類
indicatorItems[targetIndex].classList.add(ACTIVE_CLS_NAME)
// 將當前索引設為目標索引
currentIndex = targetIndex
// 將當前banner索引設為index
currentslideItemIndex = index
// 改變banner列表元素的X軸平移變換
slides.style.transform = `translateX(-${index / slides.childElementCount * 100}%)`
}
以下是指示器單擊處理函數(shù)的實現(xiàn)。這個代碼很簡單,首先獲取目標指示器項的索引,如果找到了,就根據(jù)該索引更新banner列表的X軸平移。
/** @param {MouseEvent} e */
function indicatorClickHandler(e) {
const index = getTargetIndex(e.target)
index >= 0 && updateTranslateX(index)
}
接下來,我們實現(xiàn)左右導航按鈕的單擊。首先,我們需要一個向左和向右滾動的函數(shù),代碼如下:
function toNext() {
// 指示器項的數(shù)量
const len = indicatorItems.length
if (currentIndex < len) {
if (currentIndex === len - 1) {
// 繼續(xù)滾動到下一個索引位置,并將目標索引設為0
updateTranslateX(currentIndex + 1, 0)
} else {
updateTranslateX(currentIndex + 1)
}
} else {
updateTranslateX(0)
}
}
function toPrev() {
const len = indicatorItems.length
if (currentIndex < 1) {
// 去掉過渡
slides.classList.add(CLS_NAME_NO_TRANSITION)
// 讓索引為len的banner圖可見
updateTranslateX(len, len - 1)
setTimeout(() => {
// 添加過渡
slides.classList.remove(CLS_NAME_NO_TRANSITION)
// 讓索引為len-1的banner圖可見,此時有過渡
updateTranslateX(len - 1)
}, 0)
} else {
updateTranslateX(currentIndex - 1)
}
}
以下是左右導航按鈕單擊事件處理函數(shù)的實現(xiàn)。我們根據(jù)是否包含指定的類名,來判斷單擊的哪個按鈕,進而執(zhí)行不同的導航函數(shù)。
/** @param {MouseEvent} e */
function navClickHandler(e) {
/** @type {{target: HTMLElement}} */
const { target } = e
if (target.classList.contains(CLS_NAME_NAV_RIGHT)) {
toNext()
} else if (target.classList.contains(CLS_NAME_NAV_LEFT)) {
toPrev()
}
}
我們還需要監(jiān)聽banner列表的過渡開始和結束事件。過渡開始事件處理函數(shù)非常簡單,只是將過渡結束標志設為了false,代碼如下:
function slidesTransitionstartHandler(e) {
transitionendFlag = false
}
下面是過渡結束事件處理函數(shù)定義,其實也很簡單。
function slidesTransitionendHandler(e) {
transitionendFlag = true
if (currentslideItemIndex >= indicatorItems.length) {
// 取消過渡
slides.classList.add(CLS_NAME_NO_TRANSITION)
updateTranslateX(0)
setTimeout(() => {
// 再添加回過渡
slides.classList.remove(CLS_NAME_NO_TRANSITION)
}, 0)
}
}
我們還需要讓輪播圖可以間隔一定時間自動切換。所以,我們需要實現(xiàn)開始和結束定時器的函數(shù)。這兩個函數(shù)非常簡單,代碼如下:
function startTimer() {
timerId = setInterval(toNext, TIMER_DELAY)
}
function stopTimer() {
clearInterval(timerId)
timerId = null
}
現(xiàn)在,是時候讓我們的輪播圖動起來了。我們首先調(diào)用更新banner列表函數(shù),然后開始定時器,最后注冊事件監(jiān)聽器。
updateSlides()
startTimer()
// 指針進入容器的時候停止定時器
carouselWrapper.addEventListener('mouseenter', stopTimer)
// 指針離開容器的時候開始定時器
carouselWrapper.addEventListener('mouseleave', startTimer)
nav.addEventListener('click', navClickHandler)
indicator.addEventListener("click", indicatorClickHandler)
slides.addEventListener('transitionstart', slidesTransitionstartHandler)
slides.addEventListener('transitionend', slidesTransitionendHandler)
最終實現(xiàn)的效果圖如下:
童鞋們都學廢了嗎?是不是很簡單?感謝閱讀!
不多說,直接進入正題。
首先,圖片輪播類的視頻該怎么做?
如何剪輯“圖片輪播”、“卡點視頻”?詳細的制作步驟介紹 江蘇麒麟互娛
步驟一:選擇一張素色背景,或是你心儀的背景,但你要知道這張背景的色調(diào)一定要配合接下來你的幾張輪播圖;
步驟二:準備好你的輪播圖片(至少五張),圖片尺寸一致,記得做好修圖。不懂PS的,那就出絕招,拿手的美圖秀秀、美顏相機修圖;
步驟三;下載并打開你的視頻剪輯工具:剪映;點擊開始創(chuàng)作;
步驟四:選擇那種背景圖添加到項目,回到剪輯頁面,拖拉白色框至適合的視頻播放時間,15秒內(nèi);預留出兩秒的背景展示;
步驟五:在預留兩秒的背景圖上添加文本,選擇樣式、花字、氣泡;
步驟六:看到下面選項“畫中畫”,添加第一張輪播圖,拖動適合的播放秒數(shù):控制在1.5-2秒;依次按照此步驟添加剩下的幾張輪播圖;
步驟七:添加文本在幾張輪播圖上,同樣選擇樣式、花字…
步驟八:你可以嘗試播放此視頻看下效果;添加音頻,選擇熱門、合適的音樂,當然你也可以錄音;注意在你的視頻結尾處,可能還有一部分的音樂延長,你可以進行分割并刪除
如何剪輯“圖片輪播”、“卡點視頻”?詳細的制作步驟介紹 江蘇麒麟互娛
再來看下完整的圖片輪播的視頻,至于特效和貼紙,你可適當添加,簡單就是美。接下來,我們說說卡點視頻,快速便捷的方式制作。
步驟一:可以選擇多張圖片或是一段或幾段視頻做卡點
步驟二:下載并打開美冊,上面有很多抖音視頻的模板下載并提供參考使用
步驟三:選擇你喜歡的模板,根據(jù)要求添加圖片、視頻,同樣注意每段播放時間不超過2秒,當然你可以加上一段小視頻和多張圖配合做卡點,像:武林外傳的“嫂子”+真人圖片
步驟四:可能你選擇的卡點視頻模板會自帶卡點音樂;如果你想更換卡點音樂,可以保存已經(jīng)做好的視頻,重新到剪映中打開。
步驟五:選擇你喜歡的卡點音樂,回到視頻剪輯,看到下面的音頻“踩點”,完成即可
步驟六:和上面圖片輪播一樣的最后一步。
如何剪輯“圖片輪播”、“卡點視頻”?詳細的制作步驟介紹 江蘇麒麟互娛
好了,簡單做兩種類型的熱門視頻剪輯交給你們,嘗試操作,不懂的可以留言交流。
金分割大家應該早就有所耳聞,作為一名設計師,可能一直感覺它離我們很遙遠。那么怎么能利用黃金分割線更加完美的構圖呢?
說實話呢,構圖的時候是否使用黃金分割線構圖并不是絕對的,它只是方法之一。但是黃金分割比例,在全世界乃至全宇宙確實都是至高無上的。
這種東西是很神奇的事情,你了解的越多越會絕的這是一個不可思議的事情,甚至有人稱之為上帝的密碼。那黃金分割線到底是個什么東西呢?它在什么位置?它在畫面中的什么地方?
有一條線條,如果我們從中切一段,如果左邊是0.618這么一個比列,右邊是1這么一個比例。如果符合這樣的左右比例我們稱之為黃金分割比,那么中間切割的位置就是我們黃金分割線的位置。
我們大體概括一下:黃金分割線是指將整體一分為二,較大部分與整體部分的比值,等于較小部分與較大部分的比值,其比值約為0.618,這個比例被公認為是最能引起美感的比例。
總結一句話就是:0.618的比值最美。
有人做了一個實驗,他們拿著一些長方形去問全世界的人,說哪個長方形最好看?
結果所以的人都不約而同的選擇了這種長方形。西方的、東方的、土著的都選擇了如下圖的這種長方形。
科學家們就很奇怪它到底奧秘在哪?
要分析分析它。這個長方形如果從中間畫一條線,把它分割成倆個形狀的話,右邊可以是一個正方形,左邊小的長方形的比例和原來的長方形的比例是一摸一樣的。小的長方形也可以切割出一個正方形和一個等比例的更小的長方形,這種長方形只有黃金風格的長方形才能做到。
畫面長寬比不同,黃金分割線位置也不同,這里我們列舉常用的長寬比尺寸4:3/3:2/16:9/1:1。
在移動端主流尺寸中,iOS尺寸使用750*1334,安卓尺寸使用1080*1920,這倆個尺寸正好等同于一倍圖375*667的比例。
不同長寬比的畫面我們按照0.618:1的比例,一個畫面可以切割出4條黃金分割線,上分割線/下分割線/左分割線/右分割線。我們在實際構圖怎么利用黃金分割線快速排版?
2.1.1 把主體放線上,當然線狀的主體才能放線上
在構圖中我們經(jīng)常遇到正方形/長方形等規(guī)則的形狀,前期我們把規(guī)則的形狀中心放在黃金分割線上,等所以內(nèi)容添加完成后再分析畫面的重量,微調(diào)來平衡畫面。
不是所有的物體都是剛剛好放在黃金分割線上,輪廓化的形狀應該根據(jù)什么來跟黃金分割線重合呢?
應該是形狀的重心,而不是中心。
如上圖:長方形的圖片是有規(guī)律的形狀,我們把它的中心暫時先放在右黃金分割線上,從平衡角度來看還是右邊重,因為我們還沒有把頁面所以元素放進去,到時候可以根據(jù)畫面的平衡感來微調(diào)。
2.1.2 多條黃金風割線構圖
一個畫面中,可以切割成上下左右四個黃金分割線,前期練習時可以盡可能把黃金分割線利用好。
如上圖:我們把圖片放在右黃金分割線上,正文大標題放在上黃金分割線上。這樣就搭上倆條黃金分割線了,再加上logo/分類/導航等信息整個界面就更完整了,如下圖:
初期進行練習的時候,黃金分割線能搭上幾條就搭上幾條。這么多黃金風格線,如果我用1條到2條,到底選擇哪一條?
2.2.1 根據(jù)元素選擇
界面設計時,要根據(jù)元素多少進行選區(qū)更合適的黃金分割線?
如上圖:最終所以元素都確定后,我們把圖片放右黃金分割線上,正文大標題放在上黃金分割線上,正文跟按鈕的中心放在下黃金分割線上,圖片輪播按鈕的中心放在左黃金分割線上。這樣四條黃金分割線搭上都利用起來,在這基礎之上再去微調(diào)相信畫面會更出彩的。
2.2.2 根據(jù)那邊更精彩選擇畫面
把上下或左右倆條黃金分割線對比一下,就能確定參考哪一條黃金分割線了。
如上圖:我們開始把圖片放在下黃金分割線上,上面留了太多空間,圖片的內(nèi)容展示的也很少,畫面感不夠豐富。
如上圖:根據(jù)畫面的豐富程度,我們把圖片放在靠近上黃金分割線的位置,把圖片中主體的放在靠近右黃金分割線附近。然后再添加內(nèi)容豐富畫面,我們?yōu)楫嬅嫣砑觢ogo/數(shù)據(jù)/導航/分類/按鈕,讓畫面更豐滿。如下圖:
2.2.3 視線的影響
人和動物的視線朝向,會影響到它的擺放位置。
如上圖:小狗狗的視覺朝向是左邊,所以我們肯定得把小狗狗放右邊。因為它是一個不規(guī)則造型,當遇到不規(guī)則造型時我們應該嘗試找到它的重心,正好它整個形態(tài)成一條直線,它的重心應該是沿鼻子的往右的一條隱形的線。
主體確認好后,我們在加上logo/標題/正文/導航進行排版,保證畫面平衡進行微調(diào)。如下圖:
我們還有個困難,那就是0.618:1的黃金分割線的位置確實不是很好找。所以對于設計師來說,我們有一種簡化黃金風格線的做法?
就是三分線。
什么意思呢?
左邊是黃金風格線,右邊是三分線。三分線就是均勻的把長方形的長和寬切三段,均勻的砍三段,每個方格都是一樣大小。
三分線的位置跟黃金風格線的位置差不了多少,但是黃金風格線比起三分線更靠近中央的位置,是這么一個概念。
如上圖:綠色的虛線是右黃金分割線的位置,黃色的虛線是右三分線的位置,我們沒有直接把主體的重心直接放在黃金分割線上,在這個畫面中,因為左右的信息量很大給人很重的壓迫感,所以主體如果太靠近左邊就會讓畫面失去平衡,這時候我們就把主體放在了三分線上。
不要說很嚴謹?shù)陌阉匦臄[在三分線上,一來黃金風格線真實所在的位置是三分線往里靠一點的位置,二來我們說黃金風格線構圖/三分線構圖不是說讓你一定要完全重疊,大差不差就行,具體情況還是要具體分析。
黃金風格線還不止這么多的表現(xiàn)形式,它還有一種更復雜的表現(xiàn)形式叫黃金螺旋線,而從黃金螺旋線里呢,可以推倒出一個黃金興趣點。
于是我們就把黃金螺旋線和最佳興趣點,都統(tǒng)稱為黃金分割的衍生品,在設計中應該是算比較高級的一種構圖技法了。
來看看黃金螺旋線衍生的最佳興趣點在什么位置?
如下圖:
在設計中實際應用的時候,想找出這個點來絕對不是很容易的事情,所以怎么辦呢?有簡單找到最佳興趣點的方法嗎?
長方形的一條斜線鏈接起來,另一個頂點畫一條垂直于這條斜線的點基本就是最佳興趣點的位置,如下圖:
畫面中不止一個最佳興趣點,一個畫面中會有四個興趣點,會更好的方便我們利用,如下圖:
畫面長寬比不同,最佳興趣點的位置也不同,這里我們列舉常用的長寬比尺寸4:3/3:2/16:9/1:1,如下圖:
案例分析
如上圖:圖片案例來自攝影師7kidz的攝影作品,圖片質(zhì)量很高,整體風格很符合現(xiàn)在主流的抖音風,那就順便做個直播類的ui界面設計來詮釋最佳興趣點的魅力。
案例一,同樣大小的圖片我們按照倆種方式進行擺放,左邊的圖片我們參考黃金分割線,把人物的眼睛靠近上黃金分割線的位置;右邊的圖片我們把人物的右眼放在了右上的最佳興趣點的位置。然后我們?nèi)サ糨o助線再對比下。
如下圖:
雖然我們參考了倆種方式進行排版,圖片本身就很精美,很多人就感覺隨便放放就好了,左邊的黃金分割線構圖單看也是很棒的,所謂沒有對比就沒有傷害,當黃金分割線遇上最佳興趣點,哪個好效果是顯而易見的。
從畫面的飽和度跟視覺引導,顯然右邊的整體感覺更飽滿一些,加上直播平臺元素整個界面。
如下圖:
案例二畫面中人物前方的效果很出彩,想辦法盡可能保留,所以把人物右眼放在右上最佳興趣點的位置,正好左前方燈管不規(guī)則的物體的重心,也恰巧在左上最佳興趣點的位置,這樣就有運用了倆個最佳興趣點,畫面更加豐富起來,加上直播平臺元素整個界面。
如下圖:
案例三畫面中人物的睫毛放在右上最佳興趣點的位置,剛看到畫面的時候我們第一眼會被美美的胸部所吸引,但是我們眼神會順勢往右上看到美女的睫毛。是的因為我們把它放在了最佳興趣點的位置,不會因為它占的面積很小而被忽略。
這個案例其實最具代表性,加上直播平臺元素整個界面,如下圖:
最佳興趣點是不是和黃金分割線是重疊的?
最佳興趣點和黃金分割線交點不重合的,黃金分割線的交叉點比最佳興趣點更靠近畫面中心。
那是不是就是三分線的橫豎線相交處啊?
最佳興趣點和三分線交點也不重合?
最佳興趣點比三分線還要更外一點。
最佳興趣點可以和黃金分割線或三分線一起使用嗎?
答案是肯定的,一起使用會增加我們布局的多樣性,內(nèi)容可以排的更加豐富。
如上圖:畫面中最突出的是人物的頭發(fā),我們把頭發(fā)的形成的點放在了左上最佳興趣點的位置,微調(diào)人物,在畫面中的人物重心差不多在三分線所在的這條直線上。
標題和正好的做為一個整體的中心,放在下黃金分割線的位置上,再加上音樂封面/歌曲名/播放按鈕再微調(diào)畫面使畫面達到視覺平衡。
如上圖:音樂專輯封面為正方面,最佳興趣點就是正方形的中心點,封面人物重心放在正方形的中心,封面放在靠近上黃金分割線的位置。大標題差不多在左上最佳興趣點的位置,整個畫面重心在左黃金分割線的位置。
為了達到視覺平衡,右上角加了一個頭像形成大小對比,讓畫面更穩(wěn)定,不至于左邊太重而失去平衡。加上播放按鈕/推薦的封面后再調(diào)整,如下圖:
斐波那契螺旋線也稱“黃金螺旋”,是根據(jù)斐波那契數(shù)列畫出來的螺旋曲線,自然界中存在許多斐波那契螺旋線的圖案,是自然界最完美的經(jīng)典黃金比例。
斐波那契螺旋線,以斐波那契數(shù)為邊的正方形拼成的長方形,然后在正方形里面畫一個90度的扇形,連起來的弧線就是斐波那契螺旋線。
斐波那契數(shù)列(FibonacciSequence)數(shù)列是這樣一個數(shù)列:
1、1、2、3、5、8、13、21、34、55、89…
在數(shù)學上,斐波那契數(shù)列是以遞歸的方法來定義:
F0=1
F1=1
Fn=F(n-1)+F(n-2)
(n>=2,n∈N*)
斐波那契數(shù)列比在字號大小、界面布局、Logo設計上具體有哪些用法?
4.1.1 大字體與小字體比例系統(tǒng)
我們在選擇一個字號大小做為參考時,我們正常會選擇最大字號或最小字號做為參考。按照黃金比1:1.618可以得到比它大的字體,按照黃金比1:0.618可以得到比它小的字體。
為了方便排版,我們除了可以使用黃金分割比例外,還可以使用斐波那契數(shù)列比。可以有更多靈活的排版方式,通過對比可以選擇最適合的。
斐波那契數(shù)列比:1:1/1:2/1:3/2:3/1:5/2:5/3:5 …
如上圖,我們可以根據(jù)字體的高度比來排版,這里我們大字高度:間距:小字高度比為8:5:5,可以靈活使用斐波那契數(shù)列比,多排幾個版式找到最適合的一個。
4.1.2 文字的長度比例
在設計字體大小的時候,可以根據(jù)字體的長度來做為參考,黃金螺旋線整體長度為140px。下面的字體比較長,我們就乘以1.618來得到比較大的比例226.52,取整數(shù)為226,我們對應長度字號取整數(shù)即可。
上圖案例由UISTAR提供,整個界面的布局很舒服,字間距也恰到好處。在做后臺界面,客戶端界面時候很多時候會出現(xiàn)界面分段布局,很多時候認為后臺不是特別重要而忽略了它的美觀性。
看下圖,我們應該怎么通過斐波那契數(shù)列比來切割畫面?
我們通過斐波那契數(shù)列比8:5:3:2:1繪制了正方形,在后臺復雜的界面中,我們肯定要參考畫面中重要的最小寬度來確定這個比例大小。紅框框就是我們確定的最小寬度,確定寬度后8:5:3:2:1得到大小不一的方格,剩下來就是根據(jù)內(nèi)容自由組合合適的方格。
很神奇的事情發(fā)生了,好的作品大體都符合這個規(guī)律,幾像素的偏差已經(jīng)不重要的,所以前期我們可以參考方法論,當你的能力上來之后,就可以放棄它,慢慢憑自己的感覺來判斷作品的好壞。
黃金斐波那契螺旋法,是國際上通用的LOGO設計手法,也是最工整最嚴謹?shù)脑O計手法。
BIGD牛大大已經(jīng)出了類似教程,具體請查看。《Ai中用黃金比例法快速作圖》
這邊引用BIGD視頻教程是想讓知識更系統(tǒng),也省點精力擼其他的干貨。我寫了一篇《如何學習Yoga Style?》,里面有圓切法的基礎教程。
這里說一下為什么要用黃金螺旋線去重新定義標識呢?
打個比方:很多時候我們會找一張動物圖片用圓切法去繪制它,但是我們繪制時候因為不知道怎么去做減法,會讓這個形態(tài)變的復雜,繪制結果更多像是圖案或者圖形,而不是標識。我們使用黃金螺旋比例去切形態(tài)的時候要抓住動物的主體形態(tài)和特征,盡可能的抽象化簡單化。
黃金螺旋線在logo中的應用
黃金螺旋比例用圓去切割很多人已經(jīng)會了,但是最最最高級的就利用好黃金螺旋線。最近站酷很火的一個設計師DAINOGO,它的作品中就用到了黃金螺旋線,能用一個圓解決的絕對不用倆個圓。我們在設計中,如果有運用到弧線的地方,可以考慮使用黃金螺旋線做為參考。
最后還是要感謝UISTAR、賊哥、小朋友的優(yōu)秀案例,真心感謝。
黃金分割線、三分線、最佳興趣點,每個還可以分上下左右4個構圖方案,這里我們就已經(jīng)有12種排版方式可以考慮了。構圖的時候是否使用黃金分割線、三分線、最佳興趣點并不是絕對的,它只是方法之一。如果你有排版基礎,以這個為參考相信一定排出不錯的版式。
黃金分割上中下就寫完了,最近跟一線大廠設計師交流,他們給我的反饋是做設計的時候不單單只是視覺上的美感,更多的需要方法論的東西,這樣才更具有說服力。
希望以后多寫方法論的文章,大家一起學習。
本文由 @水手哥 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖作者提供
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。