【JQuery】jQuery自制简易手风琴效果(附实现原理)

手风琴效果经常会用在网页左侧的导航栏,当导航内容比较多时使用手风琴的展示方式更有利于信息的传递和排版,下面就分享一个自己制作的简易手风琴效果,没有用图片,背景颜色也是随意设定的,在实际项目中大家可适当修改。

效果图:

实现原理:

1、当鼠标点击span标签(即一级导航)时,先判断子目录li是否已经展开(此处使用一个on类来做标记);

2、如果是,则收缩当前的li,移出on类标记,修改span右边的提示符为加号;

3、如果不是,则展开当前的li,增加on类标记,修改span右边的提示符为减号。

源码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>自制手风琴</title>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<style type="text/css">
	body,ul,li{margin: 0 auto;padding: 0;}
	ul,li{list-style-type: none;cursor: pointer;color: white;line-height: 28px;text-align: center;}
	ul{width: 150px;}
	ul span{background-color: green;display: block;font-weight: bold;border-bottom: 1px solid #ccc;}
	ul:last-child span{border-bottom: none;}
	li{background-color: black;display: none;}
	li:hover{background-color: orange;}
	b{display: inline;float: right;padding-right: 10px;}
</style>
</head>
<body>
    <ul>
    	<span>AAAAA<b>+</b></span>
    	<li>11111</li>
    	<li>11111</li>
    	<li>11111</li>
    	<li>11111</li>
    </ul>
    <ul>
    	<span>BBBBB<b>+</b></span>
    	<li>22222</li>
    	<li>22222</li>
    	<li>22222</li>
    </ul>
    <ul>
    	<span>CCCCC<b>+</b></span>
    	<li>33333</li>
    	<li>33333</li>
    	<li>33333</li>
    	<li>33333</li>
    	<li>33333</li>
    </ul>
    <ul>
    	<span>DDDDD<b>+</b></span>
    	<li>44444</li>
    	<li>44444</li>
    </ul>
    <ul>
    	<span>EEEEE<b>+</b></span>
    	<li>55555</li>
    	<li>55555</li>
    	<li>55555</li>
    </ul>
    <script type="text/javascript">
    	$(function(){
    		$('span').click(function(){
    			if($(this).siblings('li').hasClass('on')){
    				$(this).siblings('li').slideUp(500).removeClass('on');
    				$(this).children('b').text('+');
    			}else{
    				$(this).siblings('li').slideDown(500).addClass('on');
    				$(this).children('b').text('-');
    			}
    		});
    	});
    </script>
</body>
</html>

好啦,这样一个简单的手风琴就做好啦~

Author:致知

Sign:路漫漫其修远兮,吾将上下而求索。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-08 13:54:55

【JQuery】jQuery自制简易手风琴效果(附实现原理)的相关文章

分享一款jquery+css3实现的手风琴效果代码【js插件】

代码适用于大部分浏览器 演示Demo地址:请猛戳 效果图片 程序吧下载地址 分享一款jquery+css3实现的手风琴效果代码[js插件],布布扣,bubuko.com

jquery实现简单的手风琴效果

最近看到我看的教学视频有不少手风琴效果,我也试着写一下,当做练习. 明天我放假,就要去找工作,不知道,我的前端之路,能不能正式开始. 菜鸟起飞的机会都没有,那就尴尬了. 纯属练习: 效果如图: html: <ul class="wrap"> <li class="checked"> <span>选项1</span> <div>1</div> </li> <li> <

jquery 实现简单的手风琴效果

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="./js/jquery.min.js"></script> <style> body,html,ul,li,h3{ margin: 0; padding: 0

jquery垂直展开折叠手风琴二级菜单

最近新开发一个简单项目,用到左侧两级的菜单.习惯性的去网上扒jquery手风琴效果,结果悲剧了好久…… 是该认认真真去学jquery,练习自己写动画效果了.从理解别人代码开始吧! 注:jquery-1.8.3.min.js需要下载文件放到同级名为js的文件夹里. <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery垂直展开折叠手风琴效果</title> <s

简易手风琴

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>手风琴效果</title> <style type="text/css"> .accordions { overflow: hidden; width: 800px; height: 350px; margin: 0 auto; } .yhd-switchable-

炫酷的手风琴效果

你一定用过书签,也一定给你的书本加过书签,那么你见过书签式的导航吗? 你一定见过手风琴,也一定知道弹奏手风琴时的它的外形变化,那么你见过手风琴式的导航吗? 如果没有,请往下看: 前面的话: 这篇博文先通过Javascript做一个简单的手风琴效果,让大家对手风琴效果有一定的了解:紧接着,我们换jquery做类似的手风琴效果.前面的两个例子都很简单,接下来要放大招了,我想用JQ或是原生的JS去做类似淘宝网中用到的手风琴效果.继续回到书签问题,既然JQ和JS都能实现那么炫酷的效果,我们用CSS3能不

jQuery插件实例四:手风琴效果[无动画版]

手风琴效果就是内容的折叠与打开,在这个插件中,使用了三种数据来源:1.直接写在DOM结构中:2.将数据写在配置项中:3.从Ajax()中获取数据.在这一版中,各项的切换没有添加动画效果,在下一版中会是有动画效果的. 在这个插件中,CSS和JS的配置非常重要,需要特别注意.另外,加个思考,请先看完后再想这个问题:当点击其中某项时,给width直接添加animate是否合适,当快速在其上移动时,如何保证效果? 效果图预览 插件JS accordionB.js 1 ; 2 (function ($,

用jquery实现手风琴效果

<style type="text/css"> ul li{ list-style: none; width:200px; height:30px; text-align: center; line-height:30px; background-color:deepskyblue; } ul{ display:none; margin:0; padding:0; } h3{ width:200px; height:30px; margin:0; padding:0; te

基于 jQuery 实现垂直滑动的手风琴效果

今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底部滑动. 效果演示     插件下载 HTML 示例代码: <div id="va-accordion" class="va-container"> <div class="va-nav"> <span class=&q