动画和菜单下拉

  1. 动画和菜单下拉
    1. 展开和收起动画
    2. 菜单下拉(1)
    3. 菜单下拉(2)

动画和菜单下拉

展开和收起动画

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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery展开和收起动画</title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 300px;
background: red;
display: none;
}
</style>
<script src="js/jquery-1.12.4.js"></script>
<script>
$(function () {
// 编写jQuery相关代码
$("button").eq(0).click(function () {
$("div").slideDown(1000, function () {
alert("展开完毕");
});
});
$("button").eq(1).click(function () {
$("div").slideUp(1000, function () {
alert("收起完毕");
});
});
$("button").eq(2).click(function () {
$("div").slideToggle(1000, function () {
alert("收起完毕");
});
});
});
</script>
</head>
<body>
<button>展开</button>
<button>收起</button>
<button>切换</button>
<div></div>
</body>
</html>

菜单下拉(1)

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>折叠菜单</title>
<style>
*{
margin: 0;
padding: 0;
}
.nav{
list-style: none;
width: 300px;
margin: 100px auto;
/*border: 1px solid #000;*/
}
.nav>li{
border: 1px solid #000;
line-height: 35px;
border-bottom: none;
text-indent: 2em;
position: relative;
}
.nav>li:last-child{
border-bottom: 1px solid #000;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}
.nav>li:first-child{
border-top-right-radius: 10px;
border-top-left-radius: 10px;
}
.nav>li>span{
background: url("images/arrow_right.png") no-repeat center center;
display: inline-block;
width: 32px;
height: 32px;
position: absolute;
right: 10px;
top: 5px;
}
.sub{
display: none;
}
.sub>li{
list-style: none;
background: mediumpurple;
border-bottom: 1px solid white;
}
.sub>li:hover{
background: red;
}
.nav>.current>span{
transform: rotate(90deg);
}
</style>
<script src="js/jquery-1.12.4.js"></script>
<script>
$(function () {
// 1.监听一级菜单的点击事件
$(".nav>li").click(function () {
// 1.1拿到二级菜单
var $sub = $(this).children(".sub");
// 1.2让二级菜单展开
$sub.slideDown(1000);
// 1.3拿到所有非当前的二级菜单
var otherSub = $(this).siblings().children(".sub");
// 1.4让所有非当前的二级菜单收起
otherSub.slideUp(1000);
// 1.5让被点击的一级菜单箭头旋转
$(this).addClass("current");
// 1.6让所有非被点击的一级菜单箭头还原
$(this).siblings().removeClass("current");
});
});
</script>
</head>
<body>
<ul class="nav">
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
<li>一级菜单<span></span>
<ul class="sub">
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
<li>二级菜单</li>
</ul>
</li>
</ul>
</body>
</html>

菜单下拉(2)

  • 注意:在jQuery中如果需要执行动画, 建议在执行动画之前先调用stop方法,然后再执行动画
    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
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>下拉菜单</title>
    <style>
    *{
    margin: 0;
    padding: 0;
    }
    .nav{
    list-style: none;
    width: 300px;
    height: 50px;
    background: red;
    margin: 100px auto;
    }
    .nav>li{
    width: 100px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    float: left;
    }
    .sub{
    list-style: none;
    background: mediumpurple;
    display: none;
    }
    </style>
    <script src="js/jquery-1.12.4.js"></script>
    <script>
    $(function () {
    // 1.监听一级菜单的移入事件
    $(".nav>li").mouseenter(function () {
    // 1.1拿到二级菜单
    var $sub = $(this).children(".sub");
    // 停止当前正在运行的动画:
    $sub.stop();
    // 1.2让二级菜单展开
    $sub.slideDown(1000);
    });
    // 2.监听一级菜单的移出事件
    $(".nav>li").mouseleave(function () {
    // 1.1拿到二级菜单
    var $sub = $(this).children(".sub");
    // 停止当前正在运行的动画:
    $sub.stop();
    // 1.2让二级菜单收起
    $sub.slideUp(1000);
    });

    });
    </script>
    </head>
    <body>
    <ul class="nav">
    <li>一级菜单
    <ul class="sub">
    <li>二级菜单</li>
    <li>二级菜单</li>
    <li>二级菜单</li>
    <li>二级菜单</li>
    <li>二级菜单</li>
    <li>二级菜单</li>
    <li>二级菜单</li>
    </ul>
    </li>
    <li>一级菜单</li>
    <li>一级菜单</li>
    </ul>
    </body>
    </html>

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2113132982@qq.com

文章标题:动画和菜单下拉

文章字数:1.5k

本文作者:南邮石磊

发布时间:2020-07-24, 00:12:15

最后更新:2020-08-06, 00:35:48

原始链接:https://southpost.github.io/2020/07/24/%E5%8A%A8%E7%94%BB%E5%92%8C%E8%8F%9C%E5%8D%95%E4%B8%8B%E6%8B%89/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏