`
guohui_fz
  • 浏览: 56470 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

球拍式导航菜单效果的实现

阅读更多

传统的侧边菜单的问题

工字型布局中都有一个侧边菜单栏目用以导航,它们存在的一个普遍问题是:用户无法迅速的找到自己所处页面在整个网站中的位置。
当菜单项较多时这会演变成一个大问题,当用户需要刻意寻找网页标志来确定自己所处位置时,这已经说明网站给了客户一种迷宫的感觉,有流失客户的潜在可能性。
解决这个问题只要将用户选择的菜单项突出显示即可,下面是gmail的解决方案。

Gmail的侧边菜单栏

将要实现的效果

如何实现菜单与左边内容区的连通效果

要将左侧内容区和右边选中的菜单项连通起来,需要将菜单栏分成两个类别,选中和未选中的样式如右。

 

#sidebar li a.unselect { } {
  text-decoration
:  none ;
  width
: 100% ;
  height
: 10px ;
  font-weight
: bold ;
  color
: #0000cc ;
  
  border-left
:  1px solid #7799dd ;  
  border-right
:  0px solid #7799dd ;  
  border-top
:  0px solid #7799dd ;  
  border-bottom
:  0px solid #7799dd ;  
  
  padding-left
: 15px ;
  padding-right
: 15px ;
  padding-top
: 5px ;
  padding-bottom
: 5px ;
}


#sidebar li a.selected
{ } {
  text-decoration
:  none ;
  width
: 100% ;
  height
: 10px ;
  font-weight
: bold ;
  background
: #ffffff ;
  color
: #000000 ;
  
  border-left
:  0px solid #7799dd ;  
  border-right
:  1px solid #7799dd ;  
  border-top
:  1px solid #7799dd ;  
  border-bottom
:  1px solid #7799dd ;  
  
  padding-left
: 15px ;
  padding-right
: 15px ;
  padding-top
: 5px ;
  padding-bottom
: 5px ;  
}


大家注意看选中项和未选中项的边框和底色设置。

CSS渲染后的菜单项HTML代码:

< ul >
< li >< href ='ShowPage?page=add&&curr=0'  class ='unselect' > 新增诗歌 </ a ></ li >
< li >< href ='ViewPoems?curr=1'  class ='unselect' > 全部诗歌 </ a ></ li >
< li >< href ='ShowAuthorPoem?curr=ps1&&author=崇祯皇帝&&count=1'  class ='unselect' > 崇祯皇帝(1) </ a ></ li >
< li >< href ='ShowAuthorPoem?curr=ps2&&author=苏轼&&count=2'  class ='selected' > 苏轼(2) </ a ></ li >
< li >< href ='ShowAuthorPoem?curr=ps3&&author=辛弃疾&&count=1'  class ='unselect' > 辛弃疾(1) </ a ></ li >
</ ul >


渲染的效果图如下:

如何翻页后得知上次点击的菜单项


剩下的问题是如何在翻页后得知上次点击的菜单项,这很简单,从reuqest中取出请求参数curr,它代表了选中菜单项的记号,然后在jsp页面中用scriptlet逐个判断即可。

< ul >
  
<%
    
String  curr = request.getParameter( " curr " );
    
if (curr == null ){
      curr
= " 0 " ;
    }
    
    
if (curr.equals( " 0 " )){
      out.print(
" <li><a href='ShowPage?page=add&&curr=0' class='selected'>新增诗歌</a></li> " );
    }
    
else {
      out.print(
" <li><a href='ShowPage?page=add&&curr=0' class='unselect'>新增诗歌</a></li> " );
    }
    
    
if (curr.equals( " 1 " )){
      out.print(
" <li><a href='ViewPoems?curr=1' class='selected'>全部诗歌</a></li> " );
    }
    
else {
      out.print(
" <li><a href='ViewPoems?curr=1' class='unselect'>全部诗歌</a></li> " );
    }
    
    
//  显示作者列表
    PoemSumaryService service
= new  PoemSumaryService();
    List
< PoemSummary >  ls = service.getAll();
    
    
for (PoemSummary ps:ls){
      
if (curr.equals(ps.getId())){
        out.print(
" <li><a href='ShowAuthorPoem?curr= " + ps.getId() + " &&author= " + ps.getAuthor() + " &&count= " + ps.getCount() + " ' class='selected'> " + ps.getAuthor() + " ( " + ps.getCount() + " )</a></li> " );
      }
      
else {
        out.print(
" <li><a href='ShowAuthorPoem?curr= " + ps.getId() + " &&author= " + ps.getAuthor() + " &&count= " + ps.getCount() + " ' class='unselect'> " + ps.getAuthor() + " ( " + ps.getCount() + " )</a></li> " );
      }
    }
  
%>
</ ul >


导航菜单上下边的修补工作
全部工作到这里还未结束,还要在导航菜单上下部增加一些细节,要不菜单上下会缺失边缘。
我采用了表格防止上边,菜单和下边三项,下面是HTML代码:

< table  border ="0"  cellspacing ="0"  cellpadding ="0"  width ="100%"  height ="100%"  style ="table-layout:fixed;word-wrap:break-word;word-break;break-all;" >
  
< tr  height ="10"  valign ="top" >          
    
< td  width ="100%" >
      
< div  class ="sideBlank" >
      
</ div >
    
</ td >
  
</ tr >
  
< tr  valign ="top" >          
    
< td  width ="100%" >
      
< ul >
        
<%
          
        
%>
      
</ ul >
    
</ td >
  
</ tr >
  
  
< tr  height ="100%"  valign ="top" >          
    
< td  width ="100%" >
      
< div  class ="sideBlank" >
      
</ div >
    
</ td >
  
</ tr >
</ table >

sideBlank的CSS设置如下:

.sideBlank { } {
    width
: 100% ;
    height
: 100% ;
    
    border-left
:  1px solid #7799dd ;  
    border-right
:  0px solid #7799dd ;  
    border-top
:  0px solid #7799dd ;  
    border-bottom
:  0px solid #7799dd ;  
}

这样,菜单上下的边就封上了,视觉效果也要好一些,位置示意图如下:



 大致原理到这里就结束了,还有一些具体细节请看附件:

分享到:
评论

相关推荐

    pycket, 使用RPython实现基本的球拍实现.zip

    pycket, 使用RPython实现基本的球拍实现 使用RPython的球拍/方案实现。 它增加了一个 JIT 。建筑要使用Pycket进行任何操作,你需要签出 PyPy:$ hg clone https://bitbucket.org/pypy/pypy

    网球拍线径对底线击球效果及持拍臂肘关节的影响.pdf

    球拍的性能会直接影响击球效果,其中球拍线的特性,如线径大小,是决定球拍性能的关键因素之一。本文旨在探讨网球拍线径对底线击球效果及持拍臂肘关节的影响,并为运动员提供科学的选线建议。 在对15名二级网球运动...

    人工智能-机器学习-智能乒乓球拍的设计与实现.pdf

    本文主要讨论的是智能乒乓球拍的设计与实现,这是一款基于人工智能和机器学习技术的创新硬件设备。智能乒乓球拍结合了现代科技,通过硬件和软件的集成,将传统乒乓球拍转化为具有智能功能的装备,旨在提升乒乓球训练...

    行业分类-设备装置-一种持直拍打法使用的笔柄式乒乓球拍.zip

    标题中的“行业分类-设备装置-一种持直拍打法使用的笔柄式乒乓球拍”表明我们将探讨一种专为直拍打法设计的独特乒乓球拍。这种球拍采用了笔柄式设计,旨在提高运动员的控制力、舒适性和击球效率。 直拍打法的特点...

    一种基于机器学习的智能羽毛球拍.pdf

    智能羽毛球拍使用HC-05蓝牙模块实现与上位机之间的蓝牙通讯。HC-05蓝牙模块具有小体积、低功耗、高效通讯范围等特点,非常适合智能羽毛球拍的应用。 5. 安卓APP用户软件: 智能羽毛球拍的安卓APP用户软件提供了用户...

    电子政务-便携式电动乒乓球拍胶皮割边机.zip

    在电子政务领域,便携式电动乒乓球拍胶皮割边机是一种创新的工具,它将体育器材维护与科技相结合,提升了工作效率。电子政务是政府机构利用信息技术,特别是互联网技术,来改进公共服务、行政管理和公民参与的过程。...

    YY及胜利羽毛球拍穿线法.doc

    羽毛球拍的穿线方法是决定拍子性能和球员体验的关键环节。不同的品牌和型号的球拍,其穿线方式略有差异,尤其是YY(尤尼克斯)和胜利等知名品牌。本文将详细阐述这两种品牌的典型穿线法及其原理。 首先,无论哪种穿...

    网球和网球拍PPT模板.pptx

    网球和网球拍PPT模板.pptx,图中,在一只网球拍上放着两颗网球。颜色以灰色为主,适用于网球运动、健康等主题。

    G3羽毛球拍穿线机.rar

    总结来说,“G3羽毛球拍穿线机”是机械设计与自动化技术的完美结合,它通过三维图展现了机械设备的精妙结构,利用先进的控制技术和工艺优化,实现了羽毛球拍穿线的高效、精准和自动化。这款设备不仅提高了生产效率,...

    羽毛球拍的磅数介绍与选择分析(适合于新手).pdf

    羽毛球拍的磅数选择是新手入门时需关注的重要因素之一,因为它直接影响到击球的力度、控制性和舒适度。磅数是指羽毛球拍弦线的张力,通常在20磅到30磅之间变动,根据球员的技术水平和偏好有所不同。 1. 硬度与控球...

    乒乓球拍胶皮粘结强度检测仪器.rar

    特别是对于乒乓球拍这类器材来说,胶皮与底板之间的粘结强度对于产品的整体性能有着至关重要的影响。随着技术的不断发展,专门用于测试乒乓球拍胶皮粘结强度的设备应运而生,这其中最具代表性的就是XLW(PC) 智能电子...

    cad做的三维网球拍

    自己画的网球拍,有点大,电脑带不起来...参考用吧

    纯CSS3实现乒乓球比赛加载动画效果源码.zip

    首先,要实现乒乓球运动的效果,我们需要创建两个元素,代表乒乓球和球拍。通常,这可以通过HTML结构来完成,例如创建`&lt;div&gt;`标签分别表示乒乓球和球拍,并为其添加适当的类名以便于在CSS中进行样式设置。 接下来,...

    乒乓球拍打磨机sw14可编辑.rar

    在当今追求技术与便捷的时代,乒乓球作为一项广受欢迎的体育活动,对其器材——乒乓球拍的性能...通过使用SW14打磨机,无论是专业运动员还是业余爱好者,都能够感受到技术进步带来的便利,实现对乒乓球运动的更高追求。

    电信设备-基于两面不同手感拍柄的羽毛球拍.zip

    4. **物联网技术**:智能羽毛球拍可能使用蓝牙或Wi-Fi连接,实现实时数据交换,使教练和运动员能够即时了解训练效果。 5. **材料科学**:拍柄的不同手感可能来源于不同的材料组合,例如软硬材质的搭配,或者热塑性...

    行业文档-设计装置-带纸抽的乒乓球拍.zip

    这可能是一个产品设计概念,也可能是一个已经实现的实物原型,或者是对现有乒乓球拍设计的一次革新尝试。 压缩包内的文件名为“带纸抽的乒乓球拍.pdf”,这通常意味着文档将包含详细的设计图纸、概念说明、可能的...

    行业分类-电子-关于可充电羽毛球拍的介绍分析.rar

    标题中的“行业分类-电子-关于可充电羽毛球拍的介绍分析”表明了本文档将探讨的是电子产品领域的一个创新应用,具体来说是可...以上是对可充电羽毛球拍相关知识点的详细介绍,涵盖了从技术实现到市场应用的多个层面。

Global site tag (gtag.js) - Google Analytics