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è)面內(nèi)跳轉(zhuǎn)的錨點(diǎn)設(shè)置
頁(yè)面內(nèi)的跳轉(zhuǎn)需要兩步:
方法一:
①:設(shè)置一個(gè)錨點(diǎn)鏈接<a href="#miao">去找喵星人</a>;(注意:href屬性的屬性值最前面要加#)
②:在頁(yè)面中需要的位置設(shè)置錨點(diǎn)<a name="miao"></a>;(注意:a標(biāo)簽中要寫一個(gè)name屬性,屬性值要與①中的href的屬性值一樣,不加#)標(biāo)簽中按需填寫必要的文字,一般不寫內(nèi)容
方法二:
①:同方法一的①
②:設(shè)置錨點(diǎn)的位置 <h3 id="miao">喵星人基地</h3>;在要跳轉(zhuǎn)到的位置的標(biāo)簽中添加一個(gè)id屬性,屬性值與①中href的屬性值一樣,不加#
方法二不用單獨(dú)添加一個(gè)a標(biāo)簽來(lái)專門設(shè)置錨點(diǎn) ,只在需要的位置的標(biāo)簽中添加一個(gè)id即可。
小案例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>萌寵集結(jié)號(hào)</title>
</head>
<body>
<ul>
<li><a href="#miao">去找喵星人</a></li>
<li><a href="#wang">去找汪星人</a></li>
<li><a href="#meng">其他萌物</a></li>
</ul>
<a name="miao"></a><!--設(shè)置錨點(diǎn)方法1-->
<h3 id="miao">喵星人基地</h3><!--設(shè)置錨點(diǎn)方法2-->
<p>喵喵喵~</p>
<p>喵喵喵~</p>
<p>喵喵喵~</p>
<p>喵喵喵~</p>
<p>喵喵喵~</p>
<p>喵喵喵~</p>
<a name="wang"></a>
<p>汪汪汪~(yú)</p>
<p>汪汪汪~(yú)</p>
<p>汪汪汪~(yú)</p>
<p>汪汪汪~(yú)</p>
<p>汪汪汪~(yú)</p>
<p>汪汪汪~(yú)</p>
<a name="meng"></a>
<p>萌萌萌~</p>
<p>萌萌萌~</p>
<p>萌萌萌~</p>
<p>萌萌萌~</p>
<p>萌萌萌~</p>
<p>萌萌萌~</p>
</body>
</html>
二、跨頁(yè)面跳轉(zhuǎn)
①:設(shè)置錨點(diǎn)鏈接,在href中的路徑后面追加:#+錨點(diǎn)名,即可
如:<a href="萌寵集結(jié)號(hào).html#miao">跳轉(zhuǎn)到萌寵集結(jié)號(hào)頁(yè)面</a>
②:要跳轉(zhuǎn)到的頁(yè)面中要設(shè)置錨點(diǎn),方法見(jiàn)一種的步驟②,兩個(gè)方法任選其一。
輯導(dǎo)語(yǔ):在上下滾動(dòng)頁(yè)面時(shí),除了出現(xiàn)吸頂,還會(huì)出現(xiàn)吸底、錨點(diǎn)等情況,那么這些都是在滾動(dòng)頁(yè)面時(shí)需要注意的控件。本文作者結(jié)合最近工作中的實(shí)際項(xiàng)目,對(duì)于滑動(dòng)時(shí)的吸頂、錨點(diǎn)規(guī)則方式的總結(jié)心得,一起來(lái)學(xué)習(xí)下吧。
上下滾動(dòng)頁(yè)面時(shí),除了出現(xiàn)吸頂,還會(huì)出現(xiàn)吸底、錨點(diǎn)等情況,這些都是在滾動(dòng)頁(yè)面時(shí)需要注意的控件。
結(jié)合最近工作中的實(shí)際項(xiàng)目,Cassie將滑動(dòng)用到的場(chǎng)景進(jìn)行了提煉,總結(jié)出這份控件設(shè)計(jì)規(guī)范,一起來(lái)學(xué)習(xí)吸底、錨點(diǎn)是如何在APP以及PC端應(yīng)用的吧~
PC端及移動(dòng)端的底部有一些操作欄,比如表單的填寫操作或者支付按鈕的放置,移動(dòng)端底部還會(huì)有全局的導(dǎo)航欄,這些會(huì)占用一定的空間,可以根據(jù)使用場(chǎng)景靈活選擇吸底方式。
需要注意吸底的是具有操作價(jià)值的內(nèi)容,吸底元素包括操作按鈕、 引導(dǎo)操作、移動(dòng)端的導(dǎo)航欄…
PC端在表單內(nèi)容較多、查看內(nèi)容文章、需要引導(dǎo)用戶操作比如支付等場(chǎng)景下,當(dāng)用戶需滑動(dòng)查看更多內(nèi)容,可將操作類按鈕吸底,需要吸底的內(nèi)容可以根據(jù)布局調(diào)整顯示。
在左圖PC端釘釘郵箱中,屬于編輯表單類的,將發(fā)送操作按鈕固定吸底,用戶只需要修改部分字段,更利于快速完成編輯;在PC端簡(jiǎn)書(shū)中,屬于內(nèi)容展示類的,出于增強(qiáng)互動(dòng)的目的,將評(píng)論、點(diǎn)贊等操作固定在底部增加其操作便捷性。
考試星PC端采用左中右布局,將提交考試放在右側(cè)底部,可以不占用考試內(nèi)容高度空間;百度學(xué)術(shù)PC端采用左右布局,右側(cè)是一些介紹內(nèi)容,所以操作按鈕固定在和之有直接關(guān)系的左側(cè)內(nèi)容底部。
移動(dòng)端底部常會(huì)有一些吸底的控件,比如底部導(dǎo)航欄、主操作按鈕、需要引導(dǎo)或便捷用戶操作的控件等。
一級(jí)頁(yè)面導(dǎo)航固定在底部,當(dāng)該頁(yè)面有主按鈕,比如結(jié)算等則將該欄放到導(dǎo)航欄上面,如果還有引導(dǎo)類或便捷操作類控件則再放到主操作欄上面。
移動(dòng)端,特別是購(gòu)物車場(chǎng)景存在多條吸底內(nèi)容。
具有引導(dǎo)性的操作,為了配合主操作而出現(xiàn),也是固定在底部,但位于底部操作上面,在特定場(chǎng)景下出現(xiàn)。
比如閑魚(yú)提供了一些常用問(wèn)題,可以跟賣家交流更便捷;考拉海購(gòu)購(gòu)物車的優(yōu)惠引導(dǎo)也是固定在底部,類似的還有京東、淘寶等購(gòu)物車。
當(dāng)PC端展示內(nèi)容分多段,且其中有需要引導(dǎo)用戶操作的按鈕,建議在滾動(dòng)到該段時(shí)將該操作按鈕吸底,滾動(dòng)到另外一段內(nèi)容后再取消吸底。
考拉海購(gòu)PC端的購(gòu)物車頁(yè)面,如果購(gòu)物車內(nèi)容比較多,支付欄是吸底的,向上滾動(dòng)到購(gòu)物車商品內(nèi)容結(jié)束后,支付欄不吸底,下面展示推薦商品。
京東官網(wǎng)的購(gòu)物車也是這種方式,但移動(dòng)端主流購(gòu)物車的支付都是固定在底部的。
吸底內(nèi)容可以根據(jù)具體情況顯示或隱藏,這種非固定的方式常用于移動(dòng)端閱讀及查看話題評(píng)論時(shí)。
在微信讀書(shū)的閱讀狀態(tài)時(shí),為了給讀者提供沉浸式體驗(yàn),隱藏操作欄,上滑時(shí)再顯示;在知乎熱榜瀏覽主題內(nèi)容時(shí),主操作欄跟在內(nèi)容下面,當(dāng)頁(yè)面滑動(dòng)后主操作欄改變布局樣式吸底展示。
錨點(diǎn)以回到頂部也屬于頁(yè)面滾動(dòng)時(shí)需要的控件,配合滾動(dòng)條用于跳轉(zhuǎn)到頁(yè)面指定位置。
PC端和移動(dòng)端都可以在內(nèi)容過(guò)多時(shí)使用回到頂部控件,PC端的錨點(diǎn)定位類似導(dǎo)航一樣可以放到頁(yè)面左側(cè)或者右側(cè),但其實(shí)只是頁(yè)面的內(nèi)容定位。
移動(dòng)端可以利用滾動(dòng)條做時(shí)間軸類型的定位或者分頁(yè)定位。
當(dāng)PC端頁(yè)面內(nèi)容區(qū)域比較長(zhǎng)時(shí)比如瀑布流的使用,用戶需要頻繁返回頂部查看相關(guān)內(nèi)容時(shí),可以滾動(dòng)后出現(xiàn)回到頂部控件。
花瓣P(guān)C端頁(yè)面滾動(dòng)后,右下角有一些功能操作,滾動(dòng)后出現(xiàn)回到頂部控件。
當(dāng)頁(yè)面內(nèi)容區(qū)域比較長(zhǎng)時(shí);當(dāng)用戶需要頻繁返回頂部查看相關(guān)內(nèi)容時(shí),可以使用回到頂端返回頁(yè)面頂部。
如果當(dāng)前頁(yè)面是主頁(yè),可以滾動(dòng)后主頁(yè)按鈕便成回到頂部按鈕,這樣可以避免遮擋內(nèi)容,優(yōu)化閱讀體驗(yàn)。
京東購(gòu)物車頁(yè)面除了展示添加到購(gòu)物車的商品外,底部還有推薦上面,滾動(dòng)后出現(xiàn)回到頂部控件;每日優(yōu)鮮APP頁(yè)面滾動(dòng)后,導(dǎo)航的主頁(yè)按鈕變成回到頂部按鈕,優(yōu)化體驗(yàn),類似的還有淘寶、餓了么、考拉等主頁(yè)有瀑布流的內(nèi)容。
當(dāng)PC端有多條組合內(nèi)容時(shí),可以左側(cè)做一個(gè)錨點(diǎn)定位配合滾動(dòng)條快速定位到頁(yè)面需要查看的內(nèi)容。
當(dāng)PC端使用上下布局時(shí),且內(nèi)容區(qū)域居中固定時(shí),錨點(diǎn)懸浮在左側(cè)顯示,當(dāng)屏幕小于一定尺寸時(shí),錨點(diǎn)縮小懸浮于頁(yè)面左側(cè),鼠標(biāo)移入時(shí)再顯示。
在優(yōu)設(shè)的網(wǎng)址導(dǎo)航中,由于導(dǎo)航分為多個(gè)類型,所以將具體類型名稱放到左側(cè)展示,能快速定位到需要的內(nèi)容。
當(dāng)PC端左側(cè)有導(dǎo)航,錨點(diǎn)定位可以放到右側(cè),常用于閱讀文章等場(chǎng)景。
在Ant design的組件頁(yè),由于左側(cè)有二級(jí)導(dǎo)航,所以將頁(yè)面的錨點(diǎn)定位放在右側(cè),類似的還有語(yǔ)雀文章閱讀。
當(dāng)有時(shí)間類型的內(nèi)容比如瀏覽照片時(shí),可以采取時(shí)間軸定位的方式快速滑動(dòng)到需要查看的內(nèi)容。
內(nèi)容過(guò)多的情況下也可以采取分頁(yè)的形式,滾動(dòng)后將分頁(yè)及回到頂部固定在底部右下角位置。
例如寶寶樹(shù)APP采用時(shí)間軸的方式快速定位,默認(rèn)狀態(tài)定位控件縮小固定在右側(cè),滑動(dòng)時(shí)控件變大顯示具體時(shí)間,方便用戶按時(shí)間快速查找照片,類似的還有百度網(wǎng)盤里的照片瀏覽。
豆瓣APP在電影的討論模塊,選擇一個(gè)討論查看詳情滾動(dòng)后底部顯示回復(fù)的定位錨點(diǎn),控件放在操作欄上面吸底展示。
作者: Cassie
原文鏈接:www.zcool.com.cn/article/ZMTM0ODkzMg==.html
本文由 @ Cassie 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
目中經(jīng)常會(huì)出現(xiàn)點(diǎn)擊跳轉(zhuǎn)錨點(diǎn)的方法,比如給一個(gè)a標(biāo)簽一個(gè)href=“#錨點(diǎn)”,然后要跳的錨點(diǎn)給個(gè)id=“錨點(diǎn)”,這樣就實(shí)現(xiàn)簡(jiǎn)單的跳轉(zhuǎn),但是這樣在url地址欄后面都會(huì)出現(xiàn)一個(gè)諸如www.csdn.net#錨點(diǎn),然后你點(diǎn)擊給一次后退都是退回上一個(gè)選擇的錨點(diǎn)url,這里總結(jié)一些跳轉(zhuǎn)錨點(diǎn)的方法。
<!DOCTYPE html>
<html>
<head>
<style>
div {
height: 800px;
width: 400px;
border: 2px solid black;
}
h2 {
position: fixed;
margin:50px 500px;
}
</style>
</head>
<body>
<h2>
<a href="#div1">to div1</a>
<a href="#div2">to div2</a>
<a href="#div3">to div3</a>
</h2>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
</body>
</html>
這種方法的缺點(diǎn)是點(diǎn)擊錨點(diǎn)之后,瀏覽器的URL會(huì)發(fā)生變化,如果刷新可能會(huì)出現(xiàn)問(wèn)題。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#div1Link").click(function() {
$("html, body").animate({
scrollTop: $("#div1").offset().top }, {duration: 500,easing: "swing"});
return false;
});
$("#div2Link").click(function() {
$("html, body").animate({
scrollTop: $("#div2").offset().top }, {duration: 500,easing: "swing"});
return false;
});
$("#div3Link").click(function() {
$("html, body").animate({
scrollTop: $("#div3").offset().top }, {duration: 500,easing: "swing"});
return false;
});
});
</script>
注意:運(yùn)行上面的腳本的之前,先將為錨點(diǎn)增加相應(yīng)的id,同時(shí)去掉href屬性。
$("html, body")可以替換為響應(yīng)的div,如果不起作用,試著給該div增加overflow:scroll屬性。
另外,腳本可以進(jìn)一步優(yōu)化,自己來(lái)試試
這樣做的好處是:URL地址不會(huì)變,同時(shí)點(diǎn)擊錨點(diǎn)時(shí)會(huì)自動(dòng)響應(yīng)scroll事件,不需要重新綁定。
缺點(diǎn)是:如果頁(yè)面復(fù)雜的話,偏移值可能會(huì)發(fā)生變化需要算法輔助。
document.getElementById("divId").scrollIntoView();
比如:
document.querySelector("#roll1").onclick = function(){
document.querySelector("#roll1_top").scrollIntoView(true);
}
這里就是點(diǎn)擊id是#roll1的元素可以滾動(dòng)到id是#roll1_top的地方,這里的#roll1和#roll1_top最好是一一對(duì)應(yīng)的,
這種方法的好處,是URL不會(huì)變,同時(shí)能夠響應(yīng)相應(yīng)的scroll事件,不需要算法什么的。代碼如下:
<html>
<head>
<title>HTML5_ScrollInToView方法</title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function(){
/*
如果滾動(dòng)頁(yè)面也是DOM沒(méi)有解決的一個(gè)問(wèn)題。為了解決這個(gè)問(wèn)題,瀏覽器實(shí)現(xiàn)了一下方法,
以方便開(kāi)發(fā)人員如何更好的控制頁(yè)面的滾動(dòng)。在各種專有方法中,HTML5選擇了scrollIntoView()
作為標(biāo)準(zhǔn)方法。
scrollIntoView()可以在所有的HTML元素上調(diào)用,通過(guò)滾動(dòng)瀏覽器窗口或某個(gè)容器元素,
調(diào)用元素就可以出現(xiàn)在視窗中。如果給該方法傳入true作為參數(shù),或者不傳入任何參數(shù),那么
窗口滾動(dòng)之后會(huì)讓調(diào)動(dòng)元素頂部和視窗頂部盡可能齊平。如果傳入false作為參數(shù),調(diào)用元素
會(huì)盡可能全部出現(xiàn)在視口中(可能的話,調(diào)用元素的底部會(huì)與視口的頂部齊平。)不過(guò)頂部
不一定齊平,例如:
//讓元素可見(jiàn)
document.forms[0].scrollIntoView();
當(dāng)頁(yè)面發(fā)生變化時(shí),一般會(huì)用這個(gè)方法來(lái)吸引用戶注意力。實(shí)際上,為某個(gè)元素設(shè)置焦點(diǎn)也
會(huì)導(dǎo)致瀏覽器滾動(dòng)顯示獲得焦點(diǎn)的元素。
支持該方法的瀏覽器有 IE、Firefox、Safari和Opera。
*/
document.querySelector("#roll1").onclick = function(){
document.querySelector("#roll_top").scrollIntoView(false);
}
document.querySelector("#roll2").onclick = function(){
document.querySelector("#roll_top").scrollIntoView(true);
}
}
</script>
<style type="text/css">
#myDiv{
height:900px;
background-color:gray;
}
#roll_top{
height:900px;
background-color:green;
color:#FFF;
font-size:50px;
position:relative;
}
#bottom{
position:absolute;
display:block;
left;0;bottom:0;
}
</style>
</head>
<body>
<button id="roll1">scrollIntoView(false)</button>
<button id="roll2">scrollIntoView(true)</button>
<div id="myDiv"></div>
<div id="roll_top">
scrollIntoView(ture)元素上邊框與視窗頂部齊平
<span id="bottom">scrollIntoView(false)元素下邊框與視窗底部齊平</span>
</div>
</body>
</html>
個(gè)人建議使用第四種方法。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。