【jQuery应用】导航栏滑块随鼠标移动

本文介绍如何使用jQuery创建一个导航栏滑块效果。当鼠标悬停在jQuery项上时,导航栏上方的棕色滑块会平滑地移动到该位置,而当鼠标离开时,滑块会返回到原始位置。实现此效果主要依靠jQuery的stop()和animate()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚写了一个导航栏的效果。为达到的效果是这样的:


当鼠标放在jQuery上面时,Python上方的棕色滑块会滑动到jQuery上方,当鼠标离开导航栏时,滑块重新回到Python上方。



HTML :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>导航栏滑块随鼠标移动</title>
    <link rel="stylesheet" href="css/jQuery2.css">
    <script src="js/jquery-2.1.3.min.js"></script>
    <script src="js/jQuery2.js"></script>
</head>
<body>

<br><br>
<span>_____________________________________________</span>
<!--设置一个滑块-->
<div class="line"></div>
<!--导航栏-->
<div class="header">
    <!--4个li-->
    <ul>
        <li><a href="#">Bootstarp</a></li>
        <li id="mark"><a href="#">Python</a></li>
        <li><a href="#">jQuery</a></li>
        <li><a href="#">Angular</a></li>
    </ul>
</div>

</body>
</html>


CSS:

.header{
    width: 100%;
    height: 40px;
    margin: 0 auto;
    padding: 0 auto;

}

.line{
    margin: 0;
    padding: 0;
    width: 100px;
    height: 5px;
    background-color: brown;
    display: block;
    position:relative;
}

body{
    margin: 0 auto;
}

ul,li{
    font-feature-settings: normal;
    margin: 0;
    padding: 0;
    list-style: none;
    line-height: 40px;
    float: left;
}

li{
    width:100px;
    text-align: center;
    background-color: white;
}

a{
    font-family: tahoma,Arial;
    text-decoration: none;
    color: black;
}


jQuery :

/**
 * Created by ASUS-PC on 2015/9/22.
 */

$(document).ready(function() {
        //把id="mark"的<li>赋值给常量
        var line_reset = $("#mark");

        //将滑块的初始位置定在id="mark"的上方
        $(".line").css("left",line_reset.position().left);

        //当鼠标放在<li>上时
        $("li").mouseenter(function () {
            //鼠标样式变为pointer
            $(this).css("cursor", "pointer");
            //滑块 正在做的所有事情停止(这个是为了保证滑块移动的连贯效果,删去后试下就知道为什么要加了)
            $(".line").stop();
            //滑块 正在做的所有事情停止之后,向鼠标所指的<li>上方移动
            $(".line").animate({left:  $(this).position().left +'px'},350);
        });

        //当鼠标离开<li>时
        $("li").mouseleave(function(){
            ////滑块 正在做的所有事情停止
            $(".line").stop();
            //滑块 回到id="mark"的标签上
            $(".line").animate({left: line_reset.position().left + 'px' },250);
        });
    }
);


主要是stop()函数和animate()自定义动画函数。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值