一个简单的收缩菜单效果

收缩菜单是一种常见的网页UI设计效果,可以在有限的空间内呈现更多的内容,增强网站的可读性和交互性。下面是一个简单的收缩菜单效果的完整攻略。

步骤一:准备HTML和CSS代码

首先,我们需要准备一个基本的HTML结构,包括一个固定宽度的顶部导航栏和一个带有列表内容的主体区域。代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>收缩菜单效果</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <header>
        <nav>
            <ul>
                <li><a href="#">导航1</a></li>
                <li><a href="#">导航2</a></li>
                <li><a href="#">导航3</a></li>
                <li><a href="#">导航4</a></li>
            </ul>
        </nav>
    </header>
    <main>
        <h1>收缩菜单效果</h1>
        <ul>
            <li><a href="#">内容1</a></li>
            <li><a href="#">内容2</a></li>
            <li><a href="#">内容3</a></li>
            <li><a href="#">内容4</a></li>
            <li><a href="#">内容5</a></li>
            <li><a href="#">内容6</a></li>
            <li><a href="#">内容7</a></li>
            <li><a href="#">内容8</a></li>
            <li><a href="#">内容9</a></li>
            <li><a href="#">内容10</a></li>
        </ul>
    </main>
</body>
</html>

然后,我们需要为导航栏和主体区域添加CSS样式,包括宽度、高度、背景颜色等等。代码如下:

body {
    margin: 0;
    padding: 0;
}

header {
    width: 100%;
    height: 50px;
    background-color: #333;
    position: fixed;
    top: 0;
    left: 0;
}

nav {
    width: 960px;
    height: 50px;
    margin: 0 auto;
}

nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

nav li {
    float: left;
}

nav li a {
    display: block;
    width: 100px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    text-align: center;
    text-decoration: none;
}

main {
    margin-top: 50px;
    width: 960px;
    background-color: #f2f2f2;
    margin: 0 auto;
    padding: 20px;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

li {
    margin: 10px 0;
}

li a {
    display: block;
    width: 100px;
    height: 20px;
    line-height: 20px;
    color: #333;
    text-align: center;
    background-color: #fff;
    text-decoration: none;
    border: 1px solid #333;
}

li a:hover {
    background-color: #333;
    color: #fff;
}

步骤二:添加jQuery代码

接下来,我们需要添加jQuery代码来实现收缩菜单效果。首先,在HTML文件头部添加以下代码,引入jQuery库:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

然后,在HTML文件尾部添加以下代码,编写jQuery函数:

<script>
    $(document).ready(function() {
        $('nav ul').hide();
        $('header').mouseover(function() {
            $('nav ul').slideDown(500);
        });
        $('nav').mouseleave(function() {
            $('nav ul').slideUp(200);
        });
    });
</script>

步骤三:测试效果

最后,我们启动浏览器,测试效果。当鼠标放置在导航栏上方时,下拉菜单会展开;当鼠标离开导航栏时,下拉菜单会收起。至此,一个简单的收缩菜单效果完成。

示例说明

示例一

将导航栏上方的图标替换成一个hamburger图标,点击后展开下拉菜单。

<header>
    <div class="hamburger">
        <span></span>
        <span></span>
        <span></span>
    </div>
    <nav>
        <ul>
            <li><a href="#">导航1</a></li>
            <li><a href="#">导航2</a></li>
            <li><a href="#">导航3</a></li>
            <li><a href="#">导航4</a></li>
        </ul>
    </nav>
</header>
.hamburger {
    display: none;
    position: fixed;
    top: 10px;
    right: 10px;
    cursor: pointer;
}

.hamburger span {
    display: block;
    width: 35px;
    height: 5px;
    margin-bottom: 5px;
    background-color: #000;
}

@media screen and (max-width: 960px) {
    nav ul {
        display: none;
        position: absolute;
        top: 50px;
        left: 0;
        width: 100%;
        background-color: #f2f2f2;
        padding: 0;
    }

    nav li {
        display: block;
        width: 100%;
        float: none;
        border-bottom: 1px solid #333;
        margin: 0;
    }

    .hamburger {
        display: block;
    }
}
$(document).ready(function() {
    $('nav ul').hide();
    $('.hamburger').click(function() {
        $('nav ul').slideToggle(200);
    });
});

示例二

为下拉菜单增加过渡效果,并在菜单项下方添加阴影效果。

nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 50px;
    left: 0;
    width: 100%;
    background-color: #fff;
    box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
    transition: all 0.2s ease-in-out;
    z-index: 9999;
}

nav li {
    margin: 0;
    border-bottom: 1px solid #f2f2f2;
}

nav li:last-child {
    border-bottom: none;
}

nav li a {
    display: block;
    width: 100%;
    height: 40px;
    line-height: 40px;
    padding-left: 20px;
    color: #333;
    text-decoration: none;
}

nav li a:hover {
    background-color: #f2f2f2;
}
$(document).ready(function() {
    $('nav ul').hide();
    $('header').mouseover(function() {
        $('nav ul').slideDown(200);
    });
    $('nav').mouseleave(function() {
        $('nav ul').slideUp(200);
    });
});

以上就是一个简单的收缩菜单效果的完整攻略,其中包含两个示例说明。您可以根据自己的需要,灵活调整样式和效果,为网站增加更多的交互性和美观性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个简单的收缩菜单效果 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • css3新增选择器的应用示例

    下面是关于“CSS3新增选择器的应用示例”的完整攻略。 什么是CSS选择器? 在CSS中,选择器是指针对文档中元素的一种方式。使用选择器可以选定指定类型的HTML元素并对这些元素进行样式表的定义。 CSS3新增选择器 CSS3有很多新增加的选择器,让CSS更加强大。以下是一些比较常用的CSS3新增的选择器: 1. :nth-child() 选择器 :nth-…

    css 2023年6月9日
    00
  • html内容超出了div的宽度如何换行让内容自动换行

    当HTML内容超出div的宽度时,可以通过设置CSS属性来让内容自动换行并显示在多个行内。下面是具体的攻略: 1. 设置CSS white-space属性 将white-space属性的值设置为“normal”或“pre-wrap”即可让内容自动换行: div{ white-space: normal; /*或者pre-wrap*/ } 其中,“normal…

    css 2023年6月10日
    00
  • 兼容IE与firefox的css 线性渐变(linear-gradient)

    实现兼容IE与Firefox的线性渐变,可以通过使用CSS的filter属性和渐变图像background-image属性进行实现。具体步骤如下: 1.使用CSS的filter属性实现IE浏览器中的线性渐变: 在IE中,我们可以使用下面的代码实现线性渐变: background: linear-gradient(to right, #ff0000, #000…

    css 2023年6月11日
    00
  • CSS中px em rem区别与使用

    当我们设计网页时,经常需要指定元素的大小,字体大小等,而CSS中提供了三种单位:px、em和rem。本篇攻略将详细讲解这三种单位的区别和应用场合。 px单位 px(Pixel)是像素单位,也是CSS中最常用的单位。指定某元素的大小时,使用的就是px。px的大小是相对于显示器屏幕分辨率而言的,即1px等于显示器上的一个物理像素点。 例如,我们定义一个宽度为20…

    css 2023年6月10日
    00
  • 超好玩js页面效果之实现数值的动态变化

    超好玩js页面效果之实现数值的动态变化是一个非常有趣的前端效果,可以使得页面更加生动,吸引用户的眼球。下面我将介绍一个完整的攻略,来实现这个页面效果。 1.准备工作 在开始之前,需要在网页中引入jQuery库。可以通过以下代码实现: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3…

    css 2023年6月10日
    00
  • selenium环境搭建及基本元素定位方式详解

    接下来我将为您详细讲解“selenium环境搭建及基本元素定位方式详解”的完整攻略。 Selenium环境搭建 Selenium是一个用于自动化测试的工具,可以模拟用户操作浏览器,测试网站功能及性能。为了使用Selenium,在使用前需要先安装并配置Selenium环境。下面我们将介绍如何在Windows操作系统上搭建Selenium环境。 1. 安装Jav…

    css 2023年6月9日
    00
  • 页面图片浮动左右滑动效果的简单实现案例

    下面是“页面图片浮动左右滑动效果的简单实现案例”的完整攻略: 1. 实现步骤 1.1 HTML结构 需要在HTML中定义一个div容器,用于容纳所有图片,并为每个图片添加一个标签,实现点击图片跳转。 <div class="image-container"> <a href="#"> <i…

    css 2023年6月10日
    00
  • 使用HTML5捕捉音频与视频信息概述及实例

    下面就是使用HTML5捕捉音频与视频信息的完整攻略: 概述 在HTML5中,我们可以使用<audio>和<video>标签来嵌入音频和视频文件到网页中,同时也可以使用JavaScript通过这些标签来获取和修改音频和视频的相关信息。在本攻略中,我们主要介绍如何使用HTML5来捕捉音频和视频的信息,包括如何获取音频和视频的持续时间、当前…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部