• 手风琴菜单、层级菜单、置顶菜单、无缝滚动、幻灯片的制作


    一、手风琴菜单效果图及代码如下:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>手风琴效果制作</title>
      6     <link rel="stylesheet" href="../css/reset.css">
      7     <style>
      8         .con{
      9             width:908px;
     10             height:300px;
     11             margin:50px auto;
     12             overflow: hidden;
     13             position:relative;
     14         }
     15         .con .list_ul{
     16         }
     17         .con .list_ul li{
     18             width:805px;
     19             height:300px;
     20             position:absolute;
     21             background:#fff;
     22         }
     23         .con .list_ul li span{
     24             width:26px;
     25             height:296px;
     26             text-align: center;
     27             color:#fff;
     28             padding-top:4px;
     29             float:left;
     30             cursor: pointer;
     31         }
     32         .con .list_ul li img{
     33             width:777px;
     34             height:300px;
     35             float:right;
     36         }
     37         .con .list_ul li:after{
     38             display: table;
     39             clear:both;
     40             zoom:1;
     41             content: '';
     42         }
     43         .con .list_ul li:nth-child(1){
     44             left:0;
     45         }
     46         .con .list_ul li:nth-child(2){
     47             left:801px;
     48         }
     49         .con .list_ul li:nth-child(3){
     50             left:828px;
     51         }
     52         .con .list_ul li:nth-child(4){
     53             left:855px;
     54         }
     55         .con .list_ul li:nth-child(5){
     56             left:882px;
     57         }
     58         .con .list_ul li:nth-child(1) span{
     59             background: rgba(8, 201, 160, 0.49);
     60         }
     61         .con .list_ul li:nth-child(2) span{
     62             background: rgba(120, 201, 66, 0.97);
     63         }
     64         .con .list_ul li:nth-child(3) span{
     65             background: rgb(77, 114, 201);
     66         }
     67         .con .list_ul li:nth-child(4) span{
     68             background: rgb(255, 179, 18);
     69         }
     70         .con .list_ul li:nth-child(5) span{
     71             background: rgb(201, 5, 166);
     72         }
     73     </style>
     74     <script src="../js/jquery-1.12.4.min.js"></script>
     75     <script>
     76         $(function(){
     77             $(".list_li").click(function(){
     78                 //左边
     79                 $(this).animate({left:26*$(this).index()});
     80                 //获取该li元素前面的兄弟元素,实现点击中间的部分,它前面的兄弟元素也跟着一起向左移动
     81                 $(this).prevAll().each(function(){
     82                     $(this).animate({left:26*$(this).index()});
     83                 });
     84                 //右边:获取该li元素后面的兄弟元素,实现点击中间的部分,它后面的兄弟元素也跟着一起向右移动
     85                 $(this).nextAll().each(function(){
     86                     $(this).animate({left:778+26*$(this).index()});
     87                 });
     88             })
     89         })
     90     </script>
     91 </head>
     92 <body>
     93     <div class="con">
     94         <ul class="list_ul">
     95             <li class="list_li">
     96                 <span>风景图01</span>
     97                 <img src="../images/li01.png" alt="风景图01">
     98             </li>
     99             <li class="list_li">
    100                 <span>风景图02</span>
    101                 <img src="../images/li02.png" alt="风景图02">
    102             </li>
    103             <li class="list_li">
    104                 <span>风景图03</span>
    105                 <img src="../images/li03.png" alt="风景图03">
    106             </li>
    107             <li class="list_li">
    108                 <span>风景图04</span>
    109                 <img src="../images/li04.png" alt="风景图04">
    110             </li>
    111             <li class="list_li">
    112                 <span>风景图05</span>
    113                 <img src="../images/li05.png" alt="风景图05">
    114             </li>
    115         </ul>
    116     </div>
    117 </body>
    118 </html>
    手风琴菜单

    二、上卷下拉式(层级)菜单效果图和代码如下:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>用jQuery中的slideToggle制作菜单</title>
      6     <link rel="stylesheet" href="../css/reset.css">
      7     <style>
      8         .menu{
      9             width:200px;
     10             margin:10px auto;
     11         }
     12         .menu>li{
     13             background: #8731dd;
     14             color:#fff;
     15             text-indent: 16px;
     16             margin-top:-1px;
     17             cursor: pointer;
     18         }
     19         .menu>li>span{
     20             padding:10px 0;
     21             display:block;
     22             border-bottom: 1px solid #f3f3f3;
     23         }
     24         .menuactive,.menu>li>span:hover{
     25             background:#c7254e;
     26         }
     27         .menu > li ul{
     28             display: none;
     29         }
     30         .menu > li ul li{
     31             text-indent:20px;
     32             background: #9a9add;
     33             border:1px solid #f3f3f3;
     34             margin-top:-1px;
     35             padding:6px 0;
     36         }
     37         .menu >li .active{
     38             display: block;
     39 
     40         }
     41         .menu > li ul li:hover{
     42             background:#67C962;
     43         }
     44         .menu_li ul{
     45             margin-bottom:1px;
     46         }
     47     </style>
     48     <script src="../js/jquery-1.12.4.min.js"></script>
     49     <script>
     50         $(function () {
     51             $(".menu_li>span").click(function(){
     52                 $(this).addClass("menuactive").parent().siblings().children("span").removeClass("menuactive");
     53                 $(this).next("ul").slideToggle();
     54                 $(this).parent().siblings().children("ul").slideUp();
     55             })
     56         })
     57     </script>
     58 </head>
     59 <body>
     60 <ul class="menu" id="menu">
     61     <li class="menu_li">
     62         <span class="menuactive">水果系列</span>
     63         <ul class="active">
     64             <li>苹果</li>
     65             <li>梨子</li>
     66             <li>葡萄</li>
     67             <li>火龙果</li>
     68         </ul>
     69     </li>
     70     <li class="menu_li">
     71         <span>海鲜系列</span>
     72         <ul>
     73             <li></li>
     74             <li>大虾</li>
     75             <li>螃蟹</li>
     76             <li>海带</li>
     77         </ul>
     78     </li>
     79     <li class="menu_li">
     80         <span>果蔬系列</span>
     81         <ul>
     82             <li>茄子</li>
     83             <li>黄瓜</li>
     84             <li>豆角</li>
     85             <li>西红柿</li>
     86         </ul>
     87     </li>
     88     <li class="menu_li">
     89         <span>速冻食品</span>
     90         <ul>
     91             <li>水饺</li>
     92             <li>冰淇淋</li>
     93         </ul>
     94     </li>
     95     <li class="menu_li">
     96         <span>肉质系列</span>
     97         <ul>
     98             <li>猪肉</li>
     99             <li>羊肉</li>
    100             <li>牛肉</li>
    101         </ul>
    102     </li>
    103 </ul>
    104 </body>
    105 </html>
    层级菜单

    三、置顶菜单(当一个菜单到达页面顶部时,停在那)

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>置顶菜单</title>
      6     <link rel="stylesheet" href="../css/reset.css">
      7     <style>
      8         .header{
      9             width:960px;
     10             height:200px;
     11             margin:0 auto;
     12             background: #ccc;
     13         }
     14         .header img{
     15             width:100%;
     16             height:200px;
     17         }
     18         .ul_list{
     19             width:960px;
     20             height:50px;
     21             margin:0 auto;
     22             text-align: center;
     23             display: flex;
     24             justify-content: space-between;/*实现子元素水平方向上平分*/
     25             align-items: center;/*使子元素垂直方向上居中*/
     26             background: #67C962;
     27         }
     28         .ul_list li{
     29             width:160px;
     30             height:50px;
     31             line-height: 50px;
     32             border:1px solid #ccc;
     33             /*使边框合并*/
     34             margin-right:-1px;
     35         }
     36         .ul_list li a{
     37             color:#fff;
     38         }
     39         .ul_list li:hover{
     40             background: #c7254e;
     41         }
     42         .ul_fixed{
     43             position: fixed;
     44             top:0;
     45         }
     46         .menu_pos{
     47             width:960px;
     48             height:50px;
     49             margin:0 auto;
     50             line-height: 50px;
     51             display: none;
     52         }
     53         .con div{
     54             width:958px;
     55             height:300px;
     56             line-height: 300px;
     57             text-align: center;
     58             margin:-1px auto 0;
     59             border: 1px solid #ccc;
     60         }
     61         .footer{
     62             height:300px;
     63         }
     64         .top{
     65             width:38px;
     66             height:38px;
     67             border-radius: 35px;
     68             background: #000;
     69             color:#fff;
     70             font-size:13px;
     71             padding:8px;
     72             text-align: center;
     73             position: fixed;
     74             right:100px;
     75             bottom:20px;
     76             display: none;
     77         }
     78         .top:hover{
     79             cursor: pointer;
     80         }
     81     </style>
     82     <script src="../js/jquery-1.12.4.min.js"></script>
     83     <script>
     84         $(function(){
     85             var oLeft = ($(document).outerWidth(true)-$(".header").outerWidth())/2;
     86             var oTop = $(".top");
     87             $(window).scroll(function(){
     88                 if($(window).scrollTop() >= $(".header").outerHeight()){
     89                     $(".ul_list").addClass("ul_fixed").css({left:oLeft});
     90                     $(".menu_pos").show();
     91                 }else{
     92                     $(".ul_list").removeClass("ul_fixed");
     93                     $(".menu_pos").hide();
     94                 }
     95                 if($(window).scrollTop() >= 150){
     96                     oTop.fadeIn();
     97                     oTop.click(function(){
     98                         //第一种回到顶部的方式
     99                         //$(window).scrollTop(0);
    100                         //第二种回到顶部的方式(常用)
    101                         $("html,body").animate({scrollTop:0});
    102                     })
    103                 }else{
    104                     oTop.fadeOut();
    105                 }
    106             });
    107 
    108         })
    109     </script>
    110 </head>
    111 <body>
    112     <div class="header">
    113         <img src="../images/li02.png" alt="banner图">
    114     </div>
    115     <ul class="ul_list">
    116         <li><a href="javascript:void(0);">首页</a></li>
    117         <li><a href="javascript:void(0);">新闻动态</a></li>
    118         <li><a href="javascript:void(0);">产品展示</a></li>
    119         <li><a href="javascript:void(0);">案例分析</a></li>
    120         <li><a href="javascript:void(0);">关注我们</a></li>
    121         <li><a href="javascript:void(0);">联系我们</a></li>
    122     </ul>
    123     <div class="menu_pos"></div>
    124     <div class="con">
    125         <div class="con_header">网站主内容一</div>
    126         <div class="con_center">网站主内容二</div>
    127         <div class="con_footer">网站主内容三一</div>
    128     </div>
    129     <div class="footer"></div>
    130     <div class="top">回到顶部</div>
    131 </body>
    132 </html>
    置顶菜单

    四、无缝滚动效果图及代码如下:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>无缝滚动</title>
      6     <link rel="stylesheet" href="../css/reset.css">
      7     <style>
      8         .con{
      9             width:662px;
     10             margin:50px auto;
     11         }
     12         .con button{
     13             width:100px;
     14             height:36px;
     15             line-height: 36px;
     16             text-align: center;
     17             border: none;
     18             margin-left:20px;
     19         }
     20         .box{
     21             width:655px;
     22             height:135px;
     23             margin:20px auto;
     24             border:1px solid #ccc;
     25             padding-left:10px;
     26             padding-bottom:10px;
     27             position: relative;
     28             overflow: hidden;
     29         }
     30         .ul_list{
     31             display: flex;
     32             position: absolute;
     33             left:0;
     34             top:0;
     35             padding: 10px;
     36         }
     37         .ul_list li{
     38             width:120px;
     39             height:120px;
     40             border:1px solid #ccc;
     41             margin-left:-1px;
     42             margin-right:10px;
     43             /*margin-top:10px;*/
     44         }
     45         .ul_list li img{
     46             width:100%;
     47             height:100px;
     48             line-height: 100px;
     49         }
     50     </style>
     51     <script src="../js/jquery-1.12.4.min.js"></script>
     52     <script>
     53         $(function(){
     54             var oUl = $(".ul_list");
     55             var oLeft = $(".left");
     56             var oRight = $(".right");
     57             var left = 0;
     58             var delay = 2;
     59             oUl.html(oUl.html()+oUl.html());
     60             function move(){
     61                 left-=delay;
     62                 if(left<-667){
     63                     left = 0;
     64                 }
     65                 if(left>0){
     66                     left = -667;
     67                 }
     68                 oUl.css({left:left});
     69             }
     70             var timer =setInterval(move,30);
     71             oLeft.click(function(){
     72                 delay =2;
     73             });
     74             oRight.click(function(){
     75                 delay = -2;
     76             });
     77             oUl.children().each(function(){
     78                 oUl.eq($(this).index()).mouseover(function(){
     79                     clearInterval(timer);
     80                 });
     81                 oUl.eq($(this).index()).mouseout(function(){
     82                     timer= setInterval(function(){
     83                         left-=delay;
     84                         if(left<-667){
     85                             left = 0;
     86                         }
     87                         if(left>0){
     88                             left = -667;
     89                         }
     90                         oUl.css({left:left});
     91                     },30);
     92                 })
     93             })
     94         })
     95     </script>
     96 </head>
     97 <body>
     98 <div class="con">
     99     <button class="left">向左</button>
    100     <button class="right">向右</button>
    101     <div class="box clearfix">
    102         <ul class="ul_list">
    103             <li><img src="../images/furit_03.jpg" alt="第一张图片"></li>
    104             <li><img src="../images/goods_08.jpg" alt="第二张图片"></li>
    105             <li><img src="../images/furit_02.jpg" alt="第三张图片"></li>
    106             <li><img src="../images/goods_05.jpg" alt="第四张图片"></li>
    107             <li><img src="../images/furit_04.jpg" alt="第五张图片"></li>
    108         </ul>
    109     </div>
    110 </div>
    111 </body>
    112 </html>
    无缝滚动

    五、幻灯片的制作

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>幻灯片</title>
      6     <link rel="stylesheet" href="../css/reset.css">
      7     <style>
      8         .con{
      9             width:777px;
     10             height:300px;
     11             margin:150px auto;
     12             position: relative;
     13         }
     14         .ul{
     15             width:777px;
     16             height:300px;
     17             position:relative;
     18             overflow: hidden;
     19         }
     20         .ul li.list{
     21             position:absolute;
     22         }
     23         .ul li img{
     24             width:777px;
     25             height:300px;
     26         }
     27         .ul li:nth-child(1){
     28             left:0;
     29         }
     30         .ul li:nth-child(2){
     31             left:777px;
     32         }
     33         .ul li:nth-child(3){
     34             left:777px;
     35         }
     36         .ul li:nth-child(4){
     37             left:777px;
     38         }
     39         .ul li:nth-child(5){
     40             left:777px;
     41         }
     42         div .prev{
     43             width:40px;
     44             height:40px;
     45             position:absolute;
     46             left:20px;
     47             top:50%;
     48             background:url("../images/banner_icons.png") no-repeat 0 -373px;
     49             cursor: pointer;
     50             z-index: 9000;
     51         }
     52         div .next{
     53             width:40px;
     54             height:40px;
     55             position:absolute;
     56             right:20px;
     57             top:50%;
     58             background:url("../images/banner_icons.png") no-repeat 0 -420px;
     59             cursor: pointer;
     60             z-index: 9000;
     61         }
     62         .points{
     63             width:100%;
     64             height:30px;
     65             position:absolute;
     66             left:0;
     67             bottom:0;
     68             text-align: center;
     69             z-index: 9000;
     70         }
     71         .points li{
     72             width:18px;
     73             height:18px;
     74             border:1px solid #ccc;
     75             border-radius: 50%;
     76             display: inline-block;
     77             margin-left:10px;
     78             cursor: pointer;
     79         }
     80         .points li.active{
     81             background:#ccc;
     82             transition: all 1s ease;
     83         }
     84     </style>
     85     <script src="../js/jquery-1.12.4.min.js"></script>
     86     <script>
     87         $(function(){
     88             var $ul_li = $(".list");
     89             var points = $(".points");
     90             //将要运动过来的li
     91             var nowli = 0;
     92             //将要离开的li;
     93             var prev = $(".active").prevAll().length;
     94             //使用each遍历所有的li来动态创建li点点列表
     95             $(".ul li").each(function (index) {
     96                var $li = $("<li>");
     97                 if(index == 0){
     98                    $li.addClass("active");
     99                 }
    100                 $li.appendTo($(".points"))
    101             });
    102             var timer =setInterval(autoPlay,4000);
    103             $(".ul").hover(function(){
    104                 clearInterval(timer);
    105             },function(){
    106                timer = setInterval(autoPlay,4000);
    107             });
    108             //点击点点切换幻灯片
    109             points.delegate("li","click",function(){
    110                 nowli = $(this).index();
    111                 if(nowli == $(".active").prevAll().length){
    112                     return false;
    113                 }
    114                 move($(".active").prevAll().length,nowli);
    115                 $(this).addClass("active").siblings().removeClass("active");
    116             });
    117             function move(prev,nowli){
    118                 //获取当前active所在的位置,与点击的元素索引号相比,如果小于点击的索引号,则是往左滑
    119                 if(prev<nowli){
    120                     //首先把即将要点的li的left值设为777,animate中的left值设为0,让其从右往左滑。
    121                     //把即将要离开的li的animate中的left设为-777,让其往左滑
    122                     $ul_li.eq(nowli).css({left:777}).stop().animate({left:0});
    123                     $ul_li.eq(prev).stop().animate({left:-777});
    124                 }else{
    125                     //首先把即将要点的li的left值设为-777,animate中的left值设为0,让其从左往右滑
    126                     //把即将要离开的li的animate中的left值设置777,让其滑到右边去
    127                     $ul_li.eq(nowli).css({left:-777}).stop().animate({left:0});
    128                     $ul_li.eq(prev).stop().animate({left:777});
    129                 }
    130             }
    131             function autoPlay(){
    132                 var prev = $(".active").prevAll().length;
    133                 points.children().eq(prev+1).addClass("active").siblings().removeClass("active");
    134                 //到最后一个时切换效果
    135                 if(prev == $(".active").prevAll().length){
    136                     points.children().eq(0).addClass("active").siblings().removeClass("active");
    137                     $ul_li.eq(0).css({left:777}).stop().animate({left:0});
    138                     $ul_li.eq(4).stop().animate({left:-777}).css({left:777});
    139                 }else{
    140                     move(prev,$(".active").prevAll().length);
    141                 }
    142             }
    143             $(".next").click(function(){
    144                 var prev = $(".active").prevAll().length;
    145                 points.children().eq(prev+1).addClass("active").siblings().removeClass("active");
    146                 //到最后一个时切换效果
    147                 if(prev == $(".active").prevAll().length){
    148                     points.children().eq(0).addClass("active").siblings().removeClass("active");
    149                     $ul_li.eq(0).css({left:777}).stop().animate({left:0});
    150                     $ul_li.eq(4).stop().animate({left:-777}).css({left:777});
    151                 }else{
    152                     move(prev,$(".active").prevAll().length);
    153                 }
    154             });
    155             $(".prev").click(function(){
    156                 var prev = $(".active").prevAll().length;
    157                 $(".points").children().eq(prev-1).addClass("active").siblings().removeClass("active");
    158                 //到第一个时,切换效果改变
    159                 if(prev == 0){
    160                     points.children().eq(4).addClass("active").siblings().removeClass("active");
    161                     $ul_li.eq(0).stop().animate({left:777});
    162                     $ul_li.eq(4).css({left:-777}).stop().animate({left:0});
    163                 }else{
    164                     move(prev,$(".active").prevAll().length);
    165                 }
    166             });
    167         })
    168     </script>
    169 </head>
    170 <body>
    171 <div class="con">
    172     <ul class="ul">
    173         <li class="list">
    174             <a href="javascript:void(0);">
    175                 <img src="../images/li01.png"  alt="幻灯片图片01">
    176             </a>
    177         </li>
    178         <li class="list">
    179             <a href="javascript:void(0);">
    180                 <img src="../images/li02.png" alt="幻灯片图片02">
    181             </a>
    182         </li>
    183         <li class="list">
    184             <a href="javascript:void(0);">
    185                 <img src="../images/li03.png" alt="幻灯片图片03">
    186             </a>
    187         </li>
    188         <li class="list">
    189             <a href="javascript:void(0);">
    190                 <img src="../images/li04.png"  alt="幻灯片图片04">
    191             </a>
    192         </li>
    193         <li class="list">
    194             <a href="javascript:void(0);">
    195                 <img src="../images/li05.png" alt="幻灯片图片05">
    196             </a>
    197         </li>
    198     </ul>
    199     <div>
    200         <a class="prev"></a>
    201         <a class="next"></a>
    202     </div>
    203     <ul class="points"></ul>
    204 </div>
    205 </body>
    206 </html>
    幻灯片代码

    以上菜单涉及到的知识点如下:

    六、jQuery

    1、slideDown()向下展示

    2、slideUp()向上卷起

    3、slideToggle()依次展开或卷起某个元素

     七、jQuery链式调用

    jquery对象的方法在执行完之后返回这个jquery对象,所有的jQuery对象的方法可以连起来写:

    $("#div1").chlidren("ul").slideDown("fast").parent().siblings().chlidren("ul").slideUp("fase")

     $("#div1").//id位div1的元素

    .chlidren("ul")  //该元素下的ul子元素

    .slideDown("fast")   //高度从零到实际高度来显示ul元素

    .parent()   //跳转到ul的父元素,也就是id为div1的元素

    .siblings()  //跳转div1元素同级的所有兄弟元素

    .chlidren("ul")   //查找这些兄弟元素中的ul子元素

    .slideUp("fase")   //从实际高度变换为零来隐藏ul元素

  • 相关阅读:
    router使用以及vue的动画效果
    配置wbepack
    Axios插件和loading的实现
    自定义组件的 v-model
    组件模块化使用
    组件基础
    vue的使用1
    solt插槽的使用。
    Vue的使用
    Vue的router使用
  • 原文地址:https://www.cnblogs.com/qijunjun/p/7208896.html
Copyright © 2020-2023  润新知