精巧支付宝导航条制作教程

alipay-tab

其实也算不上教程,也就是自己没事儿的时候做点东西然后发上来大家交流交流,希望大家不吝赐教^!^

因为刚看过亚东的教程和这个有点相似,所以就自己琢磨了一下写了一个仅用到一小段的JS就搞定了。亚东的里面要用到JQuery。我感觉要是简单一点的东西直接上JS就行了,有大量需求时再调用库才好。

 

核心HTML代码如下:

<div id="menu">
    <div id="top"><!–橙色菜单项部分:此标签作用在于滑动门效果的实现—>

        <ul id="item"><!–列表项li可自由添加与修改–>
<li id="item1"><a href="#"><span>前端开发</span></a></li>
<li id="item2" class="active"><a href="#"><span>我要付款</span></a></li>
<li id="item3"><a href="#"><span>网站开发</span></a></li>
<li id="item4"><a href="#"><span>交易管理</span></a></li>
<li id="item5"><a href="#"><span>我的支付宝</span></a></li>
<li id="item6"><a href="#"><span>安全中心</span></a></li>
<li id="item7"><a href="#"><span>商家服务</span></a></li> 
<li class="ext1"></li><!–额外的标签用于定位菜单项右上圆角–>
        </ul>
    </div>
    <div id="bot"><!–灰色子菜单项部分:此标签作用也在于滑动门效果的实现–>
        <ul class="sub-item" id="sub-item1">
<li><a href="#"><span>HTML</span></a></li>
<li><a href="#"><span>CSS</span></a></li>
<li><a href="#"><span>JavaScript</span></a></li>
<li><a href="#"><span>ActionScript</span></a></li>
<li><a href="#"><span>Photoshop</span></a></li>
<li><a href="#"><span>Fireworks</span></a></li>
<li><a href="#"><span>Flash</span></a></li>
<li class="ext2"></li><!–额外的标签用于定位菜单项右下圆角–>
        </ul>
     </div>   
</div>

注意:

  • 1.菜单项是可以自由扩展的,前提是复制代码中类名为“sub-item”红色列表标签。也就是copy这个ul标签的所有内容粘贴其后就行。
  • 2.类名为“sub-item”列表标签ul的id属性依次类加就OK了,如:sub-item1,sub-item2,sub-item3…
  • 3.类名为“active”的蓝色列表标签表示载入时的默认菜单项。

核心JavaScript代码:

主要功能是:子菜单项随着菜单项变化而变化的效果(类似tab选项卡)。

window.onload = function() {
    for( i=1; i<8; i++ ){
        var nodeItem = document.getElementById("item"+i);    //遍历每个菜单项增加onClick事件
        nodeItem.onclick = function() {
            /*菜单激活动态样式*/
            for( n=0; n<6; n++){
                document.getElementsByTagName("li")[n].className = "";
                //alert(this.className);
            }
            this.className = "active";
            var linkNode = parseInt( this.id.substring(4,5) );   
            for ( j=1; j<10; j++){        //按顺序匹配菜单项和菜单内容
                var nodeSubItem = document.getElementById("sub-item"+j);
                if ( linkNode == j ){    //如果菜单项和菜单内容匹配则显示,否则隐藏
                    nodeSubItem.style.display = "block";
                }else{
                    nodeSubItem.style.display = "none";
                }
            }
        }
    }
}

JS代码就不多做解释了,重要部分我已经给出注释。因为我也是菜鸟,费了很大劲才实现效果,还希望高手多多指点。

CSS代码有点小多我就不贴出来了,其实核心代码就那几句,主要为了仿制得完美就得多写一点啦!有兴趣的同学直接下载我的源码研究。有什么问题直接给我留言^!^

最终效最终果预览

代码及原素材下载

精巧支付宝导航条制作教程》上有 50 条评论

  1. 我最近也在学习 都找不到好的素材
    你的很不错 可是我想在基础上修改
    使得点击后或一打开就停留在某个子菜单上面 而不仅仅是鼠标移动到子菜单才显示背景

    另一个是每一个页面固定一个一级菜单下面的子菜单上面,移到其他选项 如果未点击链接 则自动返回固定子菜单上面

    这种要怎么实现呢 请教了 我还是个菜鸟 不大懂CSS

    • @Garyjm 我不是很清楚你的意思!大概是这样吧!你的意思是移动到某个选项时显示子项内容但移开时显示默认是吧?如果是这样的话那就得用onmouseover和onmouseout事件了,嵌套上onclick事件就差不多了,这个具体可以google下看看,原理都是大同小异的!

  2. document.getElementsByTagName(“li”)[n].className = “”;

    如果在menu前有LI出现会出现什么情况了?<=IE8试试。

  3. 确实不错,哈哈在blueidea看到这个教程 链接到你的BLOG,代码很简单 效果很漂亮!支持你!呵呵

  4. 更改了 active 的对应一级目录,但是二级目录始终在第二个.无法自动匹配!机关在哪里,我还没找到!非常感谢

    • @问鼎天下 改了active的class后要在CSS里把相应的显示设置成隐藏就行了。默认的是第二个隐藏,你改成你想要的就成!

      • 原来机关在
        .sub-item { display:none;}
        #sub-item1 { display:block;}
        这里,非常感谢!
        kily是否考虑完善一下这个菜单的记忆功能用COOKE来判定用户的选折!期待!

  5. 问题有两个,第一是此导航虽然能实现无数个一级栏目但是只支持到第9个一级目录下的二级目录能显示,超过9个的一级目录便无法显示二级目录了.第二是导航加上真正的链接后一直会跳会到 active无法辨认当前点击的菜单项!

  6. Pingback 引用通告: 精巧支付宝导航条制作教程 - 网来网去-http://www.webcomgo.com专注互联网分析、SEO、电子商务、管理营销、GTD、生活日志 爱皇冠 乐淘淘

    • @天下免费 这个我到真没研究过,不清楚wp导航的内部结构。不过有一个比较简单的方法,直接copy我的代码然后修改链接就可以。缺点就是不够灵活。要想完美的话就得多研究一个wp的结构了。

  7. 有BUG,你点到最后的“商家服务”后,再点其他的,“商家服务”没有失去active。貌似n<7就对了

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。