模擬京東側邊欄

思路:

// 1. 獲取元素
// 1.1 獲取一組li
// 1.2 獲取一組類名為item的div
// 1.3 獲取類名為slide的div// 2. 循環遍歷給每一個li注冊onmouseenter,并且每一個li添加一個index表示索引
// 2.1 循環遍歷把所有的li的類名設置為'',把所有的item的display設置為none
// 2.2 讓當前的li突出顯示(加類名active)
// 2.3 獲取到當前的li的編號(加的索引)
// 2.4 通過編號找到對應的item項設置display為block// 3. 給類名為slide的div鼠標離開事件onmouseleave
// 3.1 循環遍歷把所有的li的類名設置為'',把所有的item的display設置為none
  <!-- 版心 --><div class="w"><div class="slide"><!-- 左側 --><div class="left"><ul><li><a href="#">主菜單項目1</a></li><li><a href="#">主菜單項目2</a></li><li><a href="#">主菜單項目3</a></li><li><a href="#">主菜單項目4</a></li><li><a href="#">主菜單項目5</a></li><li><a href="#">主菜單項目6</a></li><li><a href="#">主菜單項目7</a></li><li><a href="#">主菜單項目8</a></li><li><a href="#">主菜單項目9</a></li><li><a href="#">主菜單項目10</a></li><li><a href="#">主菜單項目11</a></li><li><a href="#">主菜單項目12</a></li><li><a href="#">主菜單項目13</a></li><li><a href="#">主菜單項目14</a></li><li><a href="#">主菜單項目15</a></li><li><a href="#">主菜單項目16</a></li></ul></div><!-- 右側 --><div class="right"><div class="item"><img src="images/01.png"></div><div class="item"><img src="images/02.png"></div><div class="item"><img src="images/03.png"></div><div class="item"><img src="images/04.png"></div><div class="item"><img src="images/05.png"></div><div class="item"><img src="images/06.png"></div><div class="item"><img src="images/07.png"></div><div class="item"><img src="images/08.png"></div><div class="item"><img src="images/09.png"></div><div class="item"><img src="images/10.png"></div><div class="item"><img src="images/11.png"></div><div class="item"><img src="images/12.png"></div><div class="item"><img src="images/13.png"></div><div class="item"><img src="images/14.png"></div><div class="item"><img src="images/15.png"></div><div class="item"><img src="images/16.png"></div></div></div></div>
* {margin: 0;padding: 0;
}body {background: #ccc;
}ul {list-style: none;
}.w {width: 1200px;margin: 0 auto;
}a {color: #666;text-decoration: none;
}a:hover {color: red;
}.slide {position: relative;
}/* 左側 */
.left {width: 200px;background: #fff;color: #ccc;position: absolute;}/* 左側的li */
.left ul li {padding-left: 20px;line-height: 30px;font-size: 14px;cursor: pointer;
}/* 左側li被選中的樣式 */
.left ul li.active {background: rgba(153, 153, 153, 0.657);
}/* 右側詳細菜單 */
.right {position: absolute;left: 200px;
}.right .item {display: none;border-left: 1px solid #eee;}.right .item.active {display: block;
}
// 1. 獲取元素
// 1.1 獲取一組li
var lis = document.querySelectorAll('li');
// 1.2 獲取一組類名為item的div
var items = document.querySelectorAll('.item');
// 1.3 獲取類名為slide的div
var slide = document.querySelector('.slide');
// 2. 循環遍歷給每一個li注冊onmouseenter,并且每一個li添加一個index表示索引
for (var i = 0; i < lis.length; i++) {lis[i].index = i;lis[i].onmouseenter = function () {// 2.1 循環遍歷把所有的li的類名設置為'',把所有的item的display設置為nonefor (var j = 0; j < lis.length; j++) {lis[j].className = '';items[j].style.display = 'none';}// 2.2 讓當前的li突出顯示(加類名active)this.className = 'active';// 2.3 獲取到當前的li的編號(加的索引)var num = this.index;// 2.4 通過編號找到對應的item項設置display為blockitems[num].style.display = 'block';};
}// 3. 給類名為slide的div鼠標離開事件onmouseleave
slide.onmouseleave = function () { // 3.1 循環遍歷把所有的li的類名設置為'',把所有的item的display設置為nonefor (var j = 0; j < lis.length; j++) {lis[j].className = '';items[j].style.display = 'none';}
};

實現效果:

在這里插入圖片描述

注意:

右邊欄模擬放的是圖片,如有需求,后期可以修改html結構樣式等,進行改變

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248197.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ViewPager + TabLayout + Fragment + MediaPlayer的使用

效果圖 在gradle里導包 implementation com.android.support:design:28.0.0 activity_main <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http…

vs code打開文件顯示的中文亂碼

這種情況下&#xff0c;一般是編碼格式導致的&#xff0c;操作辦法&#xff1a; 鼠標點擊之后&#xff0c;上面會彈出這個界面&#xff0c;雙擊選中 然后從UTF-8換到GB2312&#xff0c;或者自己根據情況&#xff0c;更改編碼格式 轉載于:https://www.cnblogs.com/132818Creator…

操作系統原理之內存管理(第四章第一部分)

內存管理的?標&#xff1a;實現內存分配和回收&#xff0c;提高內存空間的利用率和內存的訪問速度 一、存儲器的層次結構 寄存器&#xff1a;在CPU內部有一組CPU寄存器&#xff0c;寄存器是cpu直接訪問和處理的數據&#xff0c;是一個臨時放數據的空間。 高速緩沖區&#xff1…

自寫圖片遮罩層放大功能jquery插件源代碼,photobox.js 1.0版,不兼容IE6

版權聲明&#xff1a;本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn.net/u010480479/article/details/27362147 阿嚏~~~ 話說本屌絲沒啥開發插件的經驗&#xff0c;可是天公不作美&#xff0c;公司須要讓我自己開發個圖片放大的插件 但公司老大的話&#xff0…

黑白兩客進入頁面(1)

<div><span>歡</span><span>迎</span><span>來</span><span>到</span><span><strong>黑白兩客</strong></span><span>的</span><span>博</span><span>客</sp…

zookeeper學習之原理

一、zookeeper 是什么 Zookeeper是一個分布式協調服務&#xff0c;可用于服務發現&#xff0c;分布式鎖&#xff0c;分布式領導選舉&#xff0c;配置管理等。這一切的基礎&#xff0c;都是Zookeeper提供了一個類似于Linux文件系統的樹形結構&#xff08;可認為是輕量級的內存文…

mysql鎖表查詢和解鎖操作

解除正在死鎖的狀態有兩種方法&#xff1a; 第一種&#xff1a; 1.查詢是否鎖表 show OPEN TABLES where In_use > 0; 2.查詢進程&#xff08;如果您有SUPER權限&#xff0c;您可以看到所有線程。否則&#xff0c;您只能看到您自己的線程&#xff09; show processlist 3.殺…

前端js基礎智能機器人

<script>var flag true;while(flag) {//獲取用戶輸入信息 var code prompt(你好,我是小娜\n請輸入編號或者關鍵詞選擇功能,輸入Q(q)退出聊天\n1.計算\n2.時間\n3.笑話);switch( code ) {case q:case Q:alert(狠心的拋棄了小娜);flag false;break;case 1:case 計算:var…

2018-2019-2 《Java程序設計》第6周學習總結

20175319 2018-2019-2 《Java程序設計》第6周學習總結 教材學習內容總結 本周學習《Java程序設計》第七章和第十章&#xff1a; 內部類&#xff1a; 1.內部類可以使用外嵌類的成員變量和方法。 2.類體中不可以聲明類變量和類方法。 3.內部類僅供外嵌類使用。 4.類聲明可以使用s…

Hbase基本原理

一、hbase是什么 HBase 是一種類似于數據庫的存儲層&#xff0c;也就是說 HBase 適用于結構化的存儲。并且 HBase 是一種列式的分布式數據庫&#xff0c;是由當年的 Google 公布的 BigTable 的論文而生。HBase 底層依舊依賴 HDFS 來作為其物理存儲。 二、hbase的列式存儲結構 行…

最終的動畫函數封裝(2)

<button>點擊觸發1</button><button>點擊觸發2</button><div></div><style>*{margin: 0;padding: 0;}div{width: 100px;height: 100px;background-color: red;position: relative;top: 100px;left: 0;}.div1{display: block;width: …

第二次JAVA作業

感覺和C語言后面都差不多&#xff0c;就是開頭的定義和輸入輸出有點差別&#xff0c;多寫幾次應該能搞清楚開頭的定義&#xff0c;接下來是四道題目的截圖。 第一題&#xff1a; 第二題&#xff1a; 第三題&#xff1a; 第四題&#xff1a; 轉載于:https://www.cnblogs.com/YSh…

springmvc框架下Filter過濾器中過濾文件后 后續 controller為空的問題

開發過程中遇到過濾文件類型的問題&#xff0c;需要校驗文件的頭信息&#xff0c;&#xff0c;在過濾器中通過request獲取文件流信息 但是后續的controller中的MultipartFile一直都是空的&#xff0c;網上的網友的方案使用了一堆比如 使用BodyReaderHttpServletRequestWrapper…

js(Dom+Bom)第七天(1)

JavaScript BOM介紹 概念 BOM&#xff08;Browser Object Model&#xff09;即瀏覽器對象模型。 本質&#xff1a; 通過對象抽象瀏覽器中的一些功能 例如&#xff1a;&#xff08;刷新頁面&#xff0c;alert,confirm,pormpt,跳轉 ...&#xff09;BOM頂級對象 window對象是js中…

「十二省聯考 2019」皮配——dp

題目 【題目描述】 #### 題目背景一年一度的綜藝節目《中國好碼農》又開始了。本季度&#xff0c;好碼農由 Yazid、Zayid、小 R、大 R 四位夢想導師坐鎮&#xff0c;他們都將組建自己的夢想戰隊&#xff0c;并率領隊員向夢想發起沖擊。 四位導師的**派系**不盡相同&#xff0c;…

收藏一個在線思維導圖的制作網站

https://www.processon.com/ 轉載于:https://www.cnblogs.com/132818Creator/p/11447077.html

js(Dom+Bom)第七天(2)

webAPI 01-動畫封裝 應用到的知識點 點擊事件 給元素設置一個絕對定位 定時器(setInterval) 封裝動畫1的步驟: 讓元素設置為絕定位設置元素的開始位置(從哪開始移動)設置元素的目標位置(移動到哪)設置元素每次移動的距離設置元素每次移動的時間間隔(越短越好) 封裝動畫1遇…

鏈表中環的入口結點

題目描述 給一個鏈表&#xff0c;若其中包含環&#xff0c;請找出該鏈表的環的入口結點&#xff0c;否則&#xff0c;輸出null。 分析 第一步&#xff1a;確定一個鏈表中是否有環 我們可以用兩個指針來解決&#xff0c;定義兩個指針&#xff0c;同時從鏈表的頭結點觸發&#xf…

java 線程之線程狀態

Thread 類中的線程狀態&#xff1a; public enum State {NEW,//新建RUNNABLE,// 執行態BLOCKED, //等待鎖&#xff08;在獲取鎖的池子里&#xff09;WAITING,//等待狀態TIMED_WAITING,//定時等待TERMINATED; //終止 } 創建狀態&#xff08;NEW&#xff09;&#xff1a;當一個線…

目標元素拖動

<div class"box"><div class"title">拖拽效果</div></div>* {margin: 0;padding: 0;}.box {width: 350px;height: 300px;border: 1px solid #ccc;position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);cursor…