lt;!DOCTYPE html>
<html>
<head>
<title>我的網(wǎng)頁</title>
</head>
<body>
<h1>歡迎來到我的網(wǎng)頁</h1>
<p>這是一個簡單的 HTML 網(wǎng)頁設計。</p>
<img src="https://picsum.photos/200" alt="隨機圖片">
<ul>
<li>項目 1</li>
<li>項目 2</li>
<li>項目 3</li>
</ul>
</body>
</html>
在這個例子中,我們創(chuàng)建了一個簡單的 HTML 網(wǎng)頁,其中包括以下元素:
圖類、打車、外賣等類型的手機APP,一進入便咨詢是否允許獲取我們的位置,允許之后會根據(jù)我們所在位置推薦好物,逐漸地 H5 網(wǎng)頁也開始獲取用戶位置。Geolocation是 H5 新增的對象,用于定位。常見打開網(wǎng)頁有兩種方式:移動端和PC端。它們是根據(jù)什么如何定位的呢?
geolocation對象繼承在navigator對象內(nèi),它有兩種方法可以獲取用戶位置getCurrentPosition()和watchPosition(),還有clearWatch取消watchPosition。
getCurrentPosition:獲取一次位置
navigator.geolocation.getCurrentPosition(success=>{
console.log(success.coords)//包含位置的經(jīng)緯度、速度、海拔、經(jīng)緯度精度、海拔精度信息
},fail=>{
console.log(fail)//獲取失敗的原因
},{
//可增加的4個配置參數(shù)
enableHighAccuracy:true,//高精度
timeout:5000,//超時時間,以ms為單位
maximumAge:24*60*60*1000,//位置緩存時間,以ms為單位
})
位置獲取成功后返回的 success.coords 的屬性
watchPosition:不斷獲取位置
navigator.geolocation.watchPosition(
success=>{
console.log(success.coords)//包含用戶位置速度海拔等信息
},
fail=>{
console.log(fail)//定位失敗原因
},
{
enableHighAccuracy:true,//高精度
timeout:60*1000,//超時,以ms為單位
maximumAge:24*60*60*1000,//位置緩存時間,以ms為單位
frequency:1000,//獲取頻率
}
)
位置獲取成功后返回的 success.coords 的屬性與上述getCurrentPosition的一致。它兩唯一的區(qū)別就是一個獲取一次,另外一個獲取多次,多了一個獲取頻率參數(shù)。
clearWatch(): 取消當前位置的獲取,停止 watchPosition 方法。
clearWatch 與 js 中的clearInterval類似,clearInterval用于清除定時器。使用時語法如下:
var wPId = navigator.geolocation.watchPosition(
success=>{
console.log(success.coords)//包含用戶位置速度海拔等信息
},
fail=>{
console.log(fail)//定位失敗原因
},
{
enableHighAccuracy:true,//高精度
timeout:60*1000,//超時,以ms為單位
maximumAge:24*60*60*1000,//位置緩存時間,以ms為單位
frequency:1000,//獲取頻率
}
)
navigator.geolocation.clearWatch(wPId)
由于該特性可能侵犯用戶的隱私,使用時自動會詢問用戶是否同意授權(quán)位置,除非用戶同意,否則無法獲取到用戶位置。
function getPosition(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(res){
console.log("res",res)//位置信息
},function(err){
console.log("err",err)
})
}
}
getPosition()
在電腦上,直接使用瀏覽器打開文件,瀏覽器立馬彈出如下顯示框:
點擊禁止后,調(diào)試器中打印出報錯信息,報錯信息為:
{
code: 1
message: "User denied Geolocation" //用戶拒絕地理位置
}
點擊允許之后,發(fā)現(xiàn)并未打印出位置信息,什么原因呢?PC是根據(jù)電腦的IP地址來解析位置的,此時直接打開文件沒有域名或ip,所以無法獲取位置,必須把文件放到服務內(nèi),如果你是不會起服務可以下載nginx,下載安裝成功之后文件放入html文件夾內(nèi),啟動nginx就可以訪問了。
啟動本地服務,再次獲取位置之后,發(fā)現(xiàn)依舊報錯,無法返回位置,報錯信息為:
{
code: 1,
message: "Only secure origins are allowed (see: https://goo.gl/Y0ZkNV)."//只允許安全來源
}
意思就是只能在https域名下才可以哦!
還需要注意的是chrome的google瀏覽器也不能獲取位置,但是IE瀏覽器可以獲取到。
把上述案例放到線上,獲取位置只要用戶點擊同意就沒有問題啦!
除此之外,帶有位置的我們經(jīng)常會用到輸入位置,在地圖中自動標記一個點,移動標記點到更具體的位置,如圖:
一般需要繪制地圖的時候,我們就借助三方的百度、高德、騰訊等地圖,注冊賬號,申請密鑰才可以使用。有空了可以去多看看,多了解了解!
作網(wǎng)頁時,經(jīng)常需要設置頁面的基本信息,如頁面的標題、作者、和其他文檔的關(guān)系等。為此HTML提供了一系列的標簽,這些標簽通常都寫在head標簽內(nèi),因此被稱為頭部相關(guān)標簽。本節(jié)將具體介紹常用的頭部標簽。
1.設置頁面標題標簽<title>
<title>標簽用于定義HTML頁面的標題,即給網(wǎng)頁取一個名字,該標簽必須位于<head>標簽之內(nèi)。一個HTML文檔只能包含一對<title></title>標簽,<title></title>之間的內(nèi)容將顯示在瀏覽器窗口的標題欄中。例如將頁面標題設置為“輕松學習HTML5”,具體代碼如下:
<title>輕松學習HTML5</title>
上述代碼對應的頁面標題效果如圖1所示。
圖 1設置頁面標題標簽<title>
2.定義頁面元信息標簽<meta />
<meta />標簽用于定義頁面的元信息(元信息不會顯示在頁面中),可重復出現(xiàn)在<head>頭部標簽中。在HTML中,<meta />標簽是一個單標簽,本身不包含任何內(nèi)容,僅僅表示網(wǎng)頁的相關(guān)信息。通過<meta />標簽的兩組屬性,可以定義頁面的相關(guān)參數(shù)。例如為搜索引擎提供網(wǎng)頁的關(guān)鍵字、作者姓名、內(nèi)容描述,以及定義網(wǎng)頁的刷新時間等。下面介紹<meta />標簽常用的幾組設置,具體如下。
1)<meta name="名稱" content="值" />
在<meta />標簽中使用name和content屬性可以為搜索引擎提供信息,其中name屬性用于提供搜索內(nèi)容的名稱,content屬性提供對應的搜索內(nèi)容值,具體應用如下。
●設置網(wǎng)頁關(guān)鍵字,例如某圖片網(wǎng)站的關(guān)鍵字設置:
<meta name="keywords" content="千圖網(wǎng),免費素材下載,千圖網(wǎng)免費素材圖庫,矢量圖,矢量圖庫,圖片素材,網(wǎng)頁素材,免費素材,PS素材,網(wǎng)站素材,設計模板,設計素材, 網(wǎng)頁模板免費下載,千圖,素材中國,素材,免費設計,圖片" />
其中name屬性的值為keywords,用于定義搜索內(nèi)容名稱為網(wǎng)頁關(guān)鍵字,content屬性的值用于定義關(guān)鍵字的具體內(nèi)容,多個關(guān)鍵字內(nèi)容之間可以用“,”分隔。
●設置網(wǎng)頁描述,例如某圖片網(wǎng)站的描述信息設置:
<meta name="description" content="專注免費設計素材下載的網(wǎng)站!提供矢量圖素材,矢量背景圖片,矢量圖庫,還有psd素材,PS素材,設計模板,設計素材,PPT素材,以及網(wǎng)頁素材,網(wǎng)站素材,網(wǎng)頁圖標免費下載" />
其中name屬性的值為description,用于定義搜索內(nèi)容名稱為網(wǎng)頁描述,content屬性的值用于定義描述的具體內(nèi)容。需要注意的是網(wǎng)頁描述的文字不必過多,能夠描述清晰即可。
●設置網(wǎng)頁作者,例如可以為網(wǎng)站增加作者信息:
<meta name="author" content="網(wǎng)絡部" />
其中name屬性的值為author,用于定義搜索內(nèi)容名稱為網(wǎng)頁作者,content屬性的值用于定義具體的作者信息。
2)<meta http-equiv="名稱" content="值" / >
在<meta />標簽中使用http-equiv和content屬性可以設置服務器發(fā)送給瀏覽器的HTTP頭部信息,為瀏覽器顯示該頁面提供相關(guān)的參數(shù)標準。其中,http-equiv屬性提供參數(shù)類型,content屬性提供對應的參數(shù)值。默認會發(fā)送<meta http-equiv="Content-Type" content="text/html" / >,通知瀏覽器發(fā)送的文件類型是HTML。具體應用如下:
●設置字符集,例如某圖片官網(wǎng)字符集的設置:
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
其中http-equiv屬性的值為Content-Type,content屬性的值為text/html和charset=gbk,兩個屬性值中間用“;”隔開。這段代碼用于說明當前文檔類型為HTML,字符集為gbk(中文編碼)。目前最常用的國際化字符集編碼格式是utf-8,常用的國內(nèi)中文字符集編碼格式主要是gbk和gb2312。當用戶使用的字符集編碼不匹配當前瀏覽器時,網(wǎng)頁內(nèi)容就會出現(xiàn)亂碼。
值得一提的是,在HTML5中,簡化了字符集的寫法,變?yōu)槿缦滤敬a。
<meta charset="utf-8">
●設置頁面自動刷新與跳轉(zhuǎn),例如定義某個頁面10秒后跳轉(zhuǎn)至百度:
<meta http-equiv="refresh" content="10; url= https://www.baidu.com/" />
其中http-equiv屬性的值為refresh,content屬性的值為數(shù)值和url地址,中間用“;”隔開,用于指定在特定的時間后跳轉(zhuǎn)至目標頁面,該時間默認以秒為單位。
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。