• 技术文章 >web前端 >js教程

    JS实现标签页效果(配合css)_javascript技巧

    2016-05-16 17:38:21原创426
    实现的效果

    如上图所示为制作的标签页,我们想要实现的效果是当鼠标移到某一个标签的时候,在下面的内容区显示对应的内容,并且相应标签的颜色需要改变,如图中所示当前鼠标的位置在“标签1”上,则内容区域显示的内容为“我是内容1”,并且“标签1”的颜色要比“标签2”和“标签3”深一些,同样鼠标移到“标签2”和“标签3”的时候显示“我是内容2”和“我是内容3”。这样的效果是CSS和JS配合实现的。下面我们就来看看具体代码:

    首先来看HTML代码
    复制代码 代码如下:





    标签页效果






    • 标签1

    • 标签2

    • 标签3


    我是内容1

    我是内容2

    我是内容3




    JS代码实现思路很简单,首先给每个标签项注册一个mouseover函数,当鼠标移到任何一个标签上的时候都会执行moveover函数体内的代码。函数体代码首先获取当前节点,将原来显示的内容进行隐藏,然后根据传入的节点index把对应于相应标签下的内容显示出来。在代码中我们可以看到除了对HTML中节点样式进行改动外还使用了setTimeout函数,该函数的作用是延迟函数的执行时间,下面代码中的延迟时间为300毫秒,也就是当鼠标移到标签后并不是立即执行而是延迟300毫秒后在执行,如果在300毫秒时间内鼠标移出标签区域则不再执行该代码。
    复制代码 代码如下:

    $(document).ready(function(){
    var timeoutid;
    $("#tabfirst li").each(function(index){

    //每一个包装的li的JQuery对象都会执行function中的代码
    //index是当前执行这个function代码的li对应在所有li组成的数组中的索引值
    //有了index的值后,就可以找到当前标签对应的内容区域
    $(this).mouseover(function(){
    var liNode = $(this);
    timeoutid = setTimeout(function(){
    //将原来显示的内容进行隐藏
    $("div.contentin").removeClass("contentin");
    //将原来有tabin属性的标签去掉tabin属性
    $("#tabfirst li.tabin").removeClass("tabin");
    //将当前标签对应的内容区域显示出来
    $("div.contentfirst").eq(index).addClass("contentin");
    //$("div.contentfirst:eq(" + index + ")").addClass("contentin");
    //将当前标签增加tabin属性
    liNode.addClass("tabin");

    },300);

    }).mouseout(function(){

    clearTimeout(timeoutid);
    });
    });
    });

    除了该效果外,我们还可以利用相同的原理给每个标签注册click函数,当点击每个标签的时候在原内容区域可以装载不同的页面或任意页面的一部分,有兴趣的话可以点击这里下载源码。该源码中包含了文中所提到的两种不同函数所实现的不同功能。
    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:标签页 js
    上一篇:运算符&&的三个不同层次_基础知识 下一篇:Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)_extjs
    大前端线上培训班

    相关文章推荐

    • 实例解说JavaScript创建对象的四种方式• JS构造函数-实例对象-原型对象之间的关系• javascript中如何获取属性• 4个编写短小精炼JS代码的小技巧(分享)• nodejs怎么设置成员

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网