一个简单的收缩菜单效果

yizhihongxing

收缩菜单是一种常见的网页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日

相关文章

  • Vue使用Swiper封装轮播图组件的方法详解

    下面是“Vue使用Swiper封装轮播图组件的方法详解”的完整攻略: Vue使用Swiper封装轮播图组件的方法详解 Swiper简介 Swiper是一个流行的开源移动端滑动组件,可以快速实现诸如轮播图、滑块切换等效果。在Vue中使用Swiper可以很方便地实现这些效果。 封装轮播图组件 我们可以使用Vue的单文件组件以及Swiper组件来封装我们的轮播图组…

    css 2023年6月10日
    00
  • Webstorm常用快捷键备忘(Webstorm入门指南)

    Webstorm是一款非常强大的JavaScript IDE,快捷键是提高效率的重要手段。下面是Webstorm常用快捷键备忘: 编辑相关 Shift + Enter: 在当前行下面插入一行空白行。 Ctrl + D : 复制当前行,复制的行会粘贴在当前行下面。 Ctrl + Y : 删除当前行。 Ctrl + Z : 撤销上一步操作。 Ctrl + Shi…

    css 2023年6月9日
    00
  • 原生JS实现汇率转换功能代码实例

    下面我将详细讲解“原生JS实现汇率转换功能代码实例”的完整攻略。 一、前置知识 在学习原生JS实现汇率转换功能代码实例之前,需要掌握以下前置知识: HTML基础 CSS基础 JavaScript基础(包括DOM操作、事件绑定等) 如果掌握了以上基础知识,那么就可以进入具体的代码实现了。 二、HTML结构 在实现汇率转换功能之前,我们需要先搭建页面结构。页面结…

    css 2023年6月10日
    00
  • JavaScript开发Chrome浏览器扩展程序UI的教程

    想要开发Chrome浏览器扩展程序UI,需要掌握以下几个方面: 1.了解Chrome扩展程序的生命周期及其结构 Chrome浏览器插件主要由四个部分组成:manifest.json、background.js、popup.html和icon。 其中,manifest.json是必须的,这个文件必须放在插件文件夹根目录内。它用来告诉浏览器插件的基本信息,如插件…

    css 2023年6月10日
    00
  • CSS网页设计:百分比进行背景图片定位

    当我们制作网页时,经常需要用到背景图片,但是如何精确定位背景图片却是一件比较棘手的问题。这时候,我们可以使用CSS百分比进行背景图片定位。以下是进行背景图片定位的详细攻略。 1. 设置背景图片 首先,在CSS中设置背景图片,代码如下: body { background-image: url(background.jpg); background-repea…

    css 2023年6月9日
    00
  • js实现搜索栏效果

    下面是详细的“JS实现搜索栏效果”的攻略: 1. 创建HTML结构 首先,我们需要在HTML文件中创建一个搜索栏的结构,通常包含一个输入框和一个搜索按钮,代码如下: <div> <input type="text" id="search-input"> <button id="s…

    css 2023年6月10日
    00
  • 基于html+css做一个好看的可翻转登录注册界面

    下面我将详细讲解“基于html+css做一个好看的可翻转登录注册界面”的完整攻略。 一、分析设计需求 在开始编写代码前,我们需要先分析设计需求,确切地知道我们需要实现什么样的界面。根据需求,我们需要完成以下内容: 制作一个两面可翻转的登录注册页面; 界面需要美观、易用。 二、编写HTML代码 制作一个好看的可翻转登录注册界面,需要编写合理的HTML代码,使得…

    css 2023年6月11日
    00
  • jquery实现的缩略图预览滑块实例

    下面我将详细讲解如何使用 jQuery 实现缩略图预览滑块的效果: 前置准备 在开始实现缩略图预览滑块之前,需要先引入 jQuery 库,可以通过以下方式进行引入: <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></s…

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