横向手风琴轮播图(jquery)

 以下是代码:鼠标移入展开

jQuery引入的是本公司的jquery.js、、这个可以自己下载

第一个是确定到底有几个可展开样式

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
            width: 1300px;
            display: flex;
            align-items: center;
            flex-wrap: nowrap;
        }

        #box {
            width: 1200px;
            height: 400px;
            margin: 100px auto;
            overflow: hidden;
        }

        #box ul {
            width: 100%;
        }

        #box li {
            height: 400px;
            overflow: hidden;
            border: 5px solid #fff;
            box-sizing: border-box;
        }

        #box li:first-child {
            width: 800px;
            border-left: none;
        }

        #box li:last-child {
            border-right: none;
        }

        #box li div {
            width: 800px;
            height: 400px;
            background-size: cover;
            background-image: url('https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F3%2F57f86b0c604e9.jpg&refer=http%3A%2F%2Fpic1.win4000.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650961821&t=0e97659b3d21ffb811dc4087d7a57648') !important;
        }

        /* li 标签的背景图,需要使用 js 代码动态添加 */
    </style>
</head>

<body>
    <div id="box">
        <ul>
            <li>
                <div>
                    <div></div>
                </div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
        </ul>
    </div>
    <script src="https://pubunder.artron.net/library/js/jquery-1.12.4.min.js"></script>
    <script>
        // 获取所有的 li 标签
        var $lis = $("#box ul li");
        // 模拟后台提供的图片数据
        var arr = ["fq1.jpg", "fq2.jpg", "fq3.jpg", "fq4.jpg", "fq5.jpg"];
        // 记录文件路径
        var path = "img/";
        var during = 1000;
        var widtheach = (1200 - 800) / ($lis.length - 1)
        console.log(widtheach);
        // 给每一个 li 去添加背景图
        // 遍历方法
        $lis.each(function (i) {
            if (i == 2) {
                $(this).css('width', 800)
            } else {
                $(this).css('width', widtheach)

            }
            // 存储路径
            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": widtheach
                }, during)
        })

        // 给最外层的大盒子添加鼠标离开事件,让所有的 li 恢复默认宽度
        // $("#box").mouseleave(function () {
        //     $lis.stop(true).animate({
        //         "width": 240
        //     }, during)
        // })
    </script>
</body>

</html>

 在不确定有几个的情况下 写的活的

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        ul {
            list-style: none;
            width: 1300px;
            display: flex;
            align-items: center;
            flex-wrap: nowrap;
        }

        #box {
            width: 1400px;
            height: 400px;
            margin: 100px auto;
            overflow: hidden;
        }

        #box ul {
            width: 100%;
        }

        #box li {
            height: 400px;
            overflow: hidden;
            margin-right: 5px;
            max-width: 800px;
        }

        #box li:first-child {
            width: 800px;
            border-left: none;
        }

        #box li:last-child {
            border-right: none;
            margin-right: 0px;
        }

        #box li div {
            width: 800px;
            height: 400px;

            background-size: cover;
            background-image: url('https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic1.win4000.com%2Fwallpaper%2F3%2F57f86b0c604e9.jpg&refer=http%3A%2F%2Fpic1.win4000.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1650961821&t=0e97659b3d21ffb811dc4087d7a57648') !important;
        }

        /* li 标签的背景图,需要使用 js 代码动态添加 */
    </style>
</head>

<body>
    <div id="box">
        <ul>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
            <li>
                <div></div>
            </li>
        </ul>
    </div>
    <script src="https://pubunder.artron.net/library/js/jquery-1.12.4.min.js"></script>
    <script>
        // 获取所有的 li 标签
        var $lis = $("#box ul li");
        // 模拟后台提供的图片数据
        var arr = ["fq1.jpg", "fq2.jpg", "fq3.jpg", "fq4.jpg", "fq5.jpg"];
        // 记录文件路径
        var path = "img/";
        var during = 1000;
        var widd = $lis.length - 1
        var widtheach = (1400 - 800 - widd * 5) / widd
        var widtheachnobig = (1400 - widd * 5) / $lis.length

        console.log(widtheach);
        // 给每一个 li 去添加背景图
        // 遍历方法
        $lis.each(function (i) {
            if (i == 3) {
                $(this).css('width', 800)
            } else {
                $(this).css('width', widtheach + 'px')

            }
            // // 存储路径
            // 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": widtheach + 'px'
            }, during)
        })

        // 给最外层的大盒子添加鼠标离开事件,让所有的 li 恢复默认宽度
        $("#box").mouseleave(function () {
            $lis.stop(true).animate({
                "width": widtheachnobig + 'px'
            }, during)
        })
    </script>
</body>

</html>

 

posted @ 2022-03-28 15:45  橘雎  阅读(167)  评论(0编辑  收藏  举报