整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          做營銷必知:什么內容最受社交網絡歡迎?朋友圈廣告的大

          做營銷必知:什么內容最受社交網絡歡迎?朋友圈廣告的大數據

          數據時代來臨,品牌都知道它們的消費者在“網”上,但他們到底在哪里?每個公司都知道應該把廣告打在社交網絡里,但如何才能找到這些“人”?人們最愛在新媒體社交平臺上分享什么樣的內容?...今天O2O君整理了一篇用數據來說明這一切的干貨文章供各位小伙伴學習!這些數據包含但不局限微信與朋友圈哦!

          為了了解社交媒體內容投放的準確性和效果,致力于數字內容營銷的公關公司Fractl邀請 BuzzStream對其去年6月至11月在11個垂直行業發布的22萬篇文章進行了分析,并得出結果。這是一份告訴你發布什么類型內容、什么時間發布內容的建議報告,我們做了一個簡單的梳理,也許對你有用:

          首先,人們最愛在新媒體社交平臺上分享什么樣的內容?下面這幾種類型的內容被證明是“只要內容不太差就不會出錯”的:

          生活小技能類型(How-to)

          如何做好吃的米飯?如何寫簡歷?如何打包行李?如何裝修餐廳?這種類型內容的轉發量占到總比的 18.42%。

          清單類型(Lists)

          15本好書。8條歐洲自駕經典路線。10杯拿鐵。5碗鰻魚飯。(貌似最近國內也出來一批專門做這個細分內容的)。這部分內容在六個月的調查中呈現出最好的分享效果,占到22.45%的比例。

          比較類型(What-posts)

          大師的作息(對比你的作息,你覺得你成功的幾率有幾分)。倫敦的書店(對比你在的城市,文化的氣息是不是瞬間弱掉了)。但這種方式的風險看起來比較大,變化會呈現13.45%的差異,而且17.88%的比例排名最低。

          討論類型(Why-posts)

          生還是不生二胎?用不用HTML5?這部分的內容也有很好的社交粘性,占到22.32%比例,僅次于清單類型內容,這兩種內容在分析中得出,在每個垂直行業,平均每月的轉發量都在21000個左右,并且浮動低于2.5% 。

          視頻(Video)

          很簡單,以影片的形式來呈現內容。占到總分享比例的 18.94% ,而且在第四季度明顯提升。

          其次,每個行業領域中的內容傳播各不相同,那么哪種內容適合什么行業呢?同時,研究還抓取了每個行業中20個網站,分析內容發布時間和相關內容的數據,得出內容領域的受關注程度,雖然每個月的結果差距不是很大(差異低于10% )。

          旅游

          清單形式是旅游內容中最占優勢的,尤其當你的讀者想要出發的時候,需要可以去哪些地方的清單,需要行李打包的清單,等等。旅游內容32% 的轉發量是清單類內容。從社交粘性上看,旅游內容的轉發量位列第三。

          教育

          在旅游內容中表現出眾的清單內容,在教育領域里就不那么湊效了,相應的轉發量只占10%。7 月是教育類內容的低谷期,因為學校放假的原因,轉發量只占10.57% 。

          科技

          科技內容分享會在年底呈現井噴,因為大家都在考慮為最新的智能產品買單了。

          汽車

          How-to類型的內容在汽車領域最受歡迎,因為大家都有一些專業性很強的問題需要解決。

          美食

          美食類的內容中,How-to同樣表現優秀,轉發量占總比37%,正如上面的舉例,如何做好米飯,或者做只火雞,越來越多的人開始回歸家庭,尋找做飯的樂趣和儀式感(也是因為許多餐廳的食品安全和衛生沒有保障吧)。但食品內容的社交粘性并不高,少于2500的轉發量每月。

          新聞

          社交粘性最高的是新聞類內容,每個月基本上都保持28000的轉發量以上。這些內容其實是很多行業內容的集合和精華。

          娛樂

          社交粘性位居第二,每月17000以上的轉發量。

          商業

          商業內容和金融、生活方式、技術、教育的社交粘性都在轉發量5000 至9000 ,但商業內容數據呈現出的方差很小,證明這部分讀者的忠誠度非常高。

          朋友圈廣告的那些大數據

          品牌都知道它們的消費者在“網”上,但他們到底在哪里?每個公司都知道應該把廣告打在社交網絡里,但如何才能找到那些“合適的人”?

          作為微信朋友圈首發廣告主之一,對于此次想要抵達的用戶群,他們對于用戶地域、年齡、手機系統、性別和上網環境做了一些設定,“但我們這次其實是第一次嘗試大的分類原則,就像電視廣告一樣,看到寶馬廣告的不一定就是這個廣告的目標受眾。這次主要是希望把品牌最基本的理念進行傳播,而不是具體到想把某款車型推送給某些人。”

          也許這一次寶馬并沒有找到真正的消費者,但這卻讓他們得到了足夠多的曝光率。根據寶馬提供的數據,從25日20:45首發到次日中午12 點整,第一批有4600萬人可以直接看到,用戶點擊Logo、點贊、評論等互動行為有700萬,寶馬官微的粉絲數增加了20萬。

          與寶馬同一時間出現在朋友圈的,還有可口可樂和智能手機vivo。同樣是廣告內嵌到用戶信息流當中,有文字和圖片構成,可附鏈接點擊進入完整Html5界面。很多人壓根都沒有看廣告到底長什么樣,就迅速截屏分享,結果是在很多人都沒有看到真正的廣告時,已經被二手廣告刷屏了。

          有趣的是,一條“鄙視鏈”也迅疾搭建完畢:刷到寶馬廣告的“鄙視”刷到 vivo的,刷到 vivo的“鄙視”刷到可口可樂的,什么都沒刷到的最后連自己都“呵呵”了。

          這條“鄙視鏈”的形成則是因為流傳出的微信篩選原則。據說微信朋友圈廣告是基于大數據分析,年收入100 萬以上,收到的是寶馬廣告;買不起iPhone但買得起小米的收到的是vivo廣告,連小米甚至紅米都買不起的,收到的將會是可口可樂的廣告。

          最后大家知道了,這并不可信,很多還沒有任何收入的大學生都被推送了寶馬的廣告,你也大可不必用iPhone瘋狂自拍以正身價。它還是說明了微信朋友圈的影響力足夠大,讓人們對微信有了一個新的想象空間。

          對于廣告價格也有不少猜測。目前曝光的一份名為《微信廣告系統介紹》的內部PPT顯示,微信朋友圈廣告采取CPM方式售賣,不同區域每千次曝光收取40-140元不等。如果要加入性別定向,就再乘以一個1.1的系數。Html5 外鏈要加價20%。若以2億左右的展示量計算,單次投放費用在800萬以上。如果再算上鏈接、區域定向,網上傳播的1000萬以上的合作費用是比較可信的。

          這未必是真的,但廣告價格可能確實不菲。“如果僅僅從曝光的角度,也就是CPM,來和一般的展示廣告相比的話,那換算出來的價格也就會比一般的展示型廣告要高。但如果跟視頻廣告拿來比,那就又比一般的視頻廣告(價格)來的低。但是從制造話題的角度來看,它還有很多邊際效應。這個話題的制造,并非一般廣告所能比的。

          綜合起來看,包括效益、話題的話,品牌方是會肯定這一次傳播的價值的。”首發的新鮮感是不可復制的,當朋友圈廣告成為常態之后,廣告主需要考慮如何讓用戶不會視而不見。“廣告需要有趣起來,需要有創意起來,品牌不能只把微信當做一種硬廣資源,這樣會引起消費者的反感。”熊超說。

          “如果客戶需要創造一波在涵蓋度上有要求的campaign的話,微信還是一個很有價值的媒介渠道。但是客戶如果看中的是廣告的轉換度的話,它的價值如何就需要跟一般的廣告效果對比,再來做評估了。需要根據客戶的投放目的來選擇。” 陳良怡說。

          可口可樂中國表示,對于朋友圈廣告這一全新的媒介應用,會進一步觀察和評估,現在也看到網絡上就投放的目標用戶方面有很多的調侃和臆測。品牌有可能會變得更謹慎。

          從賺眼球的角度說,性價比最高的可能是vivo的廣告,它夾在寶馬和可口可樂兩大超級品牌之間,廣告傳播效果非常驚人,根據騰訊官方公開的數據,同時間段上線的廣告在次日上午9點整,總曝光量接近1.55 億,用戶點擊“vivo 智能手機”logo、點贊、評論等行為超過720萬次,vivo官微增加粉絲22萬。從百度搜索指數來看,vivo也增長更明顯。

          對于微信來說,消費者是覺得可以接受還是會不勝其擾,要看微信如何在設定他們的廣告規則,這個規則對于廣告主來說也很重要,微信到底是一時的新歡,還是具有長期的價值,都取決于此。它將面對商業利益和用戶體驗的挑戰。

          —END —

          餐飲O2O(微信ID:coffeeo2o):中國餐飲業線上線下互動營銷的圈子,每天分享餐飲案例、營銷干貨!用創新商業模式和互聯網思維改良傳統行業,是餐飲老板與從業人員必關注的公眾平臺。WeMedia聯盟成員。

          加入餐英圈或尋求采訪報道請聯系微信:canyinjun

          TML5 可以直接在你的網頁中使用 <canvas> 元素及其相關的 JavaScript API繪制的圖形。

          在這篇文章中,我將向你介紹 jCanvas,一個基于 jQuery的免費且開源的 HTML5的Canvas API。

          如果你使用 jQuery 進行開發,jCanvas能夠使用 jQuery更簡單,更快速的完成一些非常炫酷的 canvas畫布及交互效果。


          什么是 jCanvas ?

          jCanvas 官網是這樣解釋的:

          “ jCanvas is a JavaScript library, written using jQuery and for jQuery, that wraps around the HTML5 canvas API, adding new features and capabilities, many of which are customizable. Capabilities include layers, events, drag-and-drop, animation, and much more.

          The result is a flexible API wrapped up in a sugary, jQuery-esque syntax that brings power and ease to the HTML5 canvas. ”

          jCanvas 能讓你做的一切事情,你都可以用原生的Canvas API來實現,甚至可以做更多的事情。如果你愿意的話,你也可以將原生的Canvas API方法和 jCanvas一起使用。draw()方法就可以這樣使用。此外,你還可以非常輕松的用自己的方法結合 extend()函數來擴展jCanvas的功能。

          添加jCanvas 到你的項目中

          將jCanavs添加在你的項目中,從官方網站或GitHub的頁面上下載腳本,然后將腳本文件放在你的項目文件夾中。正如前面說的,jCanvas需要依賴 jQuery才能正常工作,所以還要確保引入了 jQuery文件。

          項目的腳本文件將是這個樣子:

          <script src="js/jquery.min.js></script>

          <script src="js/jcanvas.min.js></script>

          <script src="js/script.js></script>

          最后,引入你自己的JavaScript 代碼文件。現在,讓我們開始jCanvas之旅吧。

          設置 HTML文檔

          我們通過為 HTMl5文檔添加一個<canvas>標簽,來開始我們的示例。

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content

          for users of assistive technologies

          or of browsers that don't have

          full support for the Canvas API.</p>

          </canvas>

          以下是關于上面的代碼片段的幾點說明。

          1. 默認情況下,<canvas>的尺寸300px x 150px,你可以在width 和 height 屬性里修改默認的大小。

          2. id屬性不是必須添加的,但是確是 JavaScript訪問該元素的最簡單的方法。

          3. 在<canvas>元素中的內容只是位圖,這使得它無法被使用輔助技術的用戶訪問。另外,對不支持 Canvas API的瀏覽器,將不能夠訪問其內容或者任何方式的交互。因此,該技術旨在讓<canvas>更容易被支持。

          如果你想使用原生的Canvas API,你的 JavaScript 代碼將會這樣的:

          var canvas=document.getElementById('myCanvas'),

          context=canvas.getContext('2d');

          上述代碼中的context變量存儲了Canvas對象的一個2D上下文屬性。正是這種特性,使得你可以訪問 HTML5的 Canvas API提供的所有其他屬性和方法。

          如果你想了解的更多,你可以戳這里HTML5 Canvas 簡介。

          jCanvas的方法和屬性已經包含了2D上下文的引用,因此你可以直接的跳到繪制圖片。

          用jCanvas繪制一些圖形

          大多數的 jCanvas方法,接受鍵值對的形式,因此你可以根據你的需要,或你喜歡的順序去使用它們。

          讓我們從繪制一個矩形開始吧。

          矩形

          下面是你怎樣用 jCanvas對象的 drawRect() 方法繪制出一個矩形的方法。

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          // rectangle shape

          $myCanvas.drawRect({

          fillStyle: 'steelblue',

          strokeStyle: 'blue',

          strokeWidth: 4,

          x: 150, y: 100,

          fromCenter: false,

          width: 200,

          height: 100

          });

          上面的代碼片段表示,存儲 Canvas對象到一個名為$myCanvas的變量中。里面的drawRect()方法的屬性都是比較簡單的,但是我們在這里簡單的闡述一下:

          1. fillStyle 設置矩形的背景色;

          2. strokeStyle 設置它的邊框顏色;

          3. strokeWidth 設置矩形的邊框寬度;

          4. x 和 y設置對應矩形的坐標的水平和垂直的畫布內測的位置。頂點的0值的分別為 x和y,也就是說,(0,0),對應于畫布的左上角。x坐標向右增大,y坐標朝向畫布的底部增加。默認情況下,jCanvas會以矩形的中心點作為x和y坐標的值;

          5. 要想改變這一點,以便x和y對應矩形的左上角,可以將fromCenter屬性的值設置為 false;

          6. 最后,通過寬度和高度屬性設置矩形的尺寸。

          下面是矩形的示例代碼:

          HTML:

          <h2>jCanvas example: Rectangle</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          // rectangle shape

          $myCanvas.drawRect({

          fillStyle: 'steelblue',

          strokeStyle: 'blue',

          strokeWidth: 4,

          x: 190,

          y: 50,

          fromCenter: false,

          width: 200,

          height: 100

          });

          Result:

          jCanvas example: Rectangle

          圓弧和圓

          弧是一個圓的邊緣部分。對于jCanvas來說,畫一個圓弧僅僅是在 drawArc() 方法里設置幾個所需的屬性:

          $myCanvas.drawArc({

          strokeStyle: 'steelblue',

          strokeStyle: 'blue',

          strokeWidth: 4,

          x: 300, y: 100,

          radius: 50,

          // start and end angles in degrees

          start: 0, end: 200

          });

          繪制弧形,需要設置半徑屬性的值,以及開始的角度和結束的角度。如果你希望弧形是逆時針方向的話,需要添加一個ccw屬性,并將其屬性值設置為true。

          下面是上述代碼塊演示:

          HTML:

          <h2>jCanvas example: Arc</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawArc({

          strokeStyle: 'steelblue',

          strokeStyle: 'blue',

          strokeWidth: 4,

          x: 300, y: 100,

          radius: 50,

          // start and end angles in degrees

          start: 0, end: 200

          });

          Result:

          jCanvas example: Arc

          繪制一個圓形:

          舉例來說,下面是如何只使用圓弧形狀來繪制出一個簡單的笑臉圖形:

          $myCanvas.drawArc({

          // draw the face

          fillStyle: 'yellow',

          strokeStyle: '#333',

          strokeWidth: 4,

          x: 300, y: 100,

          radius: 80

          }).drawArc({

          // draw the left eye

          fillStyle: '#333',

          strokeStyle: '#333',

          x: 250, y: 70,

          radius: 5

          }).drawArc({

          // draw the right eye

          fillStyle: '#333',

          strokeStyle: '#333',

          x: 350, y: 70,

          radius: 5

          }).drawArc({

          // draw the nose

          strokeStyle: '#333',

          strokeWidth: 4,

          ccw: true,

          x: 300, y: 100,

          radius: 30,

          start: 0,

          end: 200

          }).drawArc({

          // draw the smile

          strokeStyle: '#333',

          strokeWidth: 4,

          x: 300, y: 135,

          radius: 30,

          start: 90,

          end: 280

          });

          請記住,jCanvas是基于jQuery的,因此,你可以像jQuery的鏈式操作一樣,在jCanvas中也可以使用鏈式操作。

          下面是以上代碼在瀏覽器中的效果:

          HTML:

          <h2>jCanvas example: Smiling Face</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawArc({

          // draw the face

          fillStyle: 'yellow',

          strokeStyle: '#333',

          strokeWidth: 4,

          x: 300, y: 100,

          radius: 80

          }).drawArc({

          // draw the left eye

          fillStyle: '#333',

          strokeStyle: '#333',

          x: 250, y: 70,

          radius: 5

          }).drawArc({

          // draw the right eye

          fillStyle: '#333',

          strokeStyle: '#333',

          x: 350, y: 70,

          radius: 5

          }).drawArc({

          // draw the nose

          strokeStyle: '#333',

          strokeWidth: 4,

          ccw: true,

          x: 300, y: 100,

          radius: 30,

          start: 0,

          end: 200

          }).drawArc({

          // draw the smile

          strokeStyle: '#333',

          strokeWidth: 4,

          x: 300, y: 135,

          radius: 30,

          start: 90,

          end: 280

          });

          Result:

          jCanvas example: Smiling Face

          繪制線條和路徑

          你可以用drawLine()方法快速的繪制直線,或者定義一系列的線條的連接點。

          $myCanvas.drawLine({

          strokeStyle: 'steelblue',

          strokeWidth: 10,

          rounded: true,

          closed: true,

          x1: 100, y1: 28,

          x2: 50, y2: 200,

          x3: 300, y3: 200,

          x4: 200, y4: 109

          });

          上面代碼設置了 rounded和closed屬性的值為true,從而所繪制的線和角都是閉合的。

          HTML:

          <h2>jCanvas example: Connected lines</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawLine({

          strokeStyle: 'steelblue',

          strokeWidth: 10,

          rounded: true,

          closed: true,

          x1: 100,

          y1: 28,

          x2: 50,

          y2: 200,

          x3: 300,

          y3: 200,

          x4: 200,

          y4: 109

          });

          Result:

          jCanvas example: Connected lines

          還可以使用drawPath()方法繪制路徑。

          該drawPath()方法設置 x 和 y值,你還需要制定你要繪制的路徑的類型,例如直線,圓弧等。

          下面教你如何使用 drawPath()方法和drawarrows()方法畫出一對水平和垂直方向的箭頭,后者是一個非常好用的jCanvas方法,能夠使你快速的在畫布上繪制一個箭頭形狀:

          $myCanvas.drawPath({

          strokeStyle: '#000',

          strokeWidth: 4,

          x: 10, y: 10,

          p1: {

          type: 'line',

          x1: 100, y1: 100,

          x2: 200, y2: 100

          },

          p2: {

          type: 'line',

          rounded: true,

          endArrow: true,

          arrowRadius: 25,

          arrowAngle: 90,

          x1: 200, y1: 100,

          x2: 290, y2: 100

          },

          p3: {

          type: 'line',

          rounded: true,

          endArrow: true,

          arrowRadius: 25,

          arrowAngle: 90,

          x1: 100, y1: 100,

          x2: 100, y2: 250

          }

          });

          結果展示:

          HTML:

          <h2>jCanvas example: Connected Arrows</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawPath({

          strokeStyle: '#000',

          strokeWidth: 4,

          x: 10, y: 10,

          p1: {

          type: 'line',

          x1: 100, y1: 100,

          x2: 200, y2: 100

          },

          p2: {

          type: 'line',

          rounded: true,

          endArrow: true,

          arrowRadius: 25,

          arrowAngle: 90,

          x1: 200, y1: 100,

          x2: 290, y2: 100

          },

          p3: {

          type: 'line',

          rounded: true,

          endArrow: true,

          arrowRadius: 25,

          arrowAngle: 90,

          x1: 100, y1: 100,

          x2: 100, y2: 250

          }

          });

          Result:

          jCanvas example: Connected Arrows

          繪制文本

          你可以使用drawText()方法快速的繪制出你需要的文字,這個方法的主要的功能:

          1. text:將此屬性設置為你想要顯示在畫布上的文字內容:例如:‘Hello World’

          2. fontsize:此屬性的值決定了在畫布上的文字的大小。你可以為這個屬性設置為一個數字,jCanvas默認為像素。另外,你也可以使用pt,但是在這種情況下,你需要用引號將屬性值包括起來

          3. fontFamily:允許你指定您的文字圖像的字體:'Verdana, sans-serif'。

          這里的示例代碼:

          $myCanvas.drawText({

          text: 'Canvas is fun',

          fontFamily: 'cursive',

          fontSize: 40,

          x: 290, y: 150,

          fillStyle: 'lightblue',

          strokeStyle: 'blue',

          strokeWidth: 1

          });

          在瀏覽器中將是這樣的效果:

          HTML:

          <h2>jCanvas example: Drawing text</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawText({

          text: 'jCanvas is fun',

          fontFamily: 'cursive',

          fontSize: 40,

          x: 290, y: 150,

          fillStyle: 'lightblue',

          strokeStyle: 'blue',

          strokeWidth: 1

          });

          Result:

          jCanvas example: Drawing text

          繪制圖片

          你可以使用drawImage()方法來導入和處理圖片。下面是一個例子:

          $myCanvas.drawImage({

          source: 'imgs/cat.jpg',

          x: 250, y: 100,

          fromCenter: false,

          shadowColor: '#222',

          shadowBlur: 3,

          rotate: 40

          });

          這是上面代碼的呈現方式:

          HTML:

          <h2>jCanvas example: Importing and manipulating an image</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawImage({

          source: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/123941/cat.jpg',

          x: 250, y: 100,

          fromCenter: false,

          shadowColor: '#222',

          shadowBlur: 3,

          rotate: 40

          });

          Result:

          jCanvas example: Importing and manipulating an image

          你可以隨便的改變上面示例的代碼,戳這里:CodePen demo(http://codepen.io/SitePoint/pen/ZQoWQM )更多跳轉,詳見MaxLeap博客原文

          Canvas層

          如果你曾經使用過,如Photoshop或Gimp圖像編輯器類的應用程序,你可能會對圖層有所了解,使用圖層最爽的地方在于,你可以在畫布上控制每個圖像。

          jCanvas提供了一個功能強大的API,基于你的畫布增加了靈活性。

          這里介紹了如何使用jCanvas的層。

          添加圖層

          你只能在每一個層上繪制一個對象。在你的jCanvas項目中你有兩種添加圖層的方式:

          1. 使用 addLayer()方法,其次是drawLayers()方法

          2. 在任何的繪制方法里設置layer屬性的值為true

          下面是如何運用第一種技術來繪制一個藍色矩形:

          $myCanvas.addLayer({

          type: 'rectangle',

          fillStyle: 'steelblue',

          fromCenter: false,

          name: 'blueRectangle',

          x: 50, y: 50,

          width: 400, height: 200

          }).drawLayers();

          HTML:

          <h2>jCanvas example: Drawing a rectangle with addLayer()</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.addLayer({

          type: 'rectangle',

          fillStyle: 'steelblue',

          fromCenter: false,

          name: 'blueRectangle',

          x: 50, y: 50,

          width: 400, height: 200

          }).drawLayers();

          Result:

          這里是你如何得到同樣矩形的第二種方法:

          $myCanvas.drawRect({

          fillStyle: 'steelblue',

          layer: true,

          name: 'blueRectangle',

          fromCenter: false,

          x: 50, y: 50,

          width: 400, height: 200

          });

          HTML:

          <h2>jCanvas example: Using drawing method with layer set to "true"</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          $myCanvas.drawRect({

          fillStyle: 'steelblue',

          layer: true,

          name: 'blueRectangle',

          fromCenter: false,

          x: 50, y: 50,

          width: 400, height: 200

          });

          Result:

          正如你所看到的,上面的兩種方法,我們得到了相同的結果。

          最重要的一點是在上面兩個代碼樣本中可以發現,上面的層你通過name設置的一個名稱。這使得他易于參照本層的代碼做出各種炫酷的東西,像改變其索引值,動畫,刪除等等。

          讓我們看看如何能夠做到這一點。

          動畫層

          你可以使用jCanvas的 animateLayer()方法,快速的在你的基礎圖層上添加動畫,此方法接受以下參數:

          1. 該層的 index 或者 name

          2. 具有鍵值對的動畫對象

          3. 以毫秒為單位的動畫時長(duration)。這是個默認的參數,如果不設置,默認為400

          4. 動畫的運動方式(easing )。這也是一個可選的參數,如果不設置,則默認為搖擺

          5. 動畫完成之后的回調函數(callback),也是可選的。

          讓我們來看一下animateLayer() 方法的效果,我們將在一個層上繪制一個半透明的橙色圓圈,然后設置動畫的位置,顏色以及透明度屬性:

          // Draw circle

          $myCanvas.drawArc({

          name: 'orangeCircle',

          layer: true,

          x: 50, y: 50,

          radius: 100,

          fillStyle: 'orange',

          opacity: 0.5

          });

          // Animate the circle layer

          $myCanvas.animateLayer('orangeCircle', {

          x: 150, y: 150,

          radius: 50,

          }, 1000, function(layer) { // Callback function

          $(this).animateLayer(layer, {

          fillStyle: 'darkred',

          x: 250, y: 100,

          opacity: 1

          }, 'slow', 'ease-in-out');

          });

          看一下下面例子中的動畫:

          HTML:

          <h2>jCanvas example: Animating Layers</h2>

          <canvas id="myCanvas" width="600" height="300">

          <p>This is fallback content for users of assistive technologies or of browsers that don't have full support for the Canvas API.</p>

          </canvas>

          CSS:

          body {

          text-align: center;

          }

          canvas {

          margin: auto;

          display: block;

          }

          JS:

          // Store the canvas object into a variable

          var $myCanvas=$('#myCanvas');

          // Draw circle

          $myCanvas.drawArc({

          name: 'orangeCircle',

          layer: true,

          x: 50, y: 50,

          radius: 100,

          fillStyle: 'orange',

          opacity: 0.5

          });

          // Animate the circle layer

          $myCanvas.animateLayer('orangeCircle', {

          x: 150, y: 150,

          radius: 50,

          }, 1000, function(layer) { // Callback function

          $(this).animateLayer(layer, {

          fillStyle: 'darkred',

          x: 250, y: 100,

          opacity: 1

          }, 'slow', 'ease-in-out');

          });

          Result:

          jCanvas example: Animating Layers

          可拖動圖層

          我想提醒你注意的是它還有一個很酷的功能,你可以在可拖動層里設置draggable屬性和layer 屬性的值為true,就可以將一個普通的jCanvas層變成可拖動的層了。

          具體方法如下:

          $myCanvas.drawRect({

          layer: true,

          draggable: true,

          bringToFront: true,

          name: 'blueSquare',

          fillStyle: 'steelblue',

          x: 250, y: 150,

          width: 100, height: 100,

          rotate: 80,

          shadowX: -1, shadowY: 8,

          shadowBlur: 2,

          shadowColor: 'rgba(0, 0, 0, 0.8)'

          })

          .drawRect({

          layer: true,

          draggable: true,

          bringToFront: true,

          name: 'redSquare',

          fillStyle: 'red',

          x: 190, y: 100,

          width: 100, height: 100,

          rotate: 130,

          shadowX: -2, shadowY: 5,

          shadowBlur: 3,

          shadowColor: 'rgba(0, 0, 0, 0.5)'

          });

          在上面的代碼段中,通過把屬性draggable設置為true,繪制出了兩個可拖動的矩形層。此外,請小心使用bringToFront屬性,以確保當你拖動層時,他會被自動拖到所有其他現有的圖層的前面。

          最后,在上述代碼段中添加旋轉圖層的代碼并且設置一個盒子陰影,只是為了告訴你如何快速的在你的jCanvas圖紙上添加一些特效。

          結果會是這樣的:

          如果你想在在你拖動圖層之前,之間或者之后做一些事情的話,jCanvas 可以很容易的利用相關的回調函數來實現這一點:

          1. dragstart:當你開始拖動圖層的時候的觸發器

          2. drag:當你正在拖動圖層時發生

          3. dragstop:當你停止拖動圖層時的觸發器

          4. dragcancel:當你拖動的圖層到了畫布表面的邊界時發生

          比方說,當用戶完成拖動層之后,你想在頁面上顯示一條消息,你可以通過添加一個回調函數dragstop來實現,就像這樣:

          $myCanvas.drawRect({

          layer: true,

          // Rest of the code as shown above...

          // Callback function

          dragstop: function(layer) {

          var layerName=layer.name;

          el.innerHTML='The ' + layerName + ' layer has been dropped.';

          }

          })

          .drawRect({

          layer: true,

          // Rest of the code...

          // Callback function

          dragstop: function(layer) {

          var layerName=layer.name;

          el.innerHTML='The ' + layerName + ' layer has been dropped.';

          }

          });

          結論

          在這篇文章中,我向你介紹了jCanvas,一個新的基于jQuery能與HTML5的 Canvas API一起使用的庫。我已經簡單的介紹了一些jCanvas的屬性和方法,能夠讓你快速的在畫布和是哪個繪制圖形,增加視覺效果,動畫和拖動圖層。

          你可以訪問jCanvas文檔,這里有很多的詳細指導和示例。你要可以在 jCanvas網站的 sandbox上進行快速測試。

          責編:外鏈不支持跳轉,為版面美觀沒有添加跳轉鏈接,需要訪問jCanvas文檔、sandbox等信息者,請至中文翻譯鏈接觀看

          ?――――――END――――――?

          相關閱讀

          無需FLASH實現圖片裁剪——HTML5中級進階

          ?――――――――――――――?

          譯者往期佳作

          如何結合Gulp使用PostCss

          ?――――――――――――――?

          作者信息

          原文作者:Maria Antonietta Perna

          原文鏈接:http://t.cn/Rt82jVj

          翻譯自力譜宿云 LeapCloud旗下MaxLeap團隊_前端研發人員:Ammie白

          中文翻譯首發:https://blog.maxleap.cn/archives/1071

          譯者簡介:新晉前端一枚,目前負責 MaxLeap 網站展示性內容的實現。喜歡自己嘗試寫一些js特效小Demo。

          對技術干貨/活動有興趣的各位小伙伴,歡迎關注我們的微信公眾號:MaxLeap_yidongyanfa

          活動預告:

          報名鏈接:http://t.cn/Rt9ooRw

          天晚間,微信團隊發布公告,微信瀏覽器全面升級至X5 Blink內核,并支持遠程調試。

          “微信安卓客戶端 webview 即日起100%放量,全面升級至 X5 Blink 內核,將具有更好的 HTML5/CSS3 支持,更強大的渲染能力。同時,微信 web 開發者工具同步推出0.5.0版本,新增支持實時映射手機屏幕到 PC 或者 Mac 上,可以遠程調試 X5 Blink 內核上的網頁。”

          簡單的說來,本次全面升級意味著,微信將全方位支持H5標準,這能讓移動瀏覽器實現從前原生APP才能實現的效果,包括應用、游戲等。

          同時,新增的PC和Mac端支持,也讓web開發者的工作效率有了一個質的提升。這無疑是微信在為開發者大規模進入瀏覽器生態大亮綠燈。

          “大棒+糖果”政策,微信到底想借H5做什么文章?

          微信此次熱情的擁抱HTML5,不禁讓筆者聯想起幾天之前微信面對H5外鏈那張冰冷的面孔。4月12日頒發的《微信外鏈規范》,其中明文禁止了HTML5小游戲及測試類內容:

          “以游戲、測試等方式,吸引用戶參與互動的,具體形式包括但不限于比手速、好友問答、性格測試,測試簽、網頁小游戲等;若內容中包含以上情況,一經發現,立即停止鏈接內容在朋友圈繼續傳播、停止對相關域名或 IP 地址進行的訪問。”

          微信以不可辯駁的姿態畫下一條紅線,一時之間,H5游戲行業內一片肅殺。毫無疑問,微信對H5小游戲當頭一棒,幾乎徹底封殺了H5小游戲公司和營銷企業在朋友圈的流量空間。

          一手緊握大棒,一手捧著糖果,我們不禁要問:微信到底借對H5做什么文章?

          淘汰H5落后產能,微信欲借H5打造系統級生態

          截止2015年底,HTML5游戲數量超過3000款,在已上線的H5游戲中,制作簡單、易于傳播的休閑益智類小游戲占比達到75.10%,其次是角色扮演類、動作冒險類游戲,占比分別為9.22%和6.04%。”

          這樣一組數字告訴我們,至少半數以上的H5游戲屬于行業內的“落后產能”,在《規范》之后,它們將遭遇滅頂之災。

          微信“規范”的方式畫下紅線,目的很明確:淘汰H5的弱勢粗濫產能,避免因H5導致的過渡營銷化。

          據二爺了解,微信瀏覽器此前一直在調用QQ瀏覽器內核,本次升級到X5 Bink內核,完成了對H5的全方位支持。此舉將帶來如下一些實質性的改變:

          1、實現瀏覽器性能革命性提升,使H5內容可以基本媲美原生APP的體驗(此前HTML5之所以發展坎坷曲折,很大原因便是瀏覽器廠商支持不力);

          2、同時推出瀏覽器開發的一整套PC端高效率的開發工具,同時對接硬件和數據的能力大幅度增強,這使得微信將進入開發者時代,真正具備了一個系統級生態應有的開發能力。

          3、將為廣告、動畫、游戲、視頻等領域的交互體驗帶來大幅度提升。

          很顯然,上述改變直接指向了兩個重要方向,一是重度化、精品化的H5游戲,另一個便是微信在年初即開始造勢的應用號。微信還是將生態的打造和商業化的實現押寶在HTML5之上,但它們并不希望落后的、過度營銷化的H5產能砸壞了這塊牌子。

          目前來看,微信至少已經從H5技術上大幅度推進了其系統級生態的步伐,借H5打造系統級生態的意圖昭然若揭。其最終成敗,將取決于應用號、游戲、廣告、視頻等內容層面是否能夠跟進。

          H5重度游戲或成微信商業化關鍵一步

          去年下半年以來,H5游戲不斷的突破原來網頁小游戲的藩籬,到今年3月,像《傳奇世界H5》這樣的精品游戲,月入已高達到2000萬。從這些爆款的表現來看,H5游戲完全可以憑借重度投入,走上精品化制作,大規模盈利的道路。

          基于白鷺引擎開發的重度HTML5游戲截圖

          在原生手游發展進入一個瓶頸期的情況下,H5為行業帶來了更多的玩法:翻熱經典IP,原生+H5并行、Web+VR。不過對整個H5游戲行業而言,行業雖熱,但定性不足,夠真正靜下心來做運營的廠商太少,這也是為什么H5游戲即便制作水準已經可以媲美原生手游之后,仍然遲遲未能很好的獲得用戶黏性的原因。

          在IGBC大會上白鷺時代CEO陳書藝曾指出H5行業內的“換皮之風”和浮躁風氣,他認為將國外成功游戲換一張中國皮,投入市場博運氣賺快錢,以及給游戲產品貼上IP、VR等熱點標簽,借此炒作,是行業浮躁的一種表現。手游需要重新回到價值實現的本質上,而H5游戲可以通過其跨平臺、多渠道、重社交互動的屬性,為游戲用戶帶來真正的價值。

          目前,HTML5游戲的崛起,已經為手游價值的實現開辟了一條新的道路。HTML5游戲可實現跨平臺操作,多渠道推廣,體驗也開始媲美原生游戲。而原生游戲依然有其固有的優勢,它能穩定用戶,并在大基數的客戶群中發酵散布,形成穩定的收入。在未來,一款成功的手游可能會依賴這兩種版本相互支撐發力,基于自身優勢提升玩家體驗,回歸游戲的初心。

          目前,H5重度游戲的開發已經突破了技術上的障礙。比如目前占市場比例70%的白鷺引擎,已為游戲CP打造出可媲美原生的一站式技術解決方案,也推出了3D版的引擎,白鷺加速器也植入了超4億臺移動設備。目前行業真正的問題,主要還是在于現有的渠道資源如何對H5游戲的CP開放,讓H5精品游戲更充分的擁抱市場,釋放潛力。畢竟,H5游戲還不像原生手游那樣,有一套非常成熟而龐大的分發機制。

          HTML5游戲發展歷程,數據來源:白鷺開放平臺

          在這個問題上,作為與游戲CP利益緊密捆綁的引擎廠家,白鷺時代等技術企業已經率先嘗試為CP推出一站式服務,集成上下游開發服務和多家分發渠道。但微信此次升級瀏覽器的動作,攜七八億的月活躍流量強殺殺來,無疑更能讓行業尖叫。

          在未來,H5游戲可能不會再像從前來樣在朋友圈無底線,無節操的肆意傳播。但微信必定會為其開辟專區,穩定的增加流量,形成和一個成熟的分發機制。H5游戲不再需要有上頓沒下頓的打游擊,而微信也將憑借其社交屬性和瀏覽器優勢,牢牢的占據H5游戲的分發高地,進而加重騰訊系在移動游戲領域的砝碼,借H5游戲這股熱潮上走出微信商業化的關鍵一步。

          H5價值不止游戲,或掀移動應用、視頻等多行業洗牌

          雖然此次微信瀏覽器的升級,對H5游戲來說是個重大利好,但它帶來的影響可能遠不止于游戲,更多的移動行業將逐次的受到影響、推進變革:

          第一步,輕度的H5小游戲被淘汰,中小CP轉型or轉行;

          第二步,重度化H5游戲迎來大發展,行業出現兩極分化,巨頭顯示雛形;

          第三步,微信應用號上線,H5會讓眾多O2O、新聞媒體、社交等領域的移動應用向瀏覽器靠攏,依附在微信生態的旗幟之下。

          第四步,H5技術蔓延發展到視頻、動畫、廣告、VR等多個領域。大部分我們日常使用到的APP服務,或許都可以在微信生態內直接用瀏覽器解決。

          HTML5應用場景

          毫無疑問,微信應用號將讓移動互聯網多個領域的洗牌更加激烈。不過H5在前些年,也曾屢次掀起過改變行業的高潮理想。這一次H5的價值能否真正的實現,這取決于眾多巨頭們能否用確實在用H5的先進性去改變移動產品的體驗,提升行業的效率,而非借H5概念去包裝熱炒某些無法新增實際價值的產品。能否堅持這一點,將決定H5和Web應用的未來。


          主站蜘蛛池模板: 97精品国产福利一区二区三区| 精品视频在线观看一区二区| 精品人妻AV一区二区三区| 亚洲图片一区二区| 精品无码国产AV一区二区三区 | 区三区激情福利综合中文字幕在线一区亚洲视频1| 一区二区三区在线免费| 亚洲性无码一区二区三区 | 国产乱码精品一区二区三区| 在线观看午夜亚洲一区| 视频一区二区中文字幕| 国产精品亚洲专区一区 | 中文字幕人妻无码一区二区三区 | 夜夜添无码一区二区三区| 日韩精品一区二区三区中文字幕| 无码少妇丰满熟妇一区二区| 乱子伦一区二区三区| 风间由美性色一区二区三区| 国产午夜三级一区二区三| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲一区二区三区免费观看| 亚洲一区二区三区AV无码| AV怡红院一区二区三区| 亚洲美女高清一区二区三区 | 糖心vlog精品一区二区三区 | 日韩精品一区二区三区中文| 一区二区三区人妻无码| 久久精品国产一区二区| 日韩精品一区二区三区在线观看| 精彩视频一区二区| 中文字幕在线视频一区| 欲色影视天天一区二区三区色香欲| 日本免费一区尤物| 免费国产在线精品一区| 一区二区三区美女视频| 一本大道东京热无码一区| 一区二区三区国产精品| 亚洲国产福利精品一区二区| 亚洲乱码一区二区三区国产精品| 亚洲一区二区三区丝袜| 免费在线观看一区|