首页 > 其他分享 >jQuery和CSS3折叠卡片式下拉列表框特效

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

时间:2024-12-02 18:10:15浏览次数:4  
标签:卡片式 jQuery drop transform li toggle CSS3 active card

这是一款使用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;
}); 

标签:卡片式,jQuery,drop,transform,li,toggle,CSS3,active,card
From: https://www.cnblogs.com/liylllove/p/18582417

相关文章

  • 支持30+种类型幻灯片 | 轮播图 | 旋转木马的强大jQuery插件
    jssorslider是一款功能非常强大的可制作超过30种不同类型的幻灯片|轮播图|旋转木马的JQUERY插件。jssor具有高性能,轻量级,跨浏览器等特点,它可以支持IE6+的浏览器,并且可以支持移动触摸设备。它的特点还有:轻量级,压缩版本只有17KB大小。高性能,通过消耗很少的CPU来完成平滑过渡效果......
  • jQuery和CSS3超酷3D翻转式模态对话框插件
    jquery-awesomodals是一款JQUERY和CSS3超酷3D翻转式模态对话框插件。该对话框特效通过jquery和CSS3transitions和transforms来在对话框打开时制作3D翻转的效果,效果非常的酷。在线演示 下载 安装可以通过bower来安装jquery-awesomodals插件。$bowerinstalljquery-awe......
  • 使用css3画一个扇形
    Youcancreateapie-chart-likesector/segmentusingpureCSSinseveralways.Hereareacoupleofcommontechniquesandhowtheywork:1.Usingclip-path(Moststraightforwardforsinglesectors):Thisisgenerallythecleanestandmostrecommendedappr......
  • 使用css3绘制一个QQ小企鹅的LOGO
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>QQPenguin</title>......
  • 使用css3绘制一个圆形动态的时钟
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>CSSClock</title>......
  • 48. Web前端网页案例——【王者荣耀游戏主题网页( 6页)】 大学生期末大作业 html5+css3+
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐♬♬♬​​​​​​​欢迎光临我的CSDN!这里是Web前端网页案例大集汇,有各行各业的前端网页案例,每天会持续更......
  • fallingsnow.js-jquery下雪动画特效
    fallingsnow.js是一款小巧的jquery下雪动画特效插件。该jquery下雪动画特效兼容ie8浏览器,它会控制雪花的飘落速度,雪花的尺寸越小,下落的速度越慢,可以制作出雪花飞舞的视觉差效果。在线演示 下载 使用方法在页面中引入jquery.fallingsnow.css和jquery、jquery.fallingsnow.m......
  • 解释下css3的flexbox(弹性盒布局模型),以及它应用场景有哪些?
    CSS3的Flexbox,即弹性盒布局模型,是一种用于页面布局的强大工具。它提供了一种更有效的方式来排列、对齐和分配容器内项目的空间,即使它们的大小是未知的或动态的。Flexbox解决了传统布局方法(如浮动和定位)在处理复杂布局时的许多限制。核心概念:Flexbox布局由两个主要组成部分......
  • 111. 大学生HTML5期末大作业 ―【简单的手表商城精品网页】 Web前端网页制作 html5+cs
    目录一、更多推荐二、网页简介三、网页文件四、网页效果五、代码展示1.html2.CSS六、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强七、更多推荐一、更多推荐欢迎来到我的CSDN主页!Web前端网页制作、大学生期末大作业、课程设计、毕业设计、网页......
  • 271.大学生HTML5期末大作业 —【精美的响应式自适应绿色茶叶公司】 Web前端网页制作 h
    目录一、更多推荐二、网页简介三、网页文件四、网页效果五、代码展示1.html2.CSS3.JS六、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强一、更多推荐欢迎来到我的CSDN主页!您的支持是我创作的动力!Web前端网页制作、网页完整代码、大学生期末大作......