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 相关文章推荐
基于jquery的9行js轻松实现tab控件示例
Oct 12 Javascript
javascript中apply和call方法的作用及区别说明
Feb 14 Javascript
jquery中map函数与each函数的区别实例介绍
Jun 23 Javascript
javascript中var的重要性分析
Feb 11 Javascript
JSONP之我见
Mar 24 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 Javascript
Angular.js中处理页面闪烁的方法详解
Mar 09 Javascript
基于input框覆盖掉数字英文的实例讲解
Jul 21 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
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
php 引用(&amp;)详解
2009/11/20 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php中require和require_once的区别说明
2014/02/27 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
jquery不常用方法汇总
2015/07/26 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
js实现表格数据搜索
2020/08/09 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
python创建和删除目录的方法
2015/04/29 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
Python BS4库的安装与使用详解
2018/08/08 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
2018/11/14 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
幼儿园母亲节活动方案
2014/03/10 职场文书
计算机实训报告范文
2014/11/05 职场文书
python神经网络ResNet50模型
2022/05/06 Python