左侧竖条导航栏点击出现效果的实现

大部分的网站导航栏都是在网页的顶端,这类导航栏看起来非常一般,而有些在左侧竖着显示的导航栏就比较好看一些了,但是今天为大家介绍的是左侧竖条导航栏实现点击出现的效果,也就是刚开始只显示导航,不显示分类栏,而点击导航就可以显示分类栏了,下面一起来看下源代码的实现吧。
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="js/jquery.min.js"></script>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"&gt;
</script>
<style>
html,
body {
padding: 0;
margin: 0;
}

    main {
        width: 100%;
    }

    .main {
        width: 100%;
        min-height: 100vh;
        background-color: #ccc;
    }

    .x_left {
        position: fixed;
        left: 0;
        top: 100px;
        width: 100px;
        /* border: 1px solid red; */
    }

    .x_left_title {
        padding: 10px 0;
        margin: 2px 0;
        width: 50px;
        background-color: white;
        box-shadow:  0 0 5px 1px rgb(99, 99, 99);
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }

    .x_left_main {
        display: flex;
        flex-flow: column;
        /* border: 1px solid red; */
        position: relative;
        width: 0;
    }

    .x_left_main span {
        padding: 10px 0;
        margin: 3px 0;
        width: 100px;
        background-color: white;
        box-shadow:  0 0 5px 1px rgb(122, 147, 160);
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        left: -100px;
    }
</style>

</head>

<body>
<main>
<div class="main">
<div class="x_left">
<div class="x_left_title">
导航
</div>
<div class="x_left_main">
<span>aaa11111111</span>
<span>aaa22222222</span>
<span>aaa33333333</span>
<span>aaa44444444</span>
<span>aaa55555555</span>
<span>aaa66666666</span>
<span>aaa77777777</span>
<span>aaa88888888</span>
<span>aaa99999999</span>
</div>
</div>
</div>
</main>
<script>
var show = "";
var hidden = ""
var hidden_top = "";
var hidden_top_num = "";
var hidden_bottom_num = "";
var length = $(".x_left_main span").length;
var num = 0;
var whether = 99;
var qsb = 99

    $(".x_left_title").click(function(){
        if(whether==99&&qsb==99){
            qsb = 1
            $(this).stop().animate({width:"100px"},1000)
            var num = 0;
            $(".x_left_main span").eq(num).stop().animate({
                left:"0"
            },150)
            show = setInterval(function(){
                if(num!=length){
                    num++
                    $(".x_left_main span").eq(num).stop().animate({
                        left:"0"
                    },150)
                }else{
                    clearInterval(show)
                    whether = 1
                    qsb = 99
                }
            },150)
        }else{
            if(qsb==99&&whether==1){
                qsb = 1
                $(this).stop().animate({width:"50px"},1000)
                var num = 0;
                $(".x_left_main span").eq(num).stop().animate({
                    left:"-100px"
                },150)
                show = setInterval(function(){
                    if(num!=length){
                        num++
                        $(".x_left_main span").eq(num).stop().animate({
                            left:"-100px"
                        },150)
                    }else{
                        clearInterval(show)
                        whether = 99
                        qsb = 99
                    }
                },150)
            }

        }

    })
    $(".x_left_main span").each(function(i){
        $(this).click(function(){
            $(".x_left_title").stop().animate({width:"50px"},1000)
            hidden_top_num = i
            hidden_bottom_num = i
            $(this).stop().animate({
                left:"-100px"
            })
            hidden_top = setInterval(function(){
                if(hidden_top_num!=0){
                    hidden_top_num--
                    $(".x_left_main span").eq(hidden_top_num).stop().animate({
                        left:"-100px"
                    })
                }else{
                    clearInterval(hidden_top)
                    whether = 99
                    qsb = 99
                }
            },150)
            hidden_bottom = setInterval(function(){
                if(hidden_bottom_num!=length){
                    hidden_bottom_num++
                    $(".x_left_main span").eq(hidden_bottom_num).stop().animate({
                        left:"-100px"
                    })
                }else{
                    clearInterval(hidden_bottom)
                    whether = 99
                    qsb = 99
                }
            },150)
        })
    })

</script>

</body>

</html>

  看到这里详细大家已经可以预测出实际效果了吧,这种效果是不是要比传统的导航栏更加具有吸引力呢?那么大家也赶紧动手尝试一下吧,如果还存在不理解的地方,可以留言咨询哦。

  本文由专业的app开发报价燚轩科技整理发布,如需转载请注明出处!

原文地址:http://blog.51cto.com/13686158/2114054

时间: 2024-11-09 02:44:58

左侧竖条导航栏点击出现效果的实现的相关文章

手机端左侧固定导航栏推出效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-

ios 导航栏 点击barbutton的按钮 下拉列表

环境:xocde5.0.2+ios7.0.1 1.导航栏 ----点击科目--------下拉列表 代码:NGRightTableViewViewController.h #import <UIKit/UIKit.h> @protocol PulldownMenuDelegate -(void)menuItemSelected:(NSIndexPath *)indexPath; -(void)pullDownAnimated:(BOOL)open; @end @interface NGRigh

web 模板 类似京东左侧的导航栏

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

web导航栏点击跳转后的样式

搭建web网页的导航栏时,需要有点击某导航页面跳转后,被点击的<a>标签样式添加或改变(bootstrap只能实现页面不刷新的点击效果),网上查阅了很多,终于解决了问题,豁然开朗的同时也小总结一下: ps:以下为摘录百度知道,并非本人原创,而我用的便是其中第二种方法. 方法有很多,大体可分为三种: 一.在服务器端判断当前页面隶属于哪一个分类,然后对其进行高亮化,这个高亮化的方法也有很多,相信不是你要的,不一一讲解: 二.每一个页面这个导航条都在各自的页面内,那么独立对其分配class或者行内样

仿知乎/途家导航栏渐变文字动画效果-b

demo.gif 效果图如上,简单分析下 1.导航栏一开始是隐藏的,随着scrollView滚动而渐变 2.导航栏左右两边的navigationItem是一直显示的 3.导航栏参考了途家app,使用了毛玻璃效果,背景是一张图片 4.下拉放大图片效果 5.title文字动画效果 通过简单分析,系统的导航栏实现以上效果有点困难,直接自定义一个假的导航栏更容易点 分布拆解实现以上效果 一.下拉放大header图片 - (void)viewDidLoad {        [super viewDidL

CSS实现导航栏底部动态滚动条效果

预习了CSS3部分的新知识,想着在不使用JS的情况下实现导航栏滚动条效果,如下: 实现滚动条效果,其实就是在<li></li>标签中让<span>元素的宽度由0变化到100%,代码很简单,如下所示: CSS样式部分: <style> ul.nav{background-color: whitesmoke;} ul.nav li{padding: 10px 0;margin: 0 30px;overflow: hidden;} ul.nav li a{text

React实现导航栏点击高亮

在jquery中实现导航栏的切换只需要一行代码找到同级其他元素removeClass以及添加点击元素addClass就可以实现了,但是React没法直接找到同级元素,这个时候需要一点js中的思维,根据添加的序列号判断该添加哪种className 为了方便实例测试,这个我直接引用了菜鸟教程的在线文件,可以直接将代码粘贴运行 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <

简单的jquery左侧导航栏和页面选中效果

这里是要实现导航的左侧并选中的,此功能需引用jquery 效果: 左侧导航 <div class="box"> <ul class="menu"> <li class="level1"> <a href="#none" rel="external nofollow">衬衫</a> <ul class="level2">

仿淘宝左侧菜单导航栏纯Html + css 写的

这俩天闲来没事淘宝逛了一圈看到淘宝的左侧导航菜单做的是真心的棒啊,一时兴起,查了点资料抓了几个图片仿淘宝写了个css,时间紧写的不太好,大神勿喷,给小白做个参考 废话不多说先来个效果图 接下来直接上代码,图片没法传,只能直接放代码下边,辛苦点一张一张扣去吧?? HTML部分 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd