账号通
    

账号  

密码  

2431

查看

6

回复
主题:强烈建议顶部导航静态页面增加当前频道的current标识 [收藏主题] 转到:  
tx2090 当前离线

25

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:503 分
登录次数:27 次
注册时间:2009/6/13
最后登录:2015/4/4
tx2090 发表于:2010/3/24 17:55:00   | 只看该作者 查看该作者主题 楼主 

  静态生成的频道页,打开源代码如下:

 

  当前频道页面是 【频道2】

 

<div id=menubk>

<div id="menu">
 <ul>

<li><a  href="/tta/"   target="_self">本站首页</a></li> 

 <li><a  href="/tta/html/pd2/"   target="_self">频道2</a></li> 

<li><a  href="/tta/html/pd3/"   target="_self">频道3</a></li> 

</ul>
</div>
</div>

 

一个很明显的问题是:

li并不能标识当前页面,这样造成的问题是:无法在导航栏为当前的页面进行指示,从CSS样式表控制出类似下图的效果


此主题相关图片如下:未命名.jpg
未命名.jpg

 

如果能在静态页面生成的时候,将上面的代码生成如下:

 

 

当前频道页面是 【频道2】

 

<div id=menubk>

<div id="menu">
<ul>

<li><a  href="/tta/"   target="_self">本站首页</a></li> 

<li id='current'><a  href="/tta/html/pd2/"   target="_self">频道2</a></li> 

<li><a  href="/tta/html/pd3/"   target="_self">频道3</a></li> 

</ul>
</div>
</div>

 

 

就可以通过CSS样式表很方便的产生各种漂亮的导航菜单。
例如:

 

#menu #current{background:url(../images/memu_upbg1.jpg) no-repeat center top; text-decoration:none;}

 

通过这样的CSS控制就可以改变当前频道页面的导航文字的背景图片。

 

 

我做过一些修改标签和函数的常识都没有成功。

 

在 :Kesion.Label.FunctionCls.asp 文件内,有如下的函数

 

'取得顶部栏目导航
Function GetNavigation(ChannelID, TypeFlag, NavType, Nav, SplitPic, Col, OpenType, T_Css,P_T,DivID,DivCss,UlID,ULCss,LiID,LICss)

 

其中有段代码:

 

If Not RS.EOF Then
        If Cint(P_T)=2 Then
      GetNavigation = "<div"&KS.GetCssID(DivID)&KS.GetCss(DivCss) &">" & vbCrLf & " <ul"&KS.GetCssID(UlID)&KS.GetCss(ULCss) &">" & vbCrLf
         Do While Not RS.EOF

 

         '自己编写的代码,当前栏目id无法获得,通过 {$GetClassID},提示出错

         if 当前频道的ID=RS("ID") and RS("TJ")=1 then

             my_liid=" id='current' "

         else

              my_liid=""

         end if

       

        if not isnumeric(mid(RS(0),3,3)) then
          GetNavigation = GetNavigation & "  <li"&KS.GetCssID(LIID)&my_liid&KS.GetCss(LICss)&">" & "<a " & KS.GetCss(T_Css) & " href=""" & RS(2) & """  " & KS.G_O_T_S(OpenType) & ">" & Trim(RS(1)) & "</a></li>"
        else
        GetNavigation = GetNavigation & "  <li"&KS.GetCssID(LIID)&my_liid&KS.GetCss(LICss)&">" & "<a " & KS.GetCss(T_Css) & " href=""" & KS.GetFolderPath(RS(0)) & """  " & KS.G_O_T_S(OpenType) & ">" & Trim(RS(1)) & "</a></li>"
        end if
          RS.MoveNext
          If RS.EOF Then Exit do
         Loop
         GetNavigation = GetNavigation & "  </ul>" & vbcrlf & "  </div>" & vbCrLf

end if
  

      最好的方法是在这里加入一个变量,判断是否是顶级菜单,从而增加 id='current', 然而问题是在这个函数内,我无法判断当前页面的频道ID。

 

 

后来又注意到:  KS.GetCssID(LIID) 这个函数

 

这个函数位于:Kesion.CommonCls.asp

 

如果能修改这个函数,自动判断是否是当前页面,从而增加id='current' 当然最好。

然后 这个函数又使用了其它函数。

 

头大了,大家谁能继续接着弄弄。成功了就是个大好的改进。

 

也希望科讯看到该篇能尽快增加这个小功能。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
gameboykk1 当前离线

18

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:152 分
登录次数:6 次
注册时间:2010/3/12
最后登录:2010/4/7
gameboykk1 发表于:2010/3/25 10:09:00   | 只看该作者 查看该作者主题 沙发 
科汛智能建站系统

看这种帖子就要有种“雾里看花”的感觉。
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
lwc613 当前离线

18

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:16 分
登录次数:10 次
注册时间:2010/3/13
最后登录:2010/3/24
lwc613 发表于:2010/3/24 19:31:00   | 只看该作者 查看该作者主题 藤椅 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
无风 当前离线

1622

主题

5

广播

29

粉丝
添加关注
级别:高一年

用户积分:5963 分
登录次数:199 次
注册时间:2009/10/12
最后登录:2024/4/4
无风 发表于:2010/3/24 18:19:00   | 只看该作者 查看该作者主题 板凳 
科汛智能建站系统

科讯已经用内置的css样式来实现诸如此类的当前频道的按下效果

样式名:.currclass{} 注:①名称不可修改,样式可以自定义;②必须使用科讯的导航标签,sql标签则无效

 

类似的内置样式还有分页样式

样式名:#fenye{} 用来控制分页的样式,比如居中

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
tx2090 当前离线

25

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:503 分
登录次数:27 次
注册时间:2009/6/13
最后登录:2015/4/4
tx2090 发表于:2010/3/31 20:49:00   | 只看该作者 查看该作者主题 报纸 
科汛智能建站系统

你说的是6.0里的

我的5.5里并无此功能。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
tx2090 当前离线

25

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:503 分
登录次数:27 次
注册时间:2009/6/13
最后登录:2015/4/4
tx2090 发表于:2010/3/31 20:40:00   | 只看该作者 查看该作者主题 地板 
科汛智能建站系统

仁兄,如果科讯已经有这样的功能。

 

你可以随便打开一个频道页面。查看其自动生成的代码。

 

<div id=menubk>

<div id="menu">
 <ul>

<li><a  href="/tta/"   target="_self">本站首页</a></li> 

 <li><a  href="/tta/html/pd2/"   target="_self">频道2</a></li> 

<li><a  href="/tta/html/pd3/"   target="_self">频道3</a></li> 

</ul>
</div>
</div>

 

一个很明显的问题是:

li并不能标识当前页面,这样造成的问题是:无法在导航栏为当前的页面进行指示,从CSS样式表控制出类似下图的效果

 

我想科讯也无法控制她按下的效果吧,因为当前的li更本没有被标识出来。

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
maleflower 当前离线

14

主题

3

广播

0

粉丝
添加关注
级别:学前班

用户积分:23 分
登录次数:15 次
注册时间:2012/10/13
最后登录:2013/3/30
maleflower 发表于:2012/10/19 17:21:13   | 只看该作者 查看该作者主题 7楼 
我也一直想实现这个效果,真是头大了
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.17188秒 powered by KesionCMS 9.0