javascript
* {
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;
}
}
}
}
}
* {
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;
}
$(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";
}
}
})
<!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
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,我們一起飛!
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。