jQuery+CSS 半开折叠效果原理及代码(自写)


Posted in Javascript onMarch 04, 2013

一个项目想用jQuery做一个可以半折叠的DIV元素,苦于jQueryUI中accordion没有提供相关的方法,就自己写了个。以前使用jQueryUI的时候发现能够用的accordion全部折叠起来了,没办法设置折叠的最小高度。
代码质量很低,希望老鸟能够指点指点。

下图是效果展示,能够借由jQuery的函数展开收缩
jQuery+CSS 半开折叠效果原理及代码(自写) 

//author: hlhr 
//require: Jquery1.4 and above 
function animate_toggle_height(maxh,minh,maxo,mino,element,speed) {//这个是纵向的,参数解释:最大高度,最小高度,最大透明度,最小透明度,元素,动画速度 
if (element.css("height")==minh.toString().concat("px")){//如果是最小高度就展开 
element.animate({ 
height:maxh, 
opacity:maxo 
},{queue: false},speed); 
return "Fold" 
} 
if (element.css("height")==maxh.toString().concat("px")){//如果是最大高度就折叠 
$(this).html(""); 
element.animate({ 
height:minh, 
opacity:mino 
},{queue: false},speed); 
return "Read more"; 
} 
} 
function animate_toggle_width(maxw,minw,maxo,mino,element,speed) { 
if (element.css("width")==minw.toString().concat("px")){ 
element.animate({ 
width:maxw, 
opacity:maxo 
},{queue: false},speed); 
return "Fold" 
} 
if (element.css("width")==maxw.toString().concat("px")){ 
element.animate({ 
width:minw, 
opacity:mino 
},{queue: false},speed); 
return "Read more"; 
} 
}

<html> 
<head> 
<script src="jquery-1.9.1.min.js"></script><!--需要jquery库--> 
<script src="jqslider.js"></script><!--链接上文的js库--> 
<style> 
body{margin: 0 auto; text-align:center;} 
.slide{font-size:20px; overflow: hidden; width: 500px; } 
#content{margin:0 auto; width: 500px;} 
.viewbutton{position:relative; text-align: right;} 
</style> 
</head> 
<body> 
<fieldset id="content"> 
<div class="slide"> 
<a class="viewbutton" href="#"> 
Read more 
</a> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
</div> 
</fieldset> 
<p /> 
<fieldset id="content"> 
<div class="slide"> 
<a class="viewbutton" href="#"> 
Read more 
</a> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
<p>slide!</p> 
</div> 
</fieldset> <script type="text/javascript"> 
var max_h=300; 
var min_h=100; 
//var max_w=500; 
//var min_w=10; 
var max_o=1; 
var min_o=0.3; 
$(".slide").css({opacity:min_o});//设置初始的透明度 
$(".slide").css({height:min_h});//设置初始的高度 
$(".viewbutton").click(function(){//这里只是调用了纵向展开,也可以调用横向展开 
$(this).html(animate_toggle_height(max_h,min_h,max_o,min_o,$(this).parent(),500));//自动识别为viewbutton的上一级进行动画 
}); 
</script> 
</body> 
</html>

viewbutton的层级可自行修改,但要注意动画的目标是什么。我写的viewbutton会对它上一级的那个div做动画,所以就不用把选择器写得过于复杂了。
Javascript 相关文章推荐
B/S开发中常用javaScript技术与代码
Mar 09 Javascript
JavaScript与函数式编程解释
Apr 27 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
js实现右键菜单功能
Nov 28 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
Feb 04 Javascript
JS简单实现动态添加HTML标记的方法示例
Apr 08 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
JavaScript实现自己的DOM选择器原理及代码
Mar 04 #Javascript
jQuery:节点(插入,复制,替换,删除)操作
Mar 04 #Javascript
JS获取后台Cookies值的小例子
Mar 04 #Javascript
JQuery获取各种宽度、高度(format函数)实例
Mar 04 #Javascript
javascript加号&quot;+&quot;的二义性说明
Mar 04 #Javascript
js给dropdownlist添加选项的小例子
Mar 04 #Javascript
jQuery侧边栏随窗口滚动实现方法
Mar 04 #Javascript
You might like
短波问题解答
2021/02/28 无线电
php网页后退不再出现过期
2007/03/08 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
javascript列表框操作函数集合汇总
2013/11/28 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
Python3处理文件中每个词的方法
2015/05/22 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python一键去抖音视频水印工具
2018/09/14 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
python实现控制COM口的示例
2019/07/03 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
环境保护标语
2014/06/20 职场文书
科技活动周标语
2014/10/08 职场文书
班主任工作总结范文
2015/08/13 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
创业计划书之花店
2019/09/20 职场文书
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript