js和css怎么实现收缩和展开?

html-css09

js和css怎么实现收缩和展开?,第1张

给你举个例子:

<script language="javascript">

function show_div(){

var obj_div=document.getElementById("starlist")

obj_div.style.display=(obj_div.style.display=='none')?'block':'none'

}

function hide_div(){

var obj_div=document.getElementById("starlist")

obj_div.style.display=(obj_div.style.display=='none')?'block':'none'

}

</script>

<a href="javascript:show_div()" >显示/展开</a>

<div id="starlist">

内容<br/>

内容<br/>

内容<br/>

内容<br/>

</div>

这样就可以实现

追问

用jQuery实现,该怎么实现?就是不能弹出的那种,就要一个点击了之后就在下方显示的那种,谢谢!

回答

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gbk" />

<title>StripingTable</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">

<!--

$(document).ready(function(){ })

function changeDisplay(){

var helloDivObj = $("#helloDiv")

var buttonObj = $("#btnDisplay")

var val = buttonObj.attr("value")

if(val=="隐藏"){

helloDivObj.hide()

buttonObj.attr("value","显示")

}else{

helloDivObj.show()

buttonObj.attr("value","隐藏")

}

}

-->

</script>

</head>

<body>

<input id="btnDisplay" type="button" value="隐藏" onclick="changeDisplay()"/>

<div id="helloDiv">

Hello,everyone<p></p>

Hello,everytwo<p></p>

Hello,everythree<p></p>

</div>

</bdoy>

</html>

思路应该是一个从0%到100%的动画展开的效果,大概需要写0%,50%,100%三个样式。 弹窗的css代码大概是:position: fixedz-index: 2000left: 0top: 0这样弹窗的左上角原点在页面最左上角,如果要调整位置要用CSS变换特效(transform)的平移translate函数达到目的: translate(x, y)(长度值或者百分比):在水平方向、垂直方向平移元素。    translateX(value):水平方向平移。    translateY(value):垂直方向平移。    scale(x, y)、scaleX(value)、scaleY(value):在水平方向、垂直方向或者两个方向上缩放元素。    rotate()、rotateX()、rotateY()、rotateZ():rotate支持3D效果,可在x、y、z轴上旋转元素。    skew()、skewX()、skewY():在水平方向、垂直方向或者两个方向倾斜一定的角度。  另外弹窗展开的动画要用到css3的动画属性:    animation-delay:设置动画开始前的延迟时间。    animation-direction:设置动画循环播放的时候是否方向播放,包含normal和alternate两个值。    animation-duration:设置动画播放持续的时间。    animation-interacion-count:设置动画的播放次数,可以为具体数据或者无限循环关键字infinite。    animation-name:指定动画名称。    animation-play-state:允许动画暂停和重新播放,包含running、paused。    animation-timing-function:指定如何计算中间动画值,

简单的话,可以这么做,用JS

function opencat(cat){

if(document.getElementById(cat).style.display=="none"){

document.getElementById(cat).style.display=""

}

else {

document.getElementById(cat).style.display="none"

}

}

然后在要收缩菜单的按钮或链接上这么做 比如超连接

<a id="menu1" href="#" style="display:block" onclick="opencat('list1')">

下面紧跟着的是展开后的目录内容,可以是Table,也可以是DIV

<table id="list1">

<tr><td>111111</td></tr>

<tr><td>222222</td></tr>

<tr><td>33333</td></tr>

<tr><td>4444444</td></tr>

<tr><td>5555555</td></tr>

</table>