热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

探究HTML5应用中的三种Accordion交互效果

在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。

HTML5应用中accordion三种效果的探索


摘要:Accordion(手风琴,又名"抽屉")效果,因其收展样式形如手风琴而得名。通过层级关系,在信息展示和页面布局上,达到巧妙的平衡。因此,广泛运用于Web以及App交互设计中。在以往的项目中Accordion通常是由Javascript编码实现。本次分享,着重探索两种不依靠JS,采用纯CSS3或HTML5来实现其效果。并对其优缺点作初步的对比。


传统JS实现方式


1、原生Javascript


2、调用JS库文件,jQuery、jQuery Mobile


$'.menu_lev1').clickfunction) {


    var _this=$this),


        _next=_this.next);


    if _next.is':visible')) {


        $'.menu_lev1').removeClass'on');


        $'.menu_lev2').slideUp600);


        _this.addClass'on');


        _next.slideDown600);


    } else {


        _next.slideUp600);


        _this.removeClass'on');


    }


    return true;


});


缺点:效率低,成本高,行为和样式耦合紧密。 


 CSS3 伪类:target


target 是 CSS3 中新增的伪类之一。其能通过锚点,为目标元素添加指定的样式。因其页面中锚点的唯一性,能实现互斥的轮换效果。 


示例代码1:h2一级目录/h2>


ul id="ac1">


      li>二级菜单1/li>


      li>二级菜单2/li>


      li>二级菜单3/li>


 /ul>



ul{ display:none;}


ul:target{display:block;}


示例代码2:c1">一级目录/a>/h2>


ul id="ac1">


      li>二级菜单1/li> 


      li>二级菜单2/li> 


      li>二级菜单3/li>


/ul>


h2>2">一级目录/a>/h2>


ul id="ac2">


      li>二级菜单1/li> 


      li>二级菜单2/li> 


      li>二级菜单3/li>


/ul>


h2>一级目录/a>/h2>


ul id="ac3">


      li>二级菜单1/li> 


      li>二级菜单2/li> 


      li>二级菜单3/li>


/ul>



ul{ display:none;}


ul:target{display:block;}


示例代码3:div id="ac1" >


h2>a >一级目录/a>span>/span>/h2>


ul>


      li>二级菜单1/li>


      li>二级菜单2/li>


/ul>


/div>


div id="ac2" >


          h2>a >一级目录/a>span>/span>/h2>


          ul>


               li>二级菜单1/li>


               li>二级菜单2/li>


          /ul>


/div>


div id="ac3" >


          h2>a 3">一级目录/a>span>/span>/h2>


          ul>


               li>二级菜单1/li>


               li>二级菜单2/li>


          /ul>


/div>



ul{-webkit-transition:all ease 1s; } 


div:target ul{height:400px;}


div:target span{-webkit-transform:rotate90deg);}


Css3 伪类:targetl 缺点:1、不具有二元性。2、过渡动画高度不可自动获取。


HTML5 标签 summary & details


summary & details是HTML5中两个新标签,除了具有很强的语义化之外,它还有令人惊喜的动态效果。因此,抓住这一特性,我们也能很容易的制作出轻量级的手风琴效果来。一般来讲,应该成对使用这两个标签。


 示例代码1:details>


       summary>一级目录/summary>  


       ul>


            li>二级菜单/li>


            li>二级菜单/li>


            li>二级菜单/li>


       /ul> 


/details>


默认样式:可以给details添加open属性,使详情默认展开。 该标签目前仅webkit内核支持。


示例代码2:details>


       summary>一级目录/summary>  


       ul>


            li>二级菜单/li>


            li>二级菜单/li>


            li>二级菜单/li>


       /ul> 


      details>


            summary>二级菜单/summary>  


           ul>


               li>三级菜单/li>


               li>三级菜单/li>


               li>三级菜单/li>


           /ul> 


      /details>  


/details>


说明:可以嵌套使用,形成三级活更多级别菜单。


details summary::-webkit-details-marker {background: red;color: #fff;font-size: 200%;} 


summary::-webkit-details-marker { display: none }


summary:after { content: "+";}


details[open] summary:after {content: "-";}


缺点:1、不具有互斥性。2、目前还不支持过渡动画效果。 


小  结JS实现accordion效果,成本高,效率低,目前而言能实现最为丰富的效果。 CSS3实现accordion效果,成本低,效率高,虽可以实现丰富的动画效果,但不具有二元性。HTML5实现accordion效果,成本低,效率高,但缺乏动画效果,且不具有互斥性。目前支持的浏览器内核有限。


展 望 CSS3 和 HTML5 的引入和发展,某种程度上进一步推进结构,样式,行为三者分离的Web设计的理念。从而减小表现上对JS的依赖,降低网页制作的成本且提高网页运行的效率。 没有理由不期待css3和HTML5不断完善,假以时日能够提供更为强大的功能。


建 议


在含有内容较多的web app中,基于性能优先的原则,适当优雅降级,采用HTML5标签实现Accordion效果。至少Html5doctor作者是比较推崇 Wordpress 中采用的。


转载自:CUBE



推荐阅读
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文讨论了如何根据特定条件动态显示或隐藏文件上传控件中的默认文本(如“未选择文件”)。通过结合CSS和JavaScript,可以实现更灵活的用户界面。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 在网站制作中随时可用的10个 HTML5 代码片段
    HTML很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单。在这篇文章中,我收集了10个超有用的HTML代码片段,有HTML5启动模板、空白图片、打电话和发短信、自动完 ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • jQuery HooRay:一款自创的实用 jQuery 工具插件
    这款插件主要由作者在工作中积累的常用功能开发而成,旨在解决现有插件间的冲突及浏览器兼容性问题。通过整合和优化现有插件,确保其稳定性和高效性。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 优化网页加载速度:JavaScript 实现图片延迟加载
    本文介绍如何使用 JavaScript 实现图片延迟加载,从而显著提升网页的加载速度和用户体验。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
author-avatar
静2502882443
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有