JS實現(xiàn)百度新聞導(dǎo)航欄效果
本文實例為大家分享了JS實現(xiàn)百度新聞導(dǎo)航欄效果的具體代碼,供大家參考,具體內(nèi)容如下

最近在學(xué)Web前端,用js簡單實現(xiàn)了百度新聞導(dǎo)航欄的效果。當(dāng)鼠標(biāo)移動到某一選項上方時,會有一個紅色背景塊滑動到當(dāng)前選項上。當(dāng)點擊某一選項后,固定的紅色背景塊位置會移動到當(dāng)前選項,意為當(dāng)前選項被選中。話不多說,代碼如下
body部分
<div class="box">
<!--兩個紅色背景塊-->
<!--隨鼠標(biāo)移動的背景塊-->
<div id="move"></div>
<!--鼠標(biāo)點擊后固定在某處的背景塊-->
<div id="fixed"></div>
<a href="#">主頁</a>
<a href="#">國內(nèi)</a>
<a href="#">國際</a>
<a href="#">軍事</a>
<a href="#">財經(jīng)</a>
<a href="#">娛樂</a>
<a href="#">體育</a>
<a href="#">互聯(lián)網(wǎng)</a>
<a href="#">科技</a>
<a href="#">游戲</a>
<a href="#">女人</a>
<a href="#">汽車</a>
<a href="#">房產(chǎn)</a>
</div>
css部分
*{
margin: 0;
padding: 0;
}
.box{
top:100px;
width: 790px;
height: 30px;
font-size: 0;
position: relative;
margin: 0 auto;
background-color: #01204f;
}
a{
display: inline-block;
position: relative;
width: 60px;
height: 30px;
line-height: 30px;
color: white;
font-size: 16px;
text-decoration: none;
text-align: center;
transition: all 0.6s;
}
#move{
position: absolute;
background-color: red;
top: 0px;
left: 0px;
width: 60px;
height: 30px;
transition: all 0.6s;
}
#fixed{
position: absolute;
background-color: red;
top: 0px;
left: 0px;
width: 60px;
height: 30px;
}
js部分
window.onload = function () {
let move = document.getElementById("move");//滑動的背景塊
let fixed = document.getElementById("fixed");//固定在某處的背景塊
let aList = document.getElementsByTagName("a");//a標(biāo)簽列表
let left = move.offsetLeft + "px";//滑動背景塊的初始位置
//使所有a標(biāo)簽綁定移入、移出、單擊事件
for (let i = 0; i < aList.length; i++) {
aList[i].onmouseover = function () {
// 鼠標(biāo)移入某個a標(biāo)簽時,滑動背景塊滑到當(dāng)前a標(biāo)簽的位置
move.style.left = aList[i].offsetLeft + "px";
}
aList[i].onmouseout = function () {
// 鼠標(biāo)移出a標(biāo)簽時,滑動背景塊返回初始位置
move.style.left = left;
}
aList[i].onclick = function () {
// 某個a標(biāo)簽被點擊后,固定背景塊移動到當(dāng)前a標(biāo)簽的位置
fixed.style.left = aList[i].offsetLeft + "px";
// 將滑動背景塊的初始位置更新為當(dāng)前a標(biāo)簽的位置
left = aList[i].offsetLeft + "px";
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS 實現(xiàn)導(dǎo)航欄懸停效果
- JavaScript實現(xiàn)鼠標(biāo)點擊導(dǎo)航欄變色特效
- JavaScript實現(xiàn)滑動導(dǎo)航欄效果
- Fullpage.js固定導(dǎo)航欄-實現(xiàn)定位導(dǎo)航欄
- JS滾動到指定位置導(dǎo)航欄固定頂部
- 一步步教大家編寫酷炫的導(dǎo)航欄js+css實現(xiàn)
- js導(dǎo)航欄單擊事件背景變換示例代碼
- JavaScript NodeTree導(dǎo)航欄(菜單項JSON類型/自制)
- 原生JS實現(xiàn) MUI導(dǎo)航欄透明漸變效果
- js實現(xiàn)帶緩動動畫的導(dǎo)航欄效果
相關(guān)文章
ionic2打包android時gradle無法下載的解決方法
這篇文章主要為大家詳細介紹了ionic2打包android時gradle無法下載的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
el-input 標(biāo)簽中密碼的顯示和隱藏功能的實例代碼
本文通過實例代碼給大家介紹了el-input 標(biāo)簽中密碼的顯示和隱藏 ,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
javascript函數(shù)自動執(zhí)行常用方法匯總
本文給大家匯總介紹了3種javascript函數(shù)自動執(zhí)行的常用方法,非常的簡單實用,有需要的小伙伴可以參考下2016-03-03
js querySelector和getElementById通過id獲取元素的區(qū)別
這是sina同事xiaoniu發(fā)現(xiàn)的,querySelector和getElementById通過id獲取元素的區(qū)別2012-04-04
使用coffeescript編寫node.js項目的方法匯總
Node.js 基于JavaScript編寫應(yīng)用,JavaScript是我的主要開發(fā)語言。CoffeeScript是編譯為JavaScript的編程語言。CoffeeScript是一個非常高階的語言,將JavaScript、Ruby和Python中我最愛的部分結(jié)合在了一起。小編給大家介紹下使用coffeescript編寫node.js項目的方法2015-08-08

