12.5 借助于Spry实现伸缩面板


本章的最后一个案例要实现一个“伸缩面板”。伸缩面板具有固定的高度,包含若干页面,其中只有一个页面处于打开状态。当用鼠标单击某一个页面的标题时,该页面就会展开,原来展开的页面同时自动隐藏起来。在展开和隐藏的过程中,会有动画效果演示。

本实例的文件位于网页学习网CSS教程资源中“第12章\04\accordion.btm”。光盘的该目录下还有一个accardion-hover.htm文件。二者的区别是,在accordion.htm中,鼠标单击标题才能实现换页;而在accordion-hover.htm中,鼠标指针经过某个标题时就会切换到该页,而无需单击鼠标。

本案例完成后的效果如图1所示。lodidance.com

图1 伸缩面板的效果

一、建立基本的伸缩面板

Spry工具栏的右边第2个按钮是制作伸缩面板的工具,如图2所示。

图2 制作伸缩面板的工具- Spry折叠式

在页面中插入一个伸缩面板之后,可以通过“属性”面板加入新的页面,并调整页面的顺序,如图3所示。

图3 使用“属性”面板可以增加或删除页面

相应的HTML结构如下所示。

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <div id="Accordion1" class="Accordion" tabindex="0">
  2. <div class="AccordionPanel">
  3. <div class="AccordionPanelTab">LABEL 1</div>
  4. <div class="AccordionPanelContent">内容 1</div>
  5. </div>
  6. <div class="AccordionPanel">
  7. <div class="AccordionPanelTab">LABEL 2</div>
  8. <div class="AccordionPanelContent">内容 2</div>
  9. </div>
  10. </div>

其中的“LABEL1”和LABEL2”处可以修改标题文字,“内容1”和“内容2”处为各页面的内容,可以放置文本、图像等各种内容。修改样式的方法与前面设置Tab面板和折叠面板的方法非常类似。这里为读者演示一下如何制作带有边框的样式。

打开页面相应的CSS文件,开始逐段修改样式。第一段代码如下:

折叠展开CSS 代码复制内容到剪贴板

  1. .Accordion {
  2. border-left: solid 1px gray;
  3. border-right: solid 1px black;
  4. border-bottom: solid 1px gray;
  5. overflow: hidden;
  6. }

它的作用是对整个伸缩面板进行设置。本案例中,设置面板的宽度,仅保留底端的边框(注意本案例使用2像素宽的边框).左右边框删除,因此这段代码修改为:

折叠展开CSS 代码复制内容到剪贴板

  1. .Accordion {
  2. width:300px;
  3. overflow: hidden;
  4. border-bottom:2px #006 solid;
  5. }

二、设置标题的样式

接下来准备两个图像,每个都是300像素宽.30像素高,其中一个左端有一短横线,表示处于收缩状态,另外一个左端有一短竖线,表示处于展开状态,如图4所示。

   
图4 准备用于展开和收缩状态的背景图像

接着找到如下代码:

折叠展开CSS 代码复制内容到剪贴板

  1. .AccordionPanelTab {
  2. background-color: #CCCCCC;
  3. border-top: solid 1px black;
  4. border-bottom: solid 1px gray;
  5. margin: 0px;
  6. padding: 2px;
  7. cursor: pointer;
  8. -moz-user-select: none;
  9. -khtml-user-select: none;
  10. }

这段代码的作用就是设置收缩状态的面板的标题部分,因此这里设置文字的样式、高度、padding等属性,代码如下:

折叠展开CSS 代码复制内容到剪贴板

  1. .AccordionPanelTab {
  2. background: url(ac-open-back.gif) no-repeat;
  3. font: bold 16px Arial;
  4. color:#006;
  5. line-height:30px;
  6. height:30px;
  7. margin: 0px;
  8. padding: 0px 30px;
  9. cursor: pointer;
  10. -moz-user-select: none;
  11. -khtml-user-select: none;
  12. }

然后找到下面这段代码:

折叠展开CSS 代码复制内容到剪贴板

  1. .AccordionPanelOpen .AccordionPanelTab {
  2. background-color: #EEEEEE;
  3. }

它的作用是设置展开的标题背景,设置如下:

折叠展开CSS 代码复制内容到剪贴板

  1. .AccordionPanelOpen .AccordionPanelTab {
  2. background: url(ac-open-back-open.gif) no-repeat;
  3. }

三、对最上面的标题进行特殊处理

这时需要注意的是.最上面的一个标题背景应该与其他标题背景有所不同,请注意图1中最上面的位置,最上面的圆角处没有向上伸展的竖线。

因此现在需要为第一个页面的标题制作两个图像,分别在第一个页面处于收缩和展开时使用,和图4相似。

接下来对第一个标题的HTML稍作修改,为它增加一个类别“top”,代码由:

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <div class="AccordionPanelTab">Home</div>

改为:

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <div class="AccordionPanelTab top">Home</div>

然后分别设定第一个标题收缩和伸展时的背景图像。增加如下两段代码,这两段代码原CSS文件中并没有,需要手工添加。

折叠展开CSS 代码复制内容到剪贴板

  1. .top{
  2. background: url(ac-open-back-top.gif) no-repeat;
  3. }
  4. .AccordionPanelOpen .top {
  5. background: url(ac-open-back-top-open.gif) no-repeat;
  6. }

对每个页面里的内容进行设置。注意设置左右2像素的边框,使其和背景图像的左右竖线连接上。注意这里的高度将控制页面展开后的高度,如果内容超出这个高度,将自动出现滚动条。

折叠展开CSS 代码复制内容到剪贴板

  1. .AccordionPanelContent {
  2. background:#ADF;
  3. font:12px/18px Arial;
  4. overflow: auto;
  5. margin: 0px;
  6. padding: 0 10px;
  7. height: 230px;
  8. border-left:2px #006 solid;
  9. border-right:2px #006 solid;
  10. }

最后把没有用到的代码删除,即可实现最终的效果。在一些网站上可以看到这种伸缩面板,有的是通过鼠标单击来展开某一个页面,也有的是鼠标指针经过某个标题时就展开相应的页面。如果要实现后面这个效果,也是可以的,方法是为每个标题所在的div增加一句JavaScript语句,例如将原来的如下语句:

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <div class="AccordionPanelTab">Web Design</div>

改为:

折叠展开XML/HTML 代码复制内容到剪贴板

  1. <div class="AccordionPanelTab" onmouseover="Accordion1.openPanel(this.parentNode);">Web Design</div>

就可以实现用鼠标指针经过而不是鼠标单击实现切换页面。请注意,4个标题都要加上这句话。lodidance.com

网页学习网CSS教程资源中“第12章\04”文件夹中有两个文件,分别宴现了鼠标单击标题实现换页和鼠标指针经过标题时换页。如果读者制作中遇到困难,请参考资源中的正确文件。

本章重点

本章一共介绍了4个案例,第1个Tab菜单是仅使用CSS设置就可以完成的效果,后面的3个案例都是用Dreamweaver CS3中内置的Spry框架实现的、功能更强大的Web页面元素。

使用Spry可以为不会JavaScript的设计师提供巨大的帮助,只要懂得CSS,就可以制作出效果复杂的网页效果和界面元素。由于篇幅所限,本教程并没有深入讲解Spry的各个方面,实际上它的功能相当强大,值得读者深入研究。

点击下载第8~17章CSS教程资源 返回《CSS教程布局之道》教程列表

编辑:网页学习网
本文地址:http://www.lodidance.com/css/jc/939.html

12.5 借助于Spry实现伸缩面板,布布扣,bubuko.com

时间: 2024-10-26 12:23:42

12.5 借助于Spry实现伸缩面板的相关文章

12.4 借助于Spry实现折叠面板

在基于Spry的基础上实现了Tab板之后,再来制作一个折叠面板的页面,效果如图1所示.图中一共有3个折叠面板,每个折叠面板都有一个标题.单击一个标题,就可以实现面板的折叠隐藏或展开.图1的左图为折叠起来的效果,右图为展开后的效果. 图1 设置当前页的Tab样式 本实例的文件位于网页学习网CSS教程资源中“第12章\03\collapsible.htm”. 一.建立基本的折叠面板 首先新建一个HTML文档,保存后,插入Spry工具栏中的最右边的“Spry可折叠面板”,如图2所示. 图2 在Drea

12.3 借助于Spry实现Tab面板

前面说过,如果要实现一个真正的Tab菜单,需要JavaScript配合,开发起来必须有JavaScript的使用经验.没有JavaScript经验的设计师可以借助于Adobe公司2007年春天发布的Dreamweaver CS3中新增加的Spry功能来方便地实现. 在本案例中,我们最终实现的效果如图1所示.当用鼠标单击某个Tab时,就会切换到该Tab页. 本实例的文件位于网页学习网CSS教程资源“第12章\02\tab.htm”.该目录下还有一个tab-hover.htm文件. 二者的区别是,在

12.1 Tab菜单与Tab面板简介

这里所说的高级网页组件是指一些网页上的比较复杂的用户界面,例如Tab面板.伸缩面板和折叠面板等组件. Tab风格的面板一直受到广大周站制作者的青昧.Tab面板有时被称为“选项卡”面板,使用鼠标点击各个Tab选项卡就可以在不同页之间切换. 随处可见各式各样的Tab菜单,网易网站首页上可以看到的Tab面板,网址是http://www.163.com. 微软网站上的Tab菜单,网址是http://office.microsoft.com. 网页学习网http://www.lodidance.com首页

Unity UI的刷新做法思考

假设一个UI,有这样4块区域: 收到Response响应后,进行内容刷新.刷新分为几种:1,2,3,4.12,13,23,24.整个面板刷新是1,2,3,4. 用传统的做法肯定一个函数一个函数去写,或者几个刷新函数,但是参数一大堆. 最近针对这个问题有个新的思路,首先有一个面板操作对象,保存关键的面板操作.然后刷新函数只有一个,最大的刷新 刷新完之后,通过面板操作对象,还原面板状态. 但是有个缺点,面板操作对象得自己设计.每次都整体刷新会造成性能损失. 还有个想法,要么把面板刷新分出来写,刷新函

javascript动手写日历组件(1)——构建日历逻辑 (by vczero)

一.分析日历的组成部分和交互要素 (1)组成部分:选择年月部分.星期显示.包含本月(或者有前月和下一个月部分日子) (2)根据选择的年和月份,动态绘制日历面板. (3)一个日历 7(天) * 5(周) = 35格表格. (4)一个月份是统一的一个面板:一个月的头一天一定在日历面板的第一行,根据该天的“星期几”确定位置. (5)第一格子是星期一,最后一个格子是星期日,为5周的日历面板. 二.确定逻辑设计 日历上面的日历,8月1号建军节为什么会出现在这一格?因为一个月的天数是小于5周(35天)的,因

[转] c# 操作Word

来自 风过四季天 的原文 c# 操作Word总结 在医疗管理系统中为保存患者的体检和治疗记录,方便以后的医生或其他人查看.当把数据保存到数据库中,需要新建很多的字段,而且操作很繁琐,于是想 到网页的信息创建到一个word文本中,在显示的时,可以在线打开word,也可以把word转换成html标签显示. 这样使用word代替网页的原因有: 第一:网页生成数学公式和特殊符号存储和显示比较麻烦(如何操作word生成数学公式,有待测试) 第二:生成Word版的报告更容易存档和没有环境下的传阅及打印 第三

EasyUI项目驱动学习

下面以一个项目简单介绍easyui的使用,主要包括以下组件 布局面板 - layout 可伸缩面板 - accordion 选项卡 - tabs 控制面板 - panel 窗口 - window 对话框 - dialog 消息窗口 - messager 数据表格 - datagrid 分页 - pagination 树型菜单 - tree 等等... 可先下载项目源码 对各个组件有个大致了解 http://download.csdn.net/detail/itmyhome/7605957 jQu

c# 操作Word总结

c# 操作Word总结 在医疗管理系统中为保存患者的体检和治疗记录,方便以后的医生或其他人查看.当把数据保存到数据库中,需要新建很多的字段,而且操作很繁琐,于是想到网页的信息创建到一个word文本中,在显示的时,可以在线打开word,也可以把word转换成html标签显示. 这样使用word代替网页的原因有: 第一:网页生成数学公式和特殊符号存储和显示比较麻烦(如何操作word生成数学公式,有待测试) 第二:生成Word版的报告更容易存档和没有环境下的传阅及打印 第三:客户直接操作Word感觉更

EasyUI项目学习

介绍easyui的使用,主要包括以下组件 布局面板 - layout 可伸缩面板 - accordion 选项卡 - tabs 控制面板 - panel 窗口 - window 对话框 - dialog 消息窗口 - messager 数据表格 - datagrid 分页 - pagination 树型菜单 - tree jQuer EasyUI布局-为网页创建边框布局(layout) 边框布局(border layout)提供五个区域:east.west.north.south.center.