Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产日韩欧美自拍,国产成人免费永久播放视频平台,亚洲男人天堂

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          這是一份你值得保存學(xué)習(xí)的HTML5技術(shù)干貨整理分享

          記得在過去的Web前端開發(fā)中,如果你需要繪圖或者生成相關(guān)圖形的話,使用Flash可能是你唯一或者說最強(qiáng)大的實(shí)現(xiàn)方式,而在近些年的技術(shù)熱點(diǎn)HTML5標(biāo)準(zhǔn)中,HTML Canvas(畫布)能夠更加方便的幫助你實(shí)現(xiàn)2D繪制圖形圖像及其各種動(dòng)畫效果功能。

          首先我們先來(lái)了解一下什么是HTML Canvas?

          我們可以在HTML中使用屬性width和height來(lái)定義Canvas。但是實(shí)現(xiàn)Canvas的相關(guān)功能主要還依賴于Javascript實(shí)現(xiàn),即HTML5 Canvas API。我們使用javascript來(lái)訪問和控制Canvas相關(guān)的區(qū)域,比如調(diào)用相關(guān)繪圖的方法,用來(lái)動(dòng)態(tài)的生成需要的動(dòng)畫或者圖形。

          接下來(lái)我們來(lái)看看canvas的特性:

          互動(dòng)性:Canvas支持互動(dòng),可以很好的響應(yīng)用戶的操作,我們可以通過Javascript來(lái)監(jiān)鍵盤,鼠標(biāo),及其觸摸設(shè)備相關(guān)事件。

          動(dòng) 畫:任何被canvas繪制的圖形都可以添加動(dòng)畫,簡(jiǎn)單的彈跳球或者復(fù)雜的HTML5游戲都可以實(shí)現(xiàn)

          靈活性:開發(fā)人員可以使用Canvas來(lái)繪制任何的內(nèi)容,比如,直線,圖形,文字,圖片等,可以包含動(dòng)畫或者不包含。同時(shí)你可以添加音頻或者視頻瀏覽器支持:幾乎所有的現(xiàn)代瀏覽器都支持,并且被廣泛的各種設(shè)備支持,例如,桌面,平板,智能手機(jī)等等。

          流行度:canvas目前很流行,很多的開發(fā)人員都使用它來(lái)開發(fā)類似游戲或者繪圖類應(yīng)用

          web標(biāo)準(zhǔn):只需要有瀏覽器就可以運(yùn)行,而非flash或者silverlight,需要安裝相關(guān)的插件

          開發(fā)一次,任何瀏覽器都可以運(yùn)行(當(dāng)然,不包括老式瀏覽器)

          可以使用免費(fèi)擁有大量的開發(fā)工具及其類庫(kù)。

          使用HTML5 Canvas我們能開發(fā)那些相關(guān)產(chǎn)品或者應(yīng)用呢?

          1 可視化數(shù)據(jù): 各類統(tǒng)計(jì)圖表,比如:百度的echart

          2 場(chǎng)景秀:用Canvas實(shí)現(xiàn)動(dòng)態(tài)的廣告效果能夠非常融洽的跨平臺(tái)運(yùn)行。如:手機(jī)中微產(chǎn)品.在移動(dòng)端兼容性很好。

          3 游戲:canvas在基于Web的圖像顯示方面比Flash更加立體、更加精巧,canvas成為HTML5小游戲開發(fā)首選。現(xiàn)階段h5做游戲,營(yíng)業(yè)方式不是很明確. 25 超棒的 HTML5 Canvas 游戲。

          4 其他可嵌入網(wǎng)站的內(nèi)容 (多用于活動(dòng)頁(yè)面、特效):類似圖表、音頻、視頻,還有許多元素能夠更好地與Web融合,并且不需要任何插件。

          5 趨勢(shì)=> 模擬器: 無(wú)論從視覺效果還是核心功能方面來(lái)說,模擬器產(chǎn)品可以完全由JavaScript來(lái)實(shí)現(xiàn)。模擬真實(shí)硬件環(huán)境,如移動(dòng)端各種類型手機(jī).

          6 趨勢(shì)=> 遠(yuǎn)程計(jì)算機(jī)控制: Canvas可以讓開發(fā)者更好地實(shí)現(xiàn)基于Web的數(shù)據(jù)傳輸,構(gòu)建一個(gè)完美的可視化控制界面。

          7 趨勢(shì)=> 圖形編輯器: Photoshop圖形編輯器將能夠100%基于Web實(shí)現(xiàn)。

          如何使用HTML5 Canvas?

          使用HTML5 canvas其實(shí)非常簡(jiǎn)單, 每一個(gè)canvas都擁有一個(gè)上下文(context)。使用它你可以來(lái)調(diào)用相關(guān)的畫布方法。

          <canvas id="mycanvas" width="500" height ="400">

          <p>您的瀏覽器不支持HTML5 Canvas</p>

          </canvas>

          以上代碼我們?cè)贖TML中添加了一個(gè)canvas標(biāo)簽,如果瀏覽器不支持canvas,會(huì)顯示<p>標(biāo)簽的內(nèi)容,當(dāng)然,如果你需要支持老式瀏覽器你也可以使用flash或者其它方法來(lái)做一個(gè)替代的解決方案。

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

          context = canvas.getContext(‘2d’);

          以上代碼我們通過canvas取到2D的context。

          在HTML5 Canvas的2D結(jié)構(gòu)中,坐標(biāo)(0,0)在左上方,這和傳統(tǒng)的坐標(biāo)不太一樣。大家需要注意一下,如下圖所示:

          下面來(lái)說一下canvas的API:

          canvas的主要屬性和方法:

          save():保存當(dāng)前環(huán)境的狀態(tài)

          restore():返回之前保存過的路徑狀態(tài)和屬性

          createEvent()

          getContext():返回一個(gè)對(duì)象,指出訪問繪圖功能必要的API

          toDateURL():返回canvas圖像的URL

          顏色、樣式和陰影屬性和方法:

          fillStyle:設(shè)置或返回用于填充繪畫的顏色、漸變或模式

          strokeStyle:設(shè)置或返回用于筆觸的顏色、漸變或模式

          shadowColor:設(shè)置或返回用于陰影的顏色

          shadowBlur:設(shè)置或返回用于陰影的模糊級(jí)別

          shadowOffsetX:設(shè)置或返回陰影距形狀的水平距離

          shadowOffsetY:設(shè)置或返回陰影距形狀的垂直距離

          createLinearGradient():創(chuàng)建線性漸變(用在畫布內(nèi)容上)

          createPattern():在指定的方向上重復(fù)指定的元素

          createRadialGradient():創(chuàng)建放射狀/環(huán)形的漸變(用在畫布內(nèi)容上)

          addColorStop():規(guī)定漸變對(duì)象中的顏色和停止位置

          線條樣式屬性和方法

          lineCap:設(shè)置或返回線條的結(jié)束端點(diǎn)樣式

          lineJoin:設(shè)置或返回兩條線相交時(shí),所創(chuàng)建的拐角類型

          lineWidth:設(shè)置或返回當(dāng)前的線段寬度

          miterLimit:設(shè)置或返回最大斜接長(zhǎng)度

          Canvas的API-路徑方法

          fill():填充當(dāng)前繪圖(路徑)

          stroke():繪制已定義的路徑

          beginPath():起始一條路徑,或重置當(dāng)前路徑

          moveTo():把路徑移動(dòng)到畫布中的指定點(diǎn),不創(chuàng)建線條

          closePath():創(chuàng)建從當(dāng)前點(diǎn)回到起始點(diǎn)的路徑

          lineTo():添加一個(gè)新點(diǎn),創(chuàng)建從該點(diǎn)到最后指定點(diǎn)的線條

          clip():從原始畫布剪切任意形狀和尺寸的區(qū)域

          quadraticCurveTo():創(chuàng)建二次貝塞爾曲線

          bezierCurveTo():創(chuàng)建三次貝塞爾曲線

          arc():創(chuàng)建弧/曲線(用于創(chuàng)建圓形或部分圓)

          arcTo():創(chuàng)建兩切線之間的弧/曲線

          isPointInPath():如果指定的點(diǎn)位于當(dāng)前路徑中,返回布爾值

          Canvas的API-轉(zhuǎn)換方法

          scale():縮放當(dāng)前繪圖至更大或更小

          rotate():旋轉(zhuǎn)當(dāng)前繪圖

          translate():重新映射畫布上的(0,0)位置

          transform():替換繪圖的當(dāng)前轉(zhuǎn)換矩陣

          setTransform():將當(dāng)前轉(zhuǎn)換重置為單位矩陣,然后運(yùn)行transform()

          Canvas的API-文本屬性和方法

          font:設(shè)置或返回文本內(nèi)容的當(dāng)前字體屬性

          textAlign:設(shè)置或返回文本內(nèi)容的當(dāng)前對(duì)齊方式

          textBaseline:設(shè)置或返回在繪制文本時(shí)使用的的當(dāng)前文本基線

          fillText():在畫布上繪制“被填充的”文本

          strokeText():在畫布上繪制文本(無(wú)填充)

          measureText():返回包含指定文本寬度的對(duì)象

          Canvas的API-圖像繪制方法

          drawImage():向畫布上繪制圖像、畫布或視頻

          Canvas的API-像素操作方法和屬性

          width:返回ImageData對(duì)象的寬度

          height:返回ImageData對(duì)象的高度

          data:返回一個(gè)對(duì)象,其包含指定的ImageData對(duì)象的圖像數(shù)據(jù)

          createImageData():創(chuàng)建新的、空白的I馬哥Data對(duì)象

          getImageData():返回ImageData對(duì)象,該對(duì)象為畫布上指定的矩形復(fù)制像素?cái)?shù)據(jù)

          putImageData():把圖像數(shù)據(jù)(從指定的ImageData對(duì)象)放回畫布上

          Canvas的API-圖像合成屬性

          globalAlpha:設(shè)置或返回繪圖的當(dāng)前alpha或透明值

          globalCompositeOperation:設(shè)置或返回新圖像如何繪制到已有的圖像上

          快速高效的創(chuàng)建HTML5畫布圖形?

          直接使用Canvas來(lái)繪制圖形相對(duì)來(lái)說比較乏味并且麻煩,所以在現(xiàn)代的HTML5 Canvas中我們使用一些現(xiàn)成的第三方類庫(kù)幫助我們多快好省的實(shí)現(xiàn)圖形繪制的功能:

          KineticJS

          Paper.js

          EaselJS

          Fabric.js

          oCanvas

          Echart.js

          多特效代碼請(qǐng)?zhí)砑親TML5前端交流群581549454

          廢話不多說,上代碼!

          源代碼:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.aaa-cg.com.cn?lcc">

          <html xmlns="http://www.aaa-cg.com.cn?lcc">

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

          <title>非常酷的3D立體圖片相冊(cè)展示代碼</title>

          <meta name="Author" content="Gerard Ferrandez at http://www.dhteumeuleu.com">

          <link href="css/lanrenzhijia.css" type="text/css" rel="stylesheet" />

          <script type="text/javascript" src="js/lanrenzhijia.js"></script>

          </head>

          <body>

          <div id="screen" style="zoom:1">

          <span><img src="images/pr04.jpg" title="One morning" alt="-2,-1,-.8,1.5,2"></span>

          <span><img src="images/pr03.jpg" title="hailing the Sun" alt="-1,-.8,0,1.2,1.6"></span>

          <a target="_blank" ><img src="images/3D-eyes-big.jpg" title="befriending death" alt="-1.5,-.9,.8,3,1.8"></a>

          <span><img src="images/pr01.jpg" title="world at myfingertips" alt="1,-.6,.2,1,.75"></span>

          <span><img src="images/pr02.jpg" title="gathering strength" alt="-1.7,0,.4,1.4,1"></span>

          <span><img src="images/pr07.jpg" title="I said, all right." alt=".5,-1,-.4,1.5,2"></span>

          </div>

          </body>

          </html>

          代碼很簡(jiǎn)單,但是能實(shí)現(xiàn)的效果很強(qiáng)大

          需要文檔版本源碼,可以加我的HTML5前端交流群581549454

          一、項(xiàng)目背景】

          隨著HTML5 CSS3的出現(xiàn)和發(fā)展,使得我們的網(wǎng)頁(yè)可以實(shí)現(xiàn)更加復(fù)雜的效果,也使得我們的瀏覽體驗(yàn)更加豐富,所以今天我們將制作一個(gè)正方體的3D效果。


          【二、項(xiàng)目分析】

          想要利用CSS3實(shí)現(xiàn)3D立方體,就要清楚立方體是由六個(gè)面組成,分上下左右和前后,考慮這些可以幫助我們更好的融入CSS3的代碼。

          因此我設(shè)置了6個(gè)div,作為立方體的6個(gè)面。因?yàn)槎ㄎ坏脑颍婚_始所有的盒子都是面對(duì)著屏幕這面的,因此要賦予每個(gè)面不一樣的值,即不一樣的位置它才能展現(xiàn)出來(lái)。


          【三、需要的工具】

          Adobe Dreamweaver


          【四、項(xiàng)目目標(biāo)】

          實(shí)現(xiàn)3的l立方體旋轉(zhuǎn),鼠標(biāo)移上去實(shí)現(xiàn)縮放效果。


          【五、項(xiàng)目實(shí)現(xiàn)】

          1、打開Adobe Dreamweaver,新建html文檔。把標(biāo)題改為“3d立方體”。


          2、在body標(biāo)簽,創(chuàng)建一個(gè)div盒子 ,給它c(diǎn)lass屬性,在外層div里面在創(chuàng)建6個(gè)div表示立方體的六個(gè)面,同樣給它們 class屬性。

          <body>
              <div class="box">
                <div class="box2">
                  <div class="box-2">top</div>
                  <div class="box-2">btm</div>
                  <div class="box-2">left</div>
                  <div class="box-2">right</div>
                  <div class="box-2">face</div>
                  <div class="box-2">back</div>
                </div>
              </div>
          </body>

          3、創(chuàng)建CSS樣式

          <style type="text/css">
          .box {
            width: 200px;
            height: 200px;
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
            transition: all 2s;
            transform-style: preserve-3d;
            transform: rotateX(15deg) rotateY(-15deg);
          }
          .box:hover {
            transform: rotateX(300deg) rotateZ(300deg) rotateY(-300deg) scale(0.5);
          }
          .box .box-2 {
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            font-size: 1.2em;
            position: absolute;
            top: 0;
            left: 0;
          }
          .box .box-2:nth-child(1) {
            /*小立方體第一面*/
            background: rgba(225,0,0,0.5);
            transform: rotateX(90deg) translateZ(50px); #角度 偏移量
          }
          .box .box-2:nth-child(2) {
              /*小立方體第二面*/
            background: rgba(255,255,0,0.5);
            transform: rotateX(-90deg) translateZ(50px);
          }
          .box .box-2:nth-child(3) {
              /*小立方體第三面*/
            background: rgba(225,0,255,0.5);
            transform: rotateY(-90deg) translateZ(50px);
          }
          .box .box-2:nth-child(4) {
               /*小立方體第四面*/
            background: rgba(0,255,0,0.5);
            transform: rotateY(90deg) translateZ(50px);
          }
          .box .box-2:nth-child(5) {
               /*小立方體第五面*/
            background: rgba(225,0,0,0.5);
            transform: translateZ(50px);
          }
          .box .box-2:nth-child(6) {
              /*小立方體第六面*/
            background: rgba(0,0,255,0.5);
            transform: rotateY(180deg) translateZ(50px);
          }
          </style>
            </head>
            <body>
              <div class="box">
                <div class="box2">
                  <div class="box-2">top</div>
                  <div class="box-2">btm</div>
                  <div class="box-2">left</div>
                  <div class="box-2">right</div>
                  <div class="box-2">face</div>
                  <div class="box-2">back</div>
                </div>
              </div>
          </body>
          </html>

          方法說明:

          rotateX() 方法

          通過 rotateX() 方法,元素圍繞其 X 軸以給定的度數(shù)進(jìn)行旋轉(zhuǎn)。

          rotateY() 旋轉(zhuǎn)

          通過 rotateY() 方法,元素圍繞其 Y 軸以給定的度數(shù)進(jìn)行旋轉(zhuǎn)。

          rotateZ() 旋轉(zhuǎn)

          通過 rotateZ() 方法,元素圍繞其 Z 軸以給定的度數(shù)進(jìn)行旋轉(zhuǎn)。

          下表是部分屬性所代表的含義:



          4、運(yùn)行一下看下效果;點(diǎn)擊F12運(yùn)行。


          5、呈現(xiàn)的效果如下圖所示。

          可以看到效果基本上可以 ,可是鼠標(biāo)移上去沒有效果。

          6、添加鼠標(biāo)移上去縮放的效果

          .box:hover{
              transform: rotateX(300deg) rotateZ(300deg) rotateY(-300deg) scale(0.5);
          
            } # scale是縮放倍數(shù)


          7、外層再添加一個(gè)3d立方體形成疊加效果

          body代碼:

          <div class="box">
          <div class="box-1">top</div>
          <div class="box-1">btm</div>
          <div class="box-1">left</div>
          <div class="box-1">right</div>
          <div class="box-1">face</div>
          <div class="box-1">back</div>
          </div>


          CSS樣式代碼

          <style type="text/css">
          .box .box-1{
              width: 200px;
              height: 200px;
              text-align: center;
              line-height: 200px;
              font-size: 2em;
              position: absolute;
              top: 0;
              left: 0;
            }
            .box .box-1:nth-child(1){
              /*大立方體第一面*/
              background: rgba(225,0,0,0.5);
              transform:rotateX(90deg) translateZ(100px);
          
            }.box .box-1:nth-child(2){
                   /*大立方體第二面*/
              background: rgba(255,255,0,0.5);
              transform:rotateX(-90deg) translateZ(100px);
          
            }.box .box-1:nth-child(3){
                  /*大立方體第三面*/
              background: rgba(225,0,255,0.5);
              transform:rotateY(-90deg) translateZ(100px);
            }.box .box-1:nth-child(4){
                   /*大立方體第四面*/
              background: rgba(0,255,0,0.5);
              transform:rotateY(90deg) translateZ(100px);
          
            }.box .box-1:nth-child(5){
                  /*大立方體第五面*/
              background: rgba(225,0,0,0.5);
                transform:translateZ(100px);
            }.box .box-1:nth-child(6){
                  /*大立方體第六面*/
              background: rgba(0,0,255,0.5);
              transform:rotateY(180deg) translateZ(100px);
            }
          </style>


          【六、效果展示】

          1、點(diǎn)擊運(yùn)行,效果如下圖所示。

          2、鼠標(biāo)移到立方體上,縮放效果展示,如下圖所示。


          【七、總結(jié)】

          1、整個(gè)效果寫出來(lái),還是比較簡(jiǎn)單的,只要明白各個(gè)命令的意思,剩下的就是組織一下邏輯而已。

          2、歡迎大家積極嘗試,有時(shí)候看到別人實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是到自己動(dòng)手實(shí)現(xiàn)的時(shí)候,總會(huì)有各種各樣的問題,切勿眼高手低,勤動(dòng)手,才可以理解的更加深刻。

          3、CSS樣式的效果不止這些,還有更加炫酷的效果,值得大家去學(xué)習(xí)。

          4、實(shí)現(xiàn)的方法3d立方體的方法有很多,但這是最簡(jiǎn)單的一種。

          5、如果需要本文源碼,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)“立方體”四個(gè)字獲取。


          看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多的人

          IT共享之家

          入群請(qǐng)?jiān)谖⑿藕笈_(tái)回復(fù)【入群】

          想學(xué)習(xí)更多Python網(wǎng)絡(luò)爬蟲與數(shù)據(jù)挖掘知識(shí),可前往專業(yè)網(wǎng)站:http://pdcfighting.com/


          主站蜘蛛池模板: 国产在线一区二区三区在线| 亚洲AV色香蕉一区二区| 国产乱码一区二区三区四| 国产成人精品视频一区| 国产激情з∠视频一区二区| 国产激情一区二区三区四区| 国产香蕉一区二区精品视频| 亚洲色大成网站www永久一区| 国产精品一区二区资源| 无码人妻久久一区二区三区| 亚洲AV无码一区二区三区在线观看| 国产伦精品一区二区三区视频小说| 国产成人无码一区二区三区 | 亚洲AV成人一区二区三区在线看| 久久99国产精品一区二区| 国产在线aaa片一区二区99| 精品国产AⅤ一区二区三区4区| 一区二区三区福利视频| 日韩社区一区二区三区| 日韩一区二区三区精品| 成人免费视频一区二区| 丝袜美腿高跟呻吟高潮一区| 日韩一区二区精品观看| 国产伦一区二区三区高清| 久久国产高清一区二区三区| 久久久国产一区二区三区| 岛国精品一区免费视频在线观看| 一区二区三区视频网站| 精品国产日韩亚洲一区| 果冻传媒一区二区天美传媒| 冲田杏梨高清无一区二区| 亚洲AV综合色区无码一区爱AV| 日本道免费精品一区二区| 91国在线啪精品一区| 亚洲片一区二区三区| 久夜色精品国产一区二区三区| 国产精品99无码一区二区| 波多野结衣高清一区二区三区 | 人妻无码久久一区二区三区免费| 久久精品一区二区东京热| 日本不卡一区二区视频a|