最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS 實(shí)現(xiàn)導(dǎo)航欄懸停效果(續(xù)2)

 更新時(shí)間:2013年09月24日 16:07:30   作者:  
發(fā)現(xiàn)原來(lái)的方法還有是有幾個(gè)問(wèn)題:首先Js代碼冗余,導(dǎo)航條上的Tab是用js實(shí)現(xiàn)跳轉(zhuǎn)而不是超鏈接,還有導(dǎo)航條本身用fixed定位,但沒(méi)有被設(shè)置為水平居中,而是在JS中更改left值使其居中
JS-實(shí)現(xiàn)導(dǎo)航欄懸停
JS-實(shí)現(xiàn)導(dǎo)航欄懸停(續(xù))

用Jquery重新寫(xiě)完這個(gè)頁(yè)面之后,發(fā)現(xiàn)原來(lái)的方法還有是有幾個(gè)問(wèn)題:

1.首先Js代碼冗余,導(dǎo)航條上的Tab是用js實(shí)現(xiàn)跳轉(zhuǎn)而不是超鏈接;

2.還有導(dǎo)航條本身用fixed定位,但沒(méi)有被設(shè)置為水平居中,而是在JS中更改left值使其居中。

問(wèn)題2就導(dǎo)致了,當(dāng)瀏覽器窗口尺寸發(fā)生變化的時(shí)候,瀏覽器中的div的位置都發(fā)生了變化,也就導(dǎo)致了沒(méi)法通過(guò)頁(yè)面中的div動(dòng)態(tài)的給已fixed定位的導(dǎo)航條來(lái)定位。

最終的代碼更改如下:

test.html
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript" src="test.js"></script>
<link rel="stylesheet" type="text/css" href="test.css"></link>
<title>Test</title>
</head>
<body>
<div id="main_div" class="main">
<div id="content_div1" class="content">1</div>
<div id="nav" class="navigation">
<a href="#content_div3"><div id="tab_div1" class="tab">tab1</div></a>
<a href="#content_div4"><div id="tab_div2" class="tab">tab2</div></a>
<a href="#content_div5"><div id="tab_div3" class="tab">tab3</div></a>
<a href="#content_div6"><div id="tab_div4" class="tab">tab4</div></a>
</div>
<div id="content_div2" class="content">2</div>
<div id="content_div3" class="content">3</div>
<div id="content_div4" class="content">4</div>
<div id="content_div5" class="content">5</div>
<div id="content_div6" class="content">6</div>
<div id="content_div7" class="content">7</div>
</div>
</body>
</html>

test.js
復(fù)制代碼 代碼如下:

//記錄導(dǎo)航條原來(lái)在頁(yè)面上的位置
var naviga_offsetTop = 0;

//使導(dǎo)航條,懸停在頂部
function naviga_stay_top(){
//獲取滾動(dòng)距離
var scrollTop = $(document).scrollTop();
//如果向下滾動(dòng)的距離大于原來(lái)導(dǎo)航欄離頂部的距離
//直接將導(dǎo)航欄固定到可視區(qū)頂部
if( scrollTop > naviga_offsetTop ){
$("#nav").css({"top": "0px"});
} else {
//如果向下滾動(dòng)的距離小原來(lái)導(dǎo)航欄離頂部的距離,則重新計(jì)算導(dǎo)航欄的位置
$("#nav").css({"top": naviga_offsetTop - scrollTop + "px"});
}
}

function onload_function(){
//記錄初始狀態(tài)導(dǎo)航欄的高度
naviga_offsetTop = $("#nav").attr("offsetTop");

//綁定滾動(dòng)和鼠標(biāo)事件
$(window).bind("scroll", naviga_stay_top);
$(window).bind("mousewheel",naviga_stay_top);
$(document).bind("scroll", naviga_stay_top);
$(document).bind("mousewheel",naviga_stay_top);
}

$(document).ready( onload_function );

test.css:注意navigation類的樣式
復(fù)制代碼 代碼如下:

div.main{
width: 800px;
background: #CCC;
margin: 10px auto 0;
position: relative;
}

div.content{
width: 800px;
height: 400px;
background: yellow;
margin: 10px auto 0;
}

div.navigation{
width: 800px;
height: 40px;
background: red;
margin: 0 auto;
top: 400px;
left:50%;
position: fixed;
margin-left:-400px;
}

div.tab{
width: 195px;
height: 40px;
background: blue;
float: left;
margin-left: 5px;
}

總結(jié):

出現(xiàn)這個(gè)問(wèn)題的原因還是CSS的布局定位不熟悉。

在這里沒(méi)法通過(guò):margin 0 auto;來(lái)設(shè)置導(dǎo)航條div水平居中,因?yàn)閒ixed定位的元素沒(méi)法通過(guò)這種方式來(lái)定位。

通過(guò)margin 0 auto;來(lái)定位的元素不能為fixed定位,并且其父元素必須要有固定的寬度。

那么怎么使fixed定位的元素水平居中呢?

通過(guò):left: 50%,將該元素的最左邊與父元素寬的中點(diǎn)對(duì)其,然后通過(guò)marg-left: [該元素寬度的1/2]px;來(lái)將這個(gè)元素向左移動(dòng)它的寬度的一般,從而使這個(gè)元素居中。

相關(guān)文章

  • 原生js實(shí)現(xiàn)抽獎(jiǎng)小游戲

    原生js實(shí)現(xiàn)抽獎(jiǎng)小游戲

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)抽獎(jiǎng)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • JS仿JQuery選擇器功能

    JS仿JQuery選擇器功能

    本文主要介紹了JS仿JQuery選擇器功能的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • window.location.hash 使用說(shuō)明

    window.location.hash 使用說(shuō)明

    location是javascript里面管理地址欄的內(nèi)置對(duì)象.
    2010-11-11
  • JS實(shí)現(xiàn)點(diǎn)擊文字對(duì)應(yīng)DIV層不停閃動(dòng)效果的方法

    JS實(shí)現(xiàn)點(diǎn)擊文字對(duì)應(yīng)DIV層不停閃動(dòng)效果的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊文字對(duì)應(yīng)DIV層不停閃動(dòng)效果的方法,實(shí)例分析了javascript操作div層的效果,非常實(shí)用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 由淺入深講解Javascript繼承機(jī)制與simple-inheritance源碼分析

    由淺入深講解Javascript繼承機(jī)制與simple-inheritance源碼分析

    Javascript語(yǔ)言對(duì)繼承實(shí)現(xiàn)的并不好,需要工程師自己去實(shí)現(xiàn)一套完整的繼承機(jī)制。下面我們由淺入深的系統(tǒng)掌握使用javascript繼承的技巧,對(duì)javascript繼承相關(guān)知識(shí)感興趣的朋友一起看看吧
    2015-12-12
  • WEB高性能開(kāi)發(fā)之瘋狂的HTML壓縮

    WEB高性能開(kāi)發(fā)之瘋狂的HTML壓縮

    一篇隨筆中網(wǎng)友 skyaspnet 問(wèn)我如何壓縮HTML,當(dāng)時(shí)回答是推薦他使用gzip,后來(lái)想想,要是能把所有的html,jsp(aspx)在運(yùn)行前都?jí)嚎s成1行未免不是一件好事啊。
    2010-06-06
  • Uni-app返回上一頁(yè)面并攜帶參數(shù)的實(shí)現(xiàn)方法

    Uni-app返回上一頁(yè)面并攜帶參數(shù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Uni-app返回上一頁(yè)面并攜帶參數(shù)的實(shí)現(xiàn)方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • javascript 將共享屬性遷移到原型中去的實(shí)現(xiàn)方法

    javascript 將共享屬性遷移到原型中去的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇javascript 將共享屬性遷移到原型中去的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • 關(guān)于js new Date() 出現(xiàn)NaN 的分析

    關(guān)于js new Date() 出現(xiàn)NaN 的分析

    在一個(gè)項(xiàng)目中需要進(jìn)行日期的格式化,后臺(tái)傳到前端是時(shí)間的整數(shù)(Date.getTime),當(dāng)后臺(tái)數(shù)據(jù)返回字符串時(shí),發(fā)現(xiàn)轉(zhuǎn)換日期時(shí)在ie下變成NaN,但是真的是這樣嗎?接下來(lái)我們慢慢分析
    2012-10-10
  • JavaScript通過(guò)元素的ID和name設(shè)置樣式

    JavaScript通過(guò)元素的ID和name設(shè)置樣式

    這篇文章主要介紹了JavaScript通過(guò)元素的ID和name設(shè)置其樣式,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以測(cè)試下
    2014-07-07

最新評(píng)論

曲周县| 巫山县| 车致| 项城市| 平顶山市| 溆浦县| 泸州市| 金乡县| 观塘区| 集安市| 北票市| 二连浩特市| 酒泉市| 建平县| 淮安市| 南和县| 徐水县| 全椒县| 峨山| 富平县| 阳东县| 临邑县| 防城港市| 黑水县| 香港 | 乐亭县| 横峰县| 泊头市| 五河县| 吉林省| 韶关市| 铁岭县| 达孜县| 夹江县| 阿图什市| 麦盖提县| 永胜县| 吴忠市| 哈巴河县| 建始县| 临沭县|