整合營銷服務(wù)商

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

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

          web前端:仿蘋果mac底部停靠欄,底層原理解析玩轉(zhuǎn)

          web前端:仿蘋果mac底部停靠欄,底層原理解析玩轉(zhuǎn)不同效果

          .MAC底部欄-縮放圖標(biāo)效果,image-style計(jì)算原理


          javascript

          2.less包裝

          * {
              margin: 0;
              padding: 0;
          }
          
          html {
              height: 100%;
              overflow: hidden;
              body {
                  height: 100%;
                  #wrap {
                      height: 600px;
                      width: 800px;
                      position: absolute;
                      background: skyblue;
                      border: 10px solid steelblue;
                      border-radius: 8%;
                      top: 50%;
                      left: 50%;
                      transform: translate3d(-50%, -50%, 0);
                      box-shadow: 2px 5px 5px #000000;
                      h1 {
                          position: absolute;
                          text-align: center;
                          color: tomato;
                          top: 30%;
                          left: 50%;
                          transform: translate3d(-50%, -50%, 0);
                      }
                      h2 {
                          position: absolute;
                          float: right;
                          margin-right: 10%;
                          color: white;
                          top: 40%;
                          right: -10%;
                          transform: translate3d(-50%, -50%, 0);
                      }
                      #wrap-imgs {
                          position: absolute;
                          bottom: 10%;
                          left: 0;
                          //margin居中失效,采用align,圖片為inline-block,可以使用
                          width: 100%;
                          text-align: center;
                          //如果取消默認(rèn)空隙間隔
                          //font-size: 0;
                          
                          img {
                              width: 80px;
                              margin: 0 10px;
                          }
                      }
                  }
              }
          }

          3.css生成

          * {
            margin: 0;
            padding: 0;
          }
          html {
            height: 100%;
            overflow: hidden;
          }
          html body {
            height: 100%;
          }
          html body #wrap {
            height: 600px;
            width: 800px;
            position: absolute;
            background: skyblue;
            border: 10px solid steelblue;
            border-radius: 8%;
            top: 50%;
            left: 50%;
            transform: translate3d(-50%, -50%, 0);
            box-shadow: 2px 5px 5px #000000;
          }
          html body #wrap h1 {
            position: absolute;
            text-align: center;
            color: tomato;
            top: 30%;
            left: 50%;
            transform: translate3d(-50%, -50%, 0);
          }
          html body #wrap h2 {
            position: absolute;
            float: right;
            margin-right: 10%;
            color: white;
            top: 40%;
            right: -10%;
            transform: translate3d(-50%, -50%, 0);
          }
          html body #wrap #wrap-imgs {
            position: absolute;
            bottom: 10%;
            left: 0;
            width: 100%;
            text-align: center;
          }
          html body #wrap #wrap-imgs img {
            width: 80px;
            margin: 0 10px;
          }
          

          3.js鼠標(biāo)事件監(jiān)聽

          $(function() {
          	var wrapNode=document.querySelector("#wrap");
          	//獲取所有圖片
          	var wrapImgsNode=document.querySelectorAll("#wrap > #wrap-imgs > img");
          	//半徑:半徑越大,img縮放越小
          	var imgRadius=400;
          
          	//鼠標(biāo)移動,大于半徑則發(fā)生scale
          	document.onmousemove=function(e) {
          		e=e || event;
          		for(var i=0; i < wrapImgsNode.length; i++) {
          			/* 每張圖片對應(yīng)的X/Y(img到視口的距離+img寬度的1/2-)
          			 * x軸坐標(biāo)width=元素left+元素width/2-鼠標(biāo)落點(diǎn)x
          				|- imgNode.getBoundingClientRect().left + imgNode.offsetWidth/2 + e.clientX
          			   y軸坐標(biāo)width=元素top+元素height/2-鼠標(biāo)落點(diǎn)y
          				|- imgNode.getBoundingClientRect().top + imgNode.offsetHeight/2 + e.clientY
          				斜邊=半徑=開方
          			 */
          			var imgX=wrapImgsNode[i].getBoundingClientRect().left + wrapImgsNode[i].offsetWidth / 2 - e.clientX;
          			var imgY=wrapImgsNode[i].getBoundingClientRect().top + wrapImgsNode[i].offsetHeight / 2 - e.clientY;
          			var imgbevelLine=Math.sqrt(imgX * imgX + imgY * imgY);
          
          			//半徑=128,imgbevelLine=直徑128,img覆蓋范圍半徑64,bevelLine越小,img越大
          			if(imgbevelLine >=imgRadius) {
          				//大于130,img的大小不變
          				imgbevelLine=imgRadius;
          			}
          			//imgbevelLine斜邊+比例越大,width越小
          			wrapImgsNode[i].style.width=160 - imgbevelLine * 0.2 + "px";
          		}
          	}
          })

          4.html頁面

          <!DOCTYPE html>
          <html>
          
          	<head>
          		<meta charset="UTF-8">
          		<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
          		<title>MAC底部縮放停靠欄</title>
          		<link rel="stylesheet" href="css/2-mac-bottom-nav.css" />
          	</head>
          
          	<body>
          		<div id="wrap">
          			<div>
          				<h1>MAC底部縮放停靠欄</h1>
          				<h2>PS:一刀coder</h2>
          			</div>
          			<div id="wrap-imgs">
          				<img src="img/logo300-2.png" />
          				<img src="img/logo300-2.png" />
          				<img src="img/logo300-2.png" />
          				<img src="img/logo300-2.png" />
          				<img src="img/logo300-2.png" />
          			</div>
          
          		</div>
          	</body>
          	<script type="text/javascript" src="../../6-bootstrap/js/jquery.min.js"></script>
          	<script type="text/javascript" src="js/2-mac-bottom-nav.js"></script>
          
          </html>
          123456789101112131415161718192021222324252627282930

          5.效果圖


          javascript


          javascript

          ^_^收藏、轉(zhuǎn)發(fā)、關(guān)注我,每天更新各種web流行技術(shù)棧源碼剖析!

          、源碼描述說明

          本套源碼主要用于他人與自己聯(lián)系,以我的愛車擋路為例,對方掃碼聯(lián)系請我挪車,對方手機(jī)掃描二維碼,將會打開一個詳情頁面,顯示車牌號碼與聯(lián)系方法,可以點(diǎn)擊發(fā)送短信,將會彈出短信發(fā)送界面,手機(jī)號碼自動填充,短信內(nèi)容自動填充,點(diǎn)擊發(fā)送按鈕即可。或者點(diǎn)擊撥打電話,將會彈出電話撥打界面,手機(jī)號碼自動填充,直接撥打電話即可。

          本套源碼可以在線上或線下使用,支持安卓手機(jī)和蘋果手機(jī),線上二維碼就是電子二維碼,可以在互聯(lián)網(wǎng)上使用,若是打算在線下使用,則可應(yīng)用于任何場景,二維碼打印出來以后,可以放在任何醒目位置,比如車窗上,家門上,墻壁上,桌子上,等等,對方掃碼就能與你聯(lián)系。

          本套源碼是單頁面的,頁面內(nèi)容可以隨意編輯,一般依據(jù)不同的使用場景,替換為不同的文本內(nèi)容,若是懂點(diǎn)HTML知識,可以在頁面里添加圖片,以及嵌入二維碼,甚至添加音頻和視頻等。本套源碼是非常實(shí)用的,每個人都應(yīng)該擁有,但是有一個前提條件,就是要上傳到主機(jī)里,這樣他人才能掃碼訪問。

          本套源碼是綠色版本,無需任何數(shù)據(jù)庫,沒有管理后臺,沒有任何安裝過程,上傳以后即可使用,可以搭建一個獨(dú)立站點(diǎn),或者上傳到你的已有站點(diǎn),成為一個子欄目或子頻道。

          二、源碼截圖演示

          音在HTML中可以以不同的方式播放.

          問題以及解決方法

          在 HTML 中播放音頻并不容易!

          您需要諳熟大量技巧,以確保您的音頻文件在所有瀏覽器中(Internet Explorer, Chrome, Firefox, Safari, Opera)和所有硬件上(PC, Mac , iPad, iPhone)都能夠播放。

          在這W3CSchool 為您總結(jié)了問題和解決方法。

          使用插件

          瀏覽器插件是一種擴(kuò)展瀏覽器標(biāo)準(zhǔn)功能的小型計(jì)算機(jī)程序。

          插件可以使用 <object> 標(biāo)簽 或者 <embed> 標(biāo)簽添加在頁面上.

          這些標(biāo)簽定義資源(通常非 HTML 資源)的容器,根據(jù)類型,它們即會由瀏覽器顯示,也會由外部插件顯示。

          使用 <embed> 元素

          <embed>標(biāo)簽定義外部(非 HTML)內(nèi)容的容器。(這是一個 HTML5 標(biāo)簽,在 HTML4 中是非法的,但是所有瀏覽器中都有效)。

          下面的代碼片段能夠顯示嵌入網(wǎng)頁中的 MP3 文件:

          實(shí)例

          <embed height="50" width="100" src="horse.mp3">

          問題:

          • <embed> 標(biāo)簽在 HTML 4 中是無效的。頁面無法通過 HTML 4 驗(yàn)證。

          • 不同的瀏覽器對音頻格式的支持也不同。

          • 如果瀏覽器不支持該文件格式,沒有插件的話就無法播放該音頻。

          • 如果用戶的計(jì)算機(jī)未安裝插件,無法播放音頻。

          • 如果把該文件轉(zhuǎn)換為其他格式,仍然無法在所有瀏覽器中播放。

          使用 <object> 元素

          <object tag> 標(biāo)簽也可以定義外部(非 HTML)內(nèi)容的容器。

          下面的代碼片段能夠顯示嵌入網(wǎng)頁中的 MP3 文件:

          實(shí)例

          <object height="50" width="100" data="horse.mp3"></object>

          問題:

          • 不同的瀏覽器對音頻格式的支持也不同。

          • 如果瀏覽器不支持該文件格式,沒有插件的話就無法播放該音頻。

          • 如果用戶的計(jì)算機(jī)未安裝插件,無法播放音頻。

          • 如果把該文件轉(zhuǎn)換為其他格式,仍然無法在所有瀏覽器中播放。

          使用 HTML5 <audio> 元素

          HTML5 <audio> 元素是一個 HTML5 元素,在 HTML 4 中是非法的,但在所有瀏覽器中都有效。

          The <audio> element works in all modern browsers.

          以下我們將使用 <audio> 標(biāo)簽來描述 MP3 文件(Internet Explorer、Chrome 以及 Safari 中是有效的), 同樣添加了一個 OGG 類型文件(Firefox 和 Opera瀏覽器中有效).如果失敗,它會顯示一個錯誤文本信息:

          實(shí)例

          <audio controls>

          <source src="horse.mp3" type="audio/mpeg">

          <source src="horse.ogg" type="audio/ogg">

          Your browser does not support this audio format.

          </audio>

          問題:

          • <audio> 標(biāo)簽在 HTML 4 中是無效的。您的頁面無法通過 HTML 4 驗(yàn)證。

          • 您必須把音頻文件轉(zhuǎn)換為不同的格式。

          • <audio> 元素在老式瀏覽器中不起作用。

          最好的 HTML 解決方法

          下面的例子使用了兩個不同的音頻格式。HTML5 <audio> 元素會嘗試以 mp3 或 ogg 來播放音頻。如果失敗,代碼將回退嘗試 <embed> 元素。

          實(shí)例

          <audio controls height="100" width="100">

          <source src="horse.mp3" type="audio/mpeg">

          <source src="horse.ogg" type="audio/ogg">

          <embed height="50" width="100" src="horse.mp3">

          </audio>

          問題:

          • 您必須把音頻轉(zhuǎn)換為不同的格式。

          • <embed> 元素?zé)o法回退來顯示錯誤消息。

          雅虎媒體播放器 - 一個簡單的添加音頻到你網(wǎng)站上的方式

          使用雅虎播放器是免費(fèi)的。如需使用它,您需要把這段 JavaScript 插入網(wǎng)頁底部:

          雅虎播放器可以播放MP3以及其他各種格式。你只需添加一行代碼到你的頁面或 博客中就可以輕松地將您的HTML頁面制作成 專業(yè)的播放列表:

          實(shí)例

          <a href="horse.mp3">Play Sound</a>

          <script src="http://mediaplayer.yahoo.com/latest"></script>

          如果你要使用它,您需要把這段 JavaScript 插入網(wǎng)頁底部:

          <script src="http://mediaplayer.yahoo.com/latest"></script>

          然后只需簡單地把 MP3 文件鏈接到您的 HTML 中,JavaScript 會自動地為每首歌創(chuàng)建播放按鈕:

          <a href="song1.mp3">Play Song 1</a>

          <a href="song2.wav">Play Song 2</a>

          ...

          ...

          雅虎媒體播放器為您的用戶提供的是一個小型的播放按鈕,而不是完整的播放器。不過,當(dāng)您點(diǎn)擊該按鈕,會彈出完整的播放器。

          請注意,這個播放器始終停靠在窗框底部。只需點(diǎn)擊它,就可將其滑出。

          使用超鏈接

          如果網(wǎng)頁包含指向媒體文件的超鏈接,大多數(shù)瀏覽器會使用"輔助應(yīng)用程序"來播放文件。

          以下代碼片段顯示指向 mp3 文件的鏈接。如果用戶點(diǎn)擊該鏈接,瀏覽器會啟動"輔助應(yīng)用程序"來播放該文件:

          實(shí)例

          <a href="horse.mp3">Play the sound</a>

          內(nèi)聯(lián)的聲音說明

          當(dāng)您在網(wǎng)頁中包含聲音,或者作為網(wǎng)頁的組成部分時,它被稱為內(nèi)聯(lián)聲音。

          如果您打算在 web 應(yīng)用程序中使用內(nèi)聯(lián)聲音,您需要意識到很多人都覺得內(nèi)聯(lián)聲音令人惱火。同時請注意,用戶可能已經(jīng)關(guān)閉了瀏覽器中的內(nèi)聯(lián)聲音選項(xiàng)。

          我們最好的建議是只在用戶希望聽到內(nèi)聯(lián)聲音的地方包含它們。一個正面的例子是,在用戶需要聽到錄音并點(diǎn)擊某個鏈接時,會打開頁面然后播放錄音。

          HTML 多媒體標(biāo)簽

          New : HTML5 新標(biāo)簽

          標(biāo)簽描述
          <embed>定義內(nèi)嵌對象。HTML4 中不贊成,HTML5 中允許。
          <object>定義內(nèi)嵌對象。
          <param>定義對象的參數(shù)。
          <audio>New定義了聲音內(nèi)容
          <video>New定義一個視頻或者影片
          <source>New定義了media元素的多媒體資源(<video> 和 <audio>)
          <track>New規(guī)定media元素的字幕文件或其他包含文本的文件 (<video> 和<audio>)

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!


          主站蜘蛛池模板: 国产精品久久一区二区三区| 秋霞午夜一区二区| 成人免费一区二区无码视频| 少妇无码一区二区二三区| 国产精品免费一区二区三区四区| 日本精品夜色视频一区二区 | 日本一区二区在线免费观看| 精品一区二区三区无码视频| 高清无码一区二区在线观看吞精 | 精品国产一区二区三区AV性色| 区三区激情福利综合中文字幕在线一区| 三级韩国一区久久二区综合| 无码午夜人妻一区二区三区不卡视频| 亚洲AV香蕉一区区二区三区| 亚洲一区爱区精品无码| 人妻内射一区二区在线视频| 成人精品视频一区二区三区不卡| 国产精品一区二区久久| 精品一区二区三区影院在线午夜 | 成人区人妻精品一区二区不卡视频 | 日韩一区二区电影| 国产美女一区二区三区| 国产一区在线播放| 人体内射精一区二区三区| 国产在线观看91精品一区| 69福利视频一区二区| 国产一区二区视频在线观看| 国产一区二区三区视频在线观看| 日韩精品无码一区二区三区| 中文字幕一区二区三区免费视频| 日本一区二区三区免费高清| 亚洲一区二区三区国产精品无码| 国产精品福利区一区二区三区四区| 日韩视频在线一区| 无码aⅴ精品一区二区三区| 国产乱码精品一区二区三区香蕉 | 亚洲精品一区二区三区四区乱码| 国产在线视频一区二区三区98| 国产免费播放一区二区| 亚洲AⅤ无码一区二区三区在线| 少妇人妻偷人精品一区二区|