相关文章推荐
任性的斑马  ·  c语言异步操作实例-掘金·  1 年前    · 
爱笑的肉夹馍  ·  CronExpression ...·  1 年前    · 
发呆的豆腐  ·  Kotlin compile ...·  1 年前    · 
首发于 大前端

jQuery综合案例:下拉菜单、手风琴轮播图、淡入淡出轮播图

  • jQuery排序和动画综合案例:下拉菜单
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>下拉菜单</title>
    <style>
            margin: 0;
            padding: 0;
            list-style: none;
        .wrap {
            width: 330px;
            height: 30px;
            margin: 100px auto 0;
            padding-left: 10px;
            background-image: url(images/bg.jpg);
        .wrap li {
            background-image: url(images/libg.jpg);
        .wrap>ul>li {
            float: left;
            margin-right: 10px;
            position: relative;
        .wrap a {
            display: block;
            height: 30px;
            width: 100px;
            text-decoration: none;
            color: #000;
            line-height: 30px;
            text-align: center;
        .wrap li ul {
            position: absolute;
            top: 30px;
            display: none;
    </style>
</head>
    <div class="wrap">
        <ul id="menu">
                <a href="javascript:void(0);">一级菜单1</a>
                <ul class="ul">
                        <a href="javascript:void(0);">二级菜单11</a>
                        <a href="javascript:void(0);">二级菜单12</a>
                        <a href="javascript:void(0);">二级菜单13</a>
                <a href="javascript:void(0);">一级菜单2</a>
                        <a href="javascript:void(0);">二级菜单21</a>
                        <a href="javascript:void(0);">二级菜单22</a>
                        <a href="javascript:void(0);">二级菜单23</a>
                <a href="javascript:void(0);">一级菜单3</a>
                        <a href="javascript:void(0);">二级菜单31</a>
                        <a href="javascript:void(0);">二级菜单32</a>
                        <a href="javascript:void(0);">二级菜单33</a>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        // 给最外层的 li 标签添加事件
        var $lis = $(".wrap #menu >li")
        // // 鼠标进入,让内部的子级的 ul 进行显示
        // $lis.mouseenter(function() {
        //     $(this).children("ul").show()
        // })
        // // 鼠标离开,让内部的子级的 ul 进行隐藏
        // $lis.mouseleave(function() {
        //     $(this).children("ul").hide()
        // })
        // 升级,让它进行运动的显示和隐藏:slideDown() 和 slideUp()
        // 鼠标进入,让内部的子级的 ul 进行显示
        $lis.mouseenter(function() {
            // 动画开始之前,清空动画排队:stop(true)
            $(this).children("ul").stop(true).slideDown(500)
        // 鼠标离开,让内部的子级的 ul 进行隐藏
        $lis.mouseleave(function() {
            // 动画开始之前,清空动画排队:stop(true)
            $(this).children("ul").stop(true).slideUp(500)
    </script>
</body>


  • jQuery排序和动画综合案例:手风琴轮播图
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>手风琴轮播图</title>
    <style>
            margin: 0;
            padding: 0;
            list-style: none;
            width: 1300px;
        #box {
            width: 1200px;
            height: 400px;
            border: 2px solid red;
            margin: 100px auto;
        #box li {
            float: left;
            width: 240px;
            height: 400px;
        /* li 标签的背景图,需要使用 js 代码动态添加 */
    </style>
</head>
    <div id="box">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        // 获取元素
        var $lis = $("#box ul li");
        var $box = $("#box");
        // 模拟后台提供的图片数据
        var arr = ["fq1.jpg", "fq2.jpg", "fq3.jpg", "fq4.jpg", "fq5.jpg"];
        // 记录文件路径
        var path = "images/fq/";
        var during = 1000;
        // 给每一个 li 去添加背景图
        // 遍历方法:each()
        $lis.each(function(i) {
            // 存储路径
            var url = "url(" + path + arr[i] + ")";
            // this 指是的遍历的这一次的 li 元素
            $(this).css("background-image", url)
        // 给每个 li 标签添加鼠标进入事件,让自己的宽度变为 800,让其他的兄弟 变为 100
        $lis.mouseenter(function() {
            $(this).stop(true).animate({
                    "width": 800
                }, during)
                .siblings().stop(true).animate({
                    "width": 100
                }, during)
        // 给最外层的大例子添加鼠标离开事件,让所有的 li 恢复默认宽度
        $("#box").mouseleave(function() {
            $lis.stop(true).animate({
                "width": 240
            }, during)
    </script>
</body>


  • jQuery排序和动画综合案例:淡入淡出轮播图
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>淡入淡出轮播图</title>
    <style>
            margin: 0;
            padding: 0;
            list-style: none;
        .slider {
            height: 340px;
            width: 790px;
            margin: 100px auto;
            position: relative;
        .slider ul li {
            position: absolute;
            display: none;
        .slider ul li:first-child {
            display: block;
        .arrow {
            display: none;
        .slider:hover .arrow {
            display: block;
        .arrow-left,
        .arrow-right {
            font-family: "SimSun", "宋体";
            width: 30px;
            height: 60px;
            background-color: rgba(0, 0, 0, 0.1);
            position: absolute;
            top: 50%;
            margin-top: -30px;
            cursor: pointer;
            text-align: center;
            line-height: 60px;
            color: #fff;
            font-weight: 700;
            font-size: 30px;
        .arrow-left:hover,
        .arrow-right:hover {
            background-color: rgba(0, 0, 0, .5);
        .arrow-left {
            left: 0;
        .arrow-right {
            right: 0;
        .slider ol {
            position: absolute;
            left: 100px;
            bottom: 30px;
            width: 240px;
            height: 20px;
        .slider ol li {
            float: left;
            width: 20px;
            height: 20px;
            margin-right: 10px;
            border-radius: 50%;
            background: rgba(255, 255, 255, .5);
            cursor: pointer;
        .slider ol li.cur {
            background-color: #fff;
    </style>
</head>
    <div class="slider">
                <a href="#"><img src="images/jd/jd1.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd2.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd3.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd4.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd5.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd6.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd7.jpg" alt=""></a>
                <a href="#"><img src="images/jd/jd8.jpg" alt=""></a>
        <!--箭头-->
        <div class="arrow">
            <span class="arrow-left">&lt;</span>
            <span class="arrow-right">&gt;</span>
        <!-- 下标 -->
            <li class="cur"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
        // 获取元素
        var $ulLis = $(".slider ul li");
        var $olLis = $(".slider ol li");
        // 信号量编程
        var idx = 0;
        // 自动播放函数
        // 右按钮点击事件
        $(".arrow-right").click(function() {
            // 函数节点,防骚扰
            if ($ulLis.eq(idx).is(":animated")) return;
            // 让当前这一个 li 去淡出隐藏
            $ulLis.eq(idx).fadeOut();
            // 让信号量自加
            idx++;
            if (idx > $ulLis.length - 1) {
                idx = 0;
            move();
        // 左按钮点击事件
        $(".arrow-left").click(function() {
            // 函数节点,防骚扰
            if ($ulLis.eq(idx).is(":animated")) return;
            // 让当前这一个 li 去淡出隐藏
            $ulLis.eq(idx).fadeOut();
            // 让信号量自减
            idx--;
            if (idx < 0) {
                idx = $ulLis.length - 1;
            move();
        // 添加小圆点的事件
        $olLis.click(function() {
            // 函数节点,防骚扰
            if ($ulLis.eq(idx).is(":animated")) return;
            // 让当前的这一个 li 去淡出隐藏
            $ulLis.eq(idx).fadeOut();
            // 找到点击的当前的小圆点对应的下标,赋值给信号量
            idx = $(this).index();
            move();
        // 封装公共部分:li 标签淡入显示部分
        function move() {
            // 让指定的一项 li 进行淡入显示
            $ulLis.eq(idx).fadeIn();
            $olLis.eq(idx).addClass("cur").siblings().removeClass("cur");
        // 可以利用 JQ 中的 trigger() 方法,自动执行右按钮事件
        function autoPlay() {
            $(".arrow-right").trigger("click")
        var timer = setInterval(autoPlay, 1000)
        // 鼠标移上停止定时器
        $(".slider").on("mouseenter", function() {
            clearInterval(timer);