jQuery和CSS3折叠卡片式下拉列表框特效

news/2024/12/2 18:10:36/文章来源:https://www.cnblogs.com/liylllove/p/18582417

这是一款使用JQUERY和CSS3制作的效果非常炫酷的折叠卡片式下拉列表框特效。该下拉列表框特效将每一个列表项都制作为卡片的样式,打开和关闭它有打开和关闭百叶窗的感觉,效果非常不错。

预览    下载

 

 使用方法

 HTML结构

该下拉列表框特效的列表项使用一个无序列表来制作,用于切换打开和关闭状态的元素是一个超链接元素。

<div class="container"><div class="card-drop"><a class='toggle' href="#"><i class='fa fa-suitcase'></i> <span class='label-active'>Everyting</span></a><ul><li class='active'><a data-label="Everyting" href="#"><i class='fa fa-suitcase'></i> Everyting</a></li>......</ul></div>
</div>
 CSS样式

a.toggle元素用于切换下拉列表的打开和关闭状态。为了制作点击时卡片上翻的效果,它被设置了transform-style: preserve-3d;属性。同时修改了转换的原点transform-origin: 50% 0%;

.card-drop > a.toggle {position: relative;z-index: 100;-moz-backface-visibility: hidden;-webkit-backface-visibility: hidden;backface-visibility: hidden;-moz-transform-style: preserve-3d;-webkit-transform-style: preserve-3d;transform-style: preserve-3d;-moz-transform-origin: 50% 0%;-ms-transform-origin: 50% 0%;-webkit-transform-origin: 50% 0%;transform-origin: 50% 0%;-moz-transition: linear 0.1s;-o-transition: linear 0.1s;-webkit-transition: linear 0.1s;transition: linear 0.1s;
}              

但它处于激活状态的时候,它会沿X轴进行旋转,并使用:before:after伪元素来制作角部三角形效果。

.card-drop > a.toggle:active {-moz-transform: rotateX(60deg);-webkit-transform: rotateX(60deg);transform: rotateX(60deg);
}
.card-drop > a.toggle:active:after {-moz-transform: rotateX(180deg);-webkit-transform: rotateX(180deg);transform: rotateX(180deg);
}
.card-drop > a.toggle:before, .card-drop > a.toggle:after {content: "";position: absolute;
}
.card-drop > a.toggle:before {right: 25px;top: 50%;margin-top: -2.5px;border-left: 6px solid transparent;border-right: 6px solid transparent;border-top: 6px solid rgba(0, 0, 0, 0.8);
}
.card-drop > a.toggle.active:before {transform: rotate(180deg);
}                

列表项在切换时只是简单的使用jQuery来修改它们的topwidthmargin-left属性,使其显示和隐藏。并使用ease-out作为CSS动画过渡效果。

.card-drop ul {position: absolute;height: 100%;top: 0;display: block;width: 100%;
}
.card-drop ul li {margin: 0 auto;-moz-transition: all, ease-out 0.3s;-o-transition: all, ease-out 0.3s;-webkit-transition: all, ease-out 0.3s;transition: all, ease-out 0.3s;position: absolute;top: 0;z-index: 0;width: 100%;
}
.card-drop ul li a {border-top: none;
}
.card-drop ul li a:hover {background-color: #4aa3df;color: #f3f9fd;
}
.card-drop ul li.active a {color: #fff;background-color: #258cd1;cursor: default;
}
.card-drop ul li.closed a:hover {cursor: default;background-color: #3498db;
}                
 JavaScript

在jQuery代码中,setClosed()函数用于关闭所有的列表项,默认它们是处于关闭状态的。

function setClosed() {li.each(function (index) {$(this).css('top', index * 4).css('width', width - index * 0.5 + '%').css('margin-left', index * 0.25 + '%');});li.addClass('closed');toggler.removeClass('active');
}
setClosed();                

然后监听.toggle元素的mousedown事件,该事件中切换列表的打开和关闭状态。

toggler.on('mousedown', function () {var $this = $(this);if ($this.is('.active')) {setClosed();} else {$this.addClass('active');li.removeClass('closed');li.each(function (index) {$(this).css('top', 60 * (index + 1)).css('width', '100%').css('margin-left', '0px');});}
});                

最后在每一个列表项被点击的时候,将该列表项的内容移动到第一项中,被关闭整个下来列表。

links.on('click', function (e) {var $this = $(this), label = $this.data('label');icon = $this.children('i').attr('class');li.removeClass('active');if ($this.parent('li').is('active')) {$this.parent('li').removeClass('active');} else {$this.parent('li').addClass('active');}toggler.children('span').text(label);toggler.children('i').removeClass().addClass(icon);setClosed();e.preventDefault;
}); 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/845542.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

幂等设计:确保操作的安全与可靠

目录一、概述1.1、什么是幂等1.2、为什么需要幂等?二、幂等如何设计实现幂等的8 种方案select+insert+主键/唯一索引冲突状态机幂等抽取防重表token令牌悲观锁(如select for update)乐观锁分布式锁三、HTTP的幂等 一、概述 在分布式系统和微服务架构中,确保操作的安全性和可靠…

从仪表盘探索 MongoDB 关键指标

这是 MongoDB 监控系列文章的第七篇,前面几篇文章的链接如下:MongoDB 监控(一) MongoDB 监控(二) MongoDB 监控(三) MongoDB 监控(四) MongoDB 监控(五) MongoDB 监控(六)按照前面系列文章,我们已经采集到 MongoDB 的监控数据了,并且通过 Grafana 和 Nightinga…

微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态

微服务引擎 MSE 及云原生 API 网关 2024 年 10 月产品动态

20222425 2024-2025-1 《网络与系统攻防技术》实验七实验报告

1.实验内容 本周学习内容:本周我们学了web安全的章节,首先我们了解了前端和后端技术,其次我们学习了一些web安全攻防的内容,例如SQL注入和XSS跨站脚本攻击、CSRF以及安全防范的内容。在实验的过程中我们学到了网络欺诈与防范技术。 2.实验过程 主机IP:192.168.35.1 kali(…

基于Bootstrap3的简单柱状图表插件

jchart是一款简单小巧的基于Bootstrap3.x的jquery柱状图表插件。该柱状图片表插件通过简单的设置,就可以生成非常漂亮的水平柱状图,并带有水平和垂直标签以及图表的头部和尾部。 在线演示 下载 使用方法 该jQuery柱状图插件可以通过javascript来调用,也可以直接使用HTML标…

编译OpenCV——jetson嵌入式平台

jetson嵌入式平台的系统为:ubuntu20.04 aarch64 不再研究Ubuntu x64上交叉编译ubuntu aarch64的OpenCV库,因为无法识别到arm的GTK导致编译不进去,最终imshow时会报如下错误:modules/highgui/src/window.cpp:611:error: (-2) The function is not implemented. Rebuild the …

Breakout pg walkthrough Intermediate

nmap ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A 192.168.192.182 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-02 04:50 UTC Nmap scan report for 192.168.192.182 Host is up (0.071s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SE…

从开发者工具转型 AI 呼叫中心,这家 Voice Agent 公司已服务 100+客户

Retell.ai 的 5 位联创。(图:maginative.com)Retell AI 提供一个平台,用于构建和部署可进行自然、类人对话的 AI voice agent,赋能呼叫中心,替代或辅助人工座席。Retell AI 起初为构建 voice agent 产品的开发者提供 API,现已将重点转向为中型企业提供完整的 AI 呼叫中心…

实验5文档部分代码

实验一找到输入数据中的最大值和最小值 指向x[0]输出最大数 可以 实验二80 s1的内存大小和字符串长度 能 s1存储的内容是字符串"Learning makes me happy",而sizeof(s1)返回的是整个指针类型的大小\ 不能 在原始代码中,通过赋值的方式为s1分配内存空间,并初始化其…

IC Compiler II(ICC II)后端设计流程——超详细

Preface 本文中英文结合(学习一些专有名词),主要介绍ICC II软件进行后端设计的主要流程,在阅读之前需要对数字IC设计流程有一定的了解。 逻辑综合相关知识请查看:Synopsys逻辑综合及DesignCompiler的使用(想了解逻辑综合的可以看看这个,但内容较多) 数字IC设计整体流程…

迁移工具简介

迁移工具能有序、安全、便捷、轻松地将数字资产、服务、IT 资源及应用程序部分或完全迁移到天翼云,同时保证云上业务的可用性、安全性以及连续性。支持 x86、 ARM 同构服务器间迁移,覆盖多种主流操作系统、支持信创适配。本文分享自天翼云开发者社区《迁移工具简介》,作者:…