一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

熊子川:體驗設計師該學習的一點前端技術

 王小筷 2016-01-22

來源:熊子川

我一直篤信不知道HTML和CSS的體驗設計師是連磚頭和鋼筋都沒有摸過的建筑師,因此在以往的十幾個項目里雖然總是進行策略層的設計,但也不忘記鍛煉自己HTML和CSS能力,只有手夠臟才能成為一位好的設計師。

最近的討論里,我們總在糾結于設計師和開發(fā)人員無法相處的話題,其實答案很簡單──當你沒有我的生活體驗,你如何讓我理解你。在開發(fā)人員那個充滿邏輯、過程、抽象、定義的世界里,到底哪個部分是曾涉足,決定了你是不是一個足夠理解開發(fā)人員的設計師。

于是,我嘗試用一個設計師的語言講前端技術──計算機是如何將你的設計轉化成計算機語言的。

設計會轉化成計算機能懂的各種元素

你在用Photoshop制作界面時,會使用層的概念給例如輸入框、按鈕、下拉等元素進行分拆,這些存在于PSD文檔中的元素到了瀏覽器那里,會被前端工程師變成一個個標準的元素,這些元素的組合就形成了DOM結構(Document Object Model),瀏覽器通過讀取DOM結構生成最后的頁面。

HTML負責骨架CSS負責裝飾

這些元素的定義由HTML完成,長什么樣子,由CSS完成,下面這個例子里,沒有經(jīng)過CSS修飾的DOM結構只剩下HTML構成的“骨架”,而加上CSS修飾以后就會變成設計師想要的效果。

熊子川:體驗設計師該學習的一點前端技術

你的設計就是這樣被使用HTML和CSS變成一個瀏覽器可以讀取的頁面的,如果你注意到上面的下拉菜單,作為一個設計師你可能不喜歡這種風格,想變成下面這樣的風格:
熊子川:體驗設計師該學習的一點前端技術

這就會使CSS渲染很麻煩,因為CSS的原料只有那么多種布料和裝飾,你設計的東西超過了CSS能夠提供的效果,就會增加開發(fā)過程。但隨著前端技術的發(fā)展,也不是完全不可能,可是瀏覽器又拖了后腿,各個版本和“品牌”支持的CSS渲染效果都不一樣,他們要花大量的時間讓它們所有的表現(xiàn)保持一致,你倒是很輕松的使用你mac上的PS做效果。你知道為啥你的程序員背后抱怨你了嗎?

JavaScript幫助你可以更加豐富地操作這些元素

這樣你就可以生成一個靜態(tài)的頁面了,在以前,這就足夠了,通過一個靜態(tài)頁面就可以跟后臺進行交互;但現(xiàn)在,前端的交互行為越來越豐富,很多交互都放在前臺進行,而不需要到后臺去。

這就像你買個包子,你問服務員有沒有白菜的,服務員直接告訴你沒有,她不用跑到廚房去問廚師。前臺交互當然不像買包子這樣簡單,有很多細節(jié)的交互行為都是由JavaScript完成──這就是JavaScript的意義──它幫助你更好地操作這些元素,根據(jù)需要改變他們的樣式、位置、內(nèi)容、以及增刪。

下面這個例子是一個常見的回到頁首交互細節(jié),整個交互過程(在線演示在這里)是:

1、在第一頁下拉;

2、慢慢浮現(xiàn)出一個按鈕;

3、點擊按鈕回到頁首;

4、按鈕慢慢消失。

 熊子川:體驗設計師該學習的一點前端技術

這個交互就不是HTML和CSS能夠完成的了,當然也不是Photoshop能完成的,細致的設計師會在文檔里寫清楚這個部分的交互行為,或者使用Axure做一個原型,但是如果掌握一點點前端技術,你完全可以把這個效果寫出來,前端代碼是與程序員溝通最天然的工具,同時在Agile UX的環(huán)境里我們鼓勵設計師和前端開發(fā)人員結對,一起把這個交互效果表達出來。

在以前,學習這些知識確實很難,但是前端技術的發(fā)展使得我們現(xiàn)在可以只掌握一些基礎就能寫出流暢的前端代碼,這就是各種前端框架的興起,比如HTML和CSS的Less、960.gs等,JavaScript里的jQuery、YUI、Prototype,此外,有越來越多整合的框架將HTML、CSS和JavaScript整合在一起,使設計師可以輕松的使用制作高保真原型,例如Twitter推出的Bootstrap以及Zurb的Foundation。

這些框架的存在就是把一些前端交互的現(xiàn)有模式用代碼包裝起來,就跟你在包子店點包子要3號套餐一樣,不需要再跟人說要什么餡喝什么粥,就說“3號”搞定。這些模式包括:彈出對話框(Dialog)、標簽頁(Tabs)、下拉(Dropdown)、表單(Forms)、提醒(Tooltips)、警告(Alert)、翻滾(Scroll)、收放(Collapse)、走馬燈(Carousel)、按鈕(Button)、自動補全(Auto Complete)等等,你只需要寫一點點代碼就可以叫到包子,對不起,完成一個交互場景的設計。

學習一點點jQuery

jQuery是很多框架的JavaScript基礎框架,比如Bootstrap的JavaScript語法和jQuery基本一致,學習一點點jQuery基礎幫助你更好地使用這些。

你需要理解三種基本類型的jQuery元素,對象(objective)、事件(event)、和方法(method),三種元素的關系是:

找到某個對象,當發(fā)生特定事件時,找到對自己或另一個元素做某個方法;

在這兩個場景中,都要找對象、判定某個特定事件、做方法;那么我們來看看如何分別做這三件事:

找到一個對象的格式為$(“objective”),括號里面可以是document也可以是DOM結構中某一個指定的元素。例如當定義$(document)時指未來操作的對象是整個文檔;當定義$(“#division”)時指未來操作的對象是一個ID叫作division的元素;當定義$(this)時指未來操作的對象就是當前操作的對象。

某個特定事件的格式為event(function(){}),這里的xxx可以是點擊(click)、加載完畢(ready)、鼠標懸?。╤over)等等,大括號里將填入的是要對自己或另一個元素做的方法;和之前找到對象結合起來就變成:$(document).ready(function(){……}),意思是當文檔加載完畢后執(zhí)行……。

再看執(zhí)行某個方法,對某個元素執(zhí)行方法的格式為.method(……),根據(jù)方法的不同,括號里的參數(shù)格式不同。比如說要表達添加一個新的class名可以寫成.addClass(“newClassName”);和之前兩個動作結合起來就變成:

1
2
3
4
view plaincopy to clipboardprint?
$(document).ready( 
  function(){$("#").addClass("newClassName")} 
);

意思是當文檔準備好時,找到一個id叫division的元素,給它加一個class名。

還可以使這個過程變得更復雜,例如下面的代碼:

1
2
3
4
5
6
7
view plaincopy to clipboardprint?
$(document).ready( 
  function(){ 
     $("button#hello").click( 
         function(){$("body").append("Hello!")} 
     
)

這個的意思是,當文檔準備好時,找到一個id叫hello的按鈕元素,并當點擊這個元素的時候,在body下添加一個Hello!的字樣。

jQuery中一些有用的方法和事件

在完成高保真原型時,我們大部分情況需要的交互行為往往是:點擊/懸停一個頁面元素,關閉/打開/彈出/改變另一個元素樣式/改變內(nèi)容等等。只需要掌握jQuery中基礎的兩個觸發(fā)事件click()和hover(),以及addClass()、removeClass()、show()、hide()、append()、text()、attr()六個基礎方法,就可以搭配jQuery已有框架完成各種交互特效。

我們來嘗試完成一個點擊某個按鈕出現(xiàn)一個隱藏圖層的代碼:

首先寫HTML,我們需要一個按鈕和一個隱藏的文字域:

1
2
3
view plaincopy to clipboardprint?
<button id="open">Open a textpad</button> 
<textarea id="textpad" style="display:none"></textarea>

這里省略了CSS渲染的過程,我們來寫一段點擊按鈕打開文字域的代碼,先不著急寫代碼,先想想我們要做什么,我們要做下面幾件事情:

1、等待文檔讀取完畢;

2、尋找到這個按鈕;

3、點擊它;

4、找到這個隱藏的文字域;

5、把它顯示出來;

于是我們開始寫程序,第一步等待文檔讀取完畢:

1
2
view plaincopy to clipboardprint?
$(document).ready(function(){})

第二步尋找這個按鈕:

1
2
3
4
5
view plaincopy to clipboardprint?
$(document).ready(function(){ 
    $("#open"
)

第三步點擊它:

1
2
3
4
5
view plaincopy to clipboardprint?
$(document).ready(function(){ 
    $(#open).click(function(){}) 
)

第四步找到目標的那個隱藏文字域:

1
2
3
4
5
6
7
view plaincopy to clipboardprint?
$(document).ready(function(){ 
    $("#open").click(function(){ 
         $("#textpad"
    }) 
)

第五步將它顯示出來:

1
2
3
4
5
6
7
view plaincopy to clipboardprint?
$(document).ready(function(){ 
    $("#open").click(function(){ 
         $("#textpad").show(); 
    }) 
)

jQuery提供了很多特效的控件幫助你在細節(jié)上設計你的交互行為,比如在代碼中加入fadeIn():

1
2
3
4
5
6
7
view plaincopy to clipboardprint?
$(document).ready(function(){ 
    $("#open").click(function(){ 
         $("#textpad").fadeIn("slow"); 
    }) 
)

jQuery以及其他一些框架擁有大量的行為效果插件,可以通過閱讀API來了解各種方法的使用規(guī)則,基本思路跟上面這個簡單的例子是一致的。

你需要做什么

前端技術是交互設計之外一門相當精深的領域,不可能通過一篇簡單的博客就能覆蓋到全部,這篇博客的目的是至少當你有機會和前端開發(fā)人員一起合作的時候,適當一點前端技術知識可以幫助你更好的與前端開發(fā)人員進行溝通。

很多交互細節(jié)不是文字或圖片能夠解釋清楚的,雖然使用Axure可以或多或少解決這個問題,但是Axure的存在有時阻礙了和開發(fā)人員的溝通,因為這不是個兩種角色都能使用的技能,那么既然現(xiàn)在的前端技術已經(jīng)大大發(fā)展,為何不嘗試學習一些前端技術,將自己的想法用代碼的形式表現(xiàn)出來。

這只是拋磚引玉的文章,希望越來越多的交互設計師能夠花一些時間學習一些前端技術,下面提供的鏈接是一些我經(jīng)常使用的框架和工具。

前端框架

jQuery – 流行框架也是博客使用的框架;

熊子川:體驗設計師該學習的一點前端技術

Bootstrap – Twitter出品的框架,包含精美的整套UI解決方面,全面支持Less,各種交互模式插件完整;

熊子川:體驗設計師該學習的一點前端技術

Foundation – Zurb出品的前端框架,各種交互控件完整,UI不如Bootstrap精細;

熊子川:體驗設計師該學習的一點前端技術

1140 Css Grid – 配合Responsive Design的CSS框架,優(yōu)于960.gs;

熊子川:體驗設計師該學習的一點前端技術

實用工具

JSFiddle – 很好用的在線HTML+CSS+JS編輯器,支持jQuery和Bootstrap框架;

Pears – 很好用的基礎交互模式HTML和CSS模板。

 

1 贊 收藏 評論

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    最近日韩在线免费黄片| 亚洲精品av少妇在线观看| 国产午夜精品福利免费不| 中字幕一区二区三区久久蜜桃| 日韩美成人免费在线视频| 欧美亚洲美女资源国产| 免费亚洲黄色在线观看| 亚洲男女性生活免费视频| 精品日韩av一区二区三区| 黄色国产自拍在线观看| 免费黄片视频美女一区| 欧美日韩综合综合久久久| 欧美成人精品国产成人综合| 欧美亚洲91在线视频| 懂色一区二区三区四区| 国产a天堂一区二区专区| 精品欧美国产一二三区| 精品国产日韩一区三区| 免费观看日韩一级黄色大片| 免费黄片视频美女一区| 欧美在线视频一区观看| 久久热九九这里只有精品| 国产精品欧美在线观看| 免费一区二区三区少妇| 国产大屁股喷水在线观看视频| 日本高清一道一二三区四五区| 国产又粗又长又大的视频| 国产成人午夜在线视频| 精品人妻精品一区二区三区 | 少妇人妻无一区二区三区| 欧美一级黄片免费视频| 爱草草在线观看免费视频| 99久久精品久久免费| 国产亚洲欧美日韩精品一区 | 观看日韩精品在线视频| 国产成人免费激情视频| 日韩中文字幕人妻精品| 色综合伊人天天综合网中文| 麻豆视传媒短视频在线看| 草草草草在线观看视频| 在线免费看国产精品黄片|