91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

(JQuery學習筆記)利用jquery制作網頁導航定位

發布時間:2020-06-16 11:50:07 來源:網絡 閱讀:849 作者:w1sw 欄目:web開發

    我們在日常瀏覽網站中,由于網站包含信息量大,例如購物網站中會有許多商品。那么對于這樣的情況,往往會有導航欄來幫助我們迅速的找到自己想要的信息。例如圖中所示,左側是商品列表,右側是商品分類導航欄。

(JQuery學習筆記)利用jquery制作網頁導航定位

我們現在需要做到的效果是:

    1、點擊某個商品分類,自動跳轉至具體的商品列表。

    2、在鼠標滾動瀏覽商品的同時,根據左側的商品信息的變化情況,右側的分類名稱會自動標紅。表示現在瀏覽的商品正是該分類下的商品。


實現的基本思路:

    1、設置錨點。在導航欄的<a>標簽中,設置"href"屬性為各個展示商品信息的<div>標簽的"id"屬性。

    2、自動刪除/添加樣式。當鼠標瀏覽到某一分類時,自動給右側導航欄中該分類名稱添加一個“當前樣式”;當鼠標繼續瀏覽,離開該分類時,自動刪除該分類的“當前樣式”,并同理給下一個分類添加“當前樣式”。


根據思路實現過程:

    1、首先創建一些示例的代碼:

        ...
<body>
    <div id="menu">         <!--商品分類導航欄-->
        <ul>
            <li><a href="#one">1F手機</a></li>
            <li><a href="#two">2F電腦</a></li>
            <li><a href="#three">3F家電</a></li>
            <li><a href="#four">4F服飾</a></li>
            <li><a href="#five">5F鞋子</a></li>
        </ul>
    </div>
    <div id="content">        <!--商品信息列表-->
        <div id="one" class="test">...(具體商品)...</div>
        <div id="two" class="test">...(具體商品)...</div>
        <div id="three" class="test">...(具體商品)...</div>
        <div id="four" class="test">...(具體商品)...</div>
        <div id="five" class="test">...(具體商品)...</div>
    </div>
</body>
        ...

    以上就完成了該網站的雛形(在此不展示css的制作過程),并且點擊<ul>標簽中的各個<li>標簽都能跳轉到相應的<div>標簽。

    

    2、設置“當前樣式”:

        為了簡單起見,我們設置一個表示當前商品分類的樣式,如下所示:

.current{
    background:red;
}

        然后給導航欄中的“1F手機”設置一個“當前樣式”,默認我們是從頭開始瀏覽網站。接下來需要做的是利用jquery根據商品信息,自動給導航欄中的分類添加“當前樣式”。

<script>
    $(document).ready(function() {
    $(window).scroll(function(){
var scrolltop = $(document).scrollTop();
console.log(scrolltop );    //目的是為了在控制臺中查看滾動條的高度
var currentSorts= ""; 
var commoditys = $(".test");    //所有class為"test"的div
$.each(commoditys ,function() {
var divTop = $(this).offset().top;
console.log(divTop );
if (scrolltop >divTop ) {
       currentSorts= "#" + $(this).attr("id");//獲取到當前所在的商品分類 
}else{
return false;
}
});
//給對應分類設置“當前樣式”
var currentClass = $("#menu").find('.current');    //找到目前樣式所在的分類
if (currentSorts&&currentClass .attr("href")!=currentSorts) {
//判定條件:currentSorts是否為空  &&  當前樣式所在的分類的id是否等于currentSorts
        currentClass .removeClass("current");
$("#menu").find("[href="+currentSorts+"]").addClass("current");
}
    });
});
</script>

        這就已經完成了導航欄中分類名跟隨商品變化而變化的效果了,在這里需要解釋一下,這個效果實現的關鍵點在于,怎么樣根據左側的div區域的高度和右側的滾動條的高度去判定在哪一個分類。

    在代碼中我們看到“var scrolltop = $(document).scrollTop();”指的是滾動條的高度,如圖:

(JQuery學習筆記)利用jquery制作網頁導航定位

    另外,var divTop = $(this).offset().top;指的是該div距離瀏覽器頂部的高度,如圖:

(JQuery學習筆記)利用jquery制作網頁導航定位

    所以我們可以根據兩者的高度,來判斷某個div區域是屬于哪個商品分類,從而對其分類名稱進行樣式的改變。

    最后還有一個小小的問題,就是錨點定位偏移的情況。

    可能會出現的是,點擊某一分類,自動跳轉的并不是對應div的區域,或是偏移了。參考了網上各位前輩的做法,目前我所知道的是,用兩個屬性——padding-top和maring-top來解決偏移問題,具體方法如下:

    padding-top用于解決錨點區域與頂部的偏移量

    margin-top用于解決錨點區域與錨點區域之間因設置的padding-top而產生的不必要偏移量

    padding-top用正值,maring-top用負值,二者數值一樣    

    若發現最底部的錨點區域有高度不夠問題,則可以給底部錨點區域設置一個min-height解決

    min-height:屬性設置元素的最小高度。


如果以后我還了解到有其他的方法,也會在這寫出來,歡迎各位提出建議或問題一起交流。




代碼學習參考:《慕課網》,網頁導航欄的制作。感謝。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泉县| 郸城县| 兴城市| 塔城市| 江山市| 综艺| 延边| 即墨市| 辽宁省| 皋兰县| 澄江县| 阿拉善盟| 通城县| 荆门市| 临夏市| 襄樊市| 达尔| 丹阳市| 察雅县| 黔南| 贞丰县| 阳高县| 旌德县| 遂川县| 淅川县| 舞钢市| 文成县| 逊克县| 邯郸县| 北票市| 洛扎县| 桐城市| 黄浦区| 关岭| 北碚区| 茂名市| 红安县| 呼和浩特市| 长顺县| 绥化市| 佛坪县|