【jquery】【Dropdown】过度下拉框如何实现

本文详细介绍了如何使用HTML、CSS和JavaScript实现下拉菜单的过渡效果,包括鼠标点击和鼠标悬停两种触发方式,通过调整高度和透明度实现平滑过渡。

鼠标点击(click)实现效果:

如下图,从点击Dropdown有一个下拉过度的过程,这个也是很多OA系统用到的一个前端技术了,有兴趣的可以看一下哈
在这里插入图片描述

代码

css代码:
    .dropdown {
        width: 44px;
        height: 20px;
    }

        .dropdown a {
            text-decoration: none;
            color: #000;
            display: inline-block;
        }

        .dropdown > a {
            border: 1px solid #000;
            padding: 6px 12px;
        }


        /*//点击不实现过度*/
    /*.dropdown-menu {

        display:none;
        width: 200px;      
        list-style: none; 
        margin: 0;
        padding: 0;
        border: 1px solid #aaa;
        box-shadow: 5px 5px 6px #000;
    }*/
    .dropdown-menu {
        width: 150px;
        height: 153px;
        opacity: 0;
        overflow: hidden;   /*果内容溢出一个元素的框,会发生什么。*/
        list-style: none;
        margin: 0;
        padding: 0;
        /*border: 1px solid #aaa;*/
        box-shadow: 5px 5px 6px #000; /*阴影*/
        transition: all .5s linear; /*过度功能 无论是透明还是大小*/  
    }

        .dropdown-menu a {
            padding: 6px 10px;
            width: 160px;
        }

        .dropdown-menu li:hover {
            background: #ddd;
        }
body里的内容
<body> 
<h1>下拉菜单</h1>
 <div class="dropdown">
     <a data-trigger="dropdown" href="#">Dropdown</a>
     <ul class="dropdown-menu">
         <li>
             <a href="#">选项一</a>
         </li>

         <li>
             <a href="#">选项二</a>
         </li>
         <li>
             <a href="#">选项三</a>
         </li>

         <li>
             <a href="#">选项四</a>
         </li>

     </ul>
 </div>

<script src="../js/jquery.js"></script>
<!--//单机按钮下拉
//找到data-trigger属性为dropdown的元素,绑定单机事件-->
<script>
    $("[data-trigger=dropdown]").click
        (function (e) {
        e.preventDefault();
        //封装this为jQuery对象$a
        var $a = $(this);
        //找到$a的下一个元素,保存在menu中
        var $menu = $a.next();      //.nextElementSibling
        
        if ($menu.css("height")=="153px") {
	   $menu.css({ height: 0, opacity:0}
        }
        else {
        //jquery一次修改多个属性
            $menu.css({ height: 153, opacity:1 });
            
            //$menu.css("height", 153);
            //$menu.css("opacity", 1);
        }
    })
</script>
</body>

鼠标进入(mouseover)实现效果:

在这里插入图片描述

css代码和上边一样,就下边的js代码不同:

<script>
//应该是父元素
    $("[data-trigger=dropdown]").parent().mouseover(
        function () {
            var $div = $(this);
            var $menu = $div.children().last();  //这里就是ul了,很巧妙
            $menu.css({ height:153, opacity: 1 });
        }
    ).mouseout(function () {
        var $div = $(this);
        var $menu = $div.children().last();
        $menu.css({ height: 0, opacity: 0 });
    })
</script>
岗前实训项目要求 一、题目要求: 制作一套静态页面的网站 主题自拟,可以是企业的门户网站,学校官方网站或音乐、宠物、电影、动漫、游戏等或者其他任意题材的相关内容。 二、技术要求 使用HTML5+CSS3+Javascript Jquery bootstrap 或 easy-UI等,也可以扩展使用其他技术 项目用图 可以使用PS软件自行制作,也可以在免费的网站上下载。 三、开发软件 Hbuilder sublimeText vscode 等均可 四、评判标准和要求 4.1项目完整性: 项目具有主页 (商城/网站介绍 等内容根据个人喜好自定5-6个页面) 完成页面之间的跳转,项目中的图片可以正常展示,项目中的按钮事件完整 20分 项目具有登陆和注册页面 5分 登陆注册具有校验显示 5分 页面设计美观,符合软件市场设计 5分 颜色搭配美观 5分 项目主题新颖,具有精美的动画效果 5分 项目具有轮播功能 5分 项目使用级联菜单 5分 项目中具有展开闭合效果 5分 项目中具有商业价值,存在企业盈利点 5分 项目代码符合前端页面编码标准 项目结构、命名、注释等5分 4.2项目演示: 表达流利 对项目页面架构的了解深度 5分 4.3项目提问: 技术问题 答辩时老师提问的技术问题 5分 4.4个人设计功能及特色,且不属于抄袭作品 20分 五、项目验收 1.验收项目源码及所有文件 2.项目展示视频录制 3.实验报告,纸质版和电子版 4.项目答辩s
最新发布
06-22
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值