一.使用js實現(xiàn)導(dǎo)航行欄,點擊時,下劃線會跟著鼠標的點擊移動。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供雙灤企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為雙灤眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。html代碼如下:
<header> <div id="nav1"> <div id="id1" class="item">1</div> <div id="id2" class="item">2</div> <div id="id3" class="item">3</div> </div> <div id="line"></div> </header>
css代碼如下:
*{
margin:0;
padding:0;
}
body{
background: url("./img/wallhaven1.png");
}
.item{
width: 100px;
height: 30px;
margin-bottom: 5px;
margin-left: 5px;
padding: 5px 10px;
background: #B89C9B;
text-align: center;
line-height: 30px;
color:white;
border-radius: 10px;
}
#line{
color:red;
width: 4px;
height: 40px;
background: red;
position: absolute;
top:0px;
padding-right: 1px;
}js代碼如下:
<script>
function avtiveLineTop(n) {
document.getElementById('line').style.top = n + 'px';
};
var nav1 = document.getElementById("nav1");
var items = document.getElementsByClassName('item');
nav1.addEventListener("click",handle,false);
function handle(event){
var event=event||window.event;
var target=event.target||event.srcElement;;
switch(target.id){
case "id1":
avtiveLineTop(0);
break;
case "id2":
avtiveLineTop(45);
break;
case "id3":
avtiveLineTop(90);
break;
}
}
</script>效果圖:
默認時,紅色橫線在1標簽處,點擊2時,紅色標簽,會根據(jù)移動函數(shù)進行移動,如圖(2)


二.在此基礎(chǔ)上,根據(jù)css3來實現(xiàn)橫線的過度平滑效果。
html代碼如下:
<section> <ul id="nav2"> <li class="item1"><a href="#" id="id11">課程學(xué)習(xí)</a></li> <li class="item1"><a href="#" id="id21">課程筆記</a></li> <li class="item1"><a href="#" id="id31">課程練習(xí)</a></li> <li class="item1"><a href="#" id="id41">課程相關(guān)</a></li> <li class="item1"><a href="#" id="id51">課程拓展</a></li> </ul> <div id="line1"></div> </section> <div ></div> <div id="pic"> <img src="./img/wallhaven3.png" alt="人物"> </div>
css代碼如下:
.item1{
width: 100px;
height: 30px;
margin-bottom: 5px;
margin-left: 5px;
padding: 5px 10px;
background: #1E293B;
float:left;
text-decoration:none;
color:white;
line-height: 30px;
border-radius: 10px;
}
#line1{
color:red;
width: 120px;
height: 2px;
background: red;
position: absolute;
top:175px;
left:5px;
padding-top: 1px;
}
#nav2{
list-style-type: none;
}
#nav2 a{
display: block;
text-decoration:none;
color:white;
}
#nav2 a:hover{
background-color: #1E291a;
color:red;
}
#pic{
margin-top:80px;
margin-left: 10px;
}
img{
width: 200px;
height:200px;
border-radius: 15px;
}
.effect0{
transform: translateX(1px);
transition:all 2s;
}
.effect{
transform: translateX(125px);
transition:all 2s;
}
.effect2{
transform: translateX(250px);
transition:all 2s;
}
.effect3{
transform: translateX(375px);
transition:all 2s;
}
.effect4{
transform: translateX(500px);
transition:all 2s;
}
.piceffect{
transform: translateX(600px) scale(1.5);
transition: all 2s;
}js代碼如下:
var nav2 = document.getElementById('nav2');
var pic = document.getElementById('pic');
nav2.addEventListener("click",move,false);
function move(event){
var event=event||window.event;
var target=event.target||event.srcElement;;
switch(target.id){
case "id11":
line1.className = "effect0";
pic.className = "effect0";
break;
case "id21":
line1.className = "effect";
pic.className = "effect";
break;
case "id31":
line1.className = "effect2";
pic.className = "effect2";
break;
case "id41":
line1.className = "effect3";
pic.className = "effect3";
break;
case "id51":
line1.className = "effect4";
pic.className = "effect4";
break;
}
}
pic.addEventListener("click",showbig,false);
function showbig(){
pic.className="piceffect";
}效果圖:
當(dāng)鼠標沒有點擊標簽時,橫線默認是在第一個標簽下,如圖:
當(dāng)點擊任何一個標簽,下劃線和圖片就會平滑的過度到點擊的那個標簽下,如圖:

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。
本文題目:js實現(xiàn)標簽下劃線平移-創(chuàng)新互聯(lián)
文章位置:http://chinadenli.net/article10/ccgjgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、外貿(mào)網(wǎng)站建設(shè)、App開發(fā)、微信小程序、建站公司、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容