jquery实现两边滑动的选项卡菜单例子

效果图如下

今天制作了一款选项卡菜单,其实本质上和普通的选项卡没什么区别,对于菜单项有hover效果,有选中效果,所增加的就是,菜单项可以有无数个,当总菜单项的宽度之和超出选项卡的固定宽度时,会出现向右移动按钮,这时,多出的菜单项会被隐藏掉。

然后,可以点击移动按钮来移动菜单项,这样隐藏的菜单项就出来了,并且菜单项可以无数多个,自由增加。下面就来具体看一下吧:

首先是页面结构:(已省略掉一部分li标签,都是一样的,可自由添加)

 代码如下 复制代码

<div class="tab-menu-box">
    <ul class="tab-menu-list">
        <li>
            <a href="javascript:void(0);" class="active">前端开发HTML5</a>
        </li>
        <li>
            <a href="javascript:void(0);">前端开发CSS3</a>
        </li>
        <!--同样的结构,若干个省略掉的li-->
        <li>
            <a href="javascript:void(0);">前端开发JS</a>
        </li>
        <li>
            <a href="javascript:void(0);">WEB前端开发</a>
        </li>
    </ul>
    <!--左右移动按钮-->
    <a href="javascript:void(0);" class="btn-toLeft">&lt;&lt;</a>
    <a href="javascript:void(0);" class="btn-toRight">&gt;&gt;</a>
</div>

对于CSS布局是这样的:

让ul绝对定位,这样方便左右移动,同时两个按钮也要就对定位,分别位于选项卡两边。ul的宽度是由js动态处理的,ul的宽度是所有的li的宽度及其margin之和,然后会有一部分超出父级的宽度,此时,让超出部分隐藏掉就可以了(父级设置overflow属性)。另外,代码就不贴了,最后边会给出下载链接,可以下下去自己看。

最后就是js部分了(这里用到了jquery库):

这一块就是实现的逻辑的了,要想想在什么条件下按钮出现,然后点击按钮后怎样然ul移动,再次点击后继续移动,一直移动到菜单全部出现,也即是ul要移动到"尽头",这个得判定条件是什么,这些都是需要好好思考的,可以写写画画,也许就想出来了。

 代码如下 复制代码

$(function () {
    var oTabMenu = $(".tab-menu-box");
    var oTabMenuList = $(oTabMenu).find(".tab-menu-list");
    var aLi = $(oTabMenuList).find("li");
    var aMenus = $(oTabMenuList).find("li a");
    var oMenuBtnL = $(oTabMenu).find(".btn-toLeft");
    var oMenuBtnR = $(oTabMenu).find(".btn-toRight");
    var disX = 0;
    var l = 0;
     
    function reset() {
        var ulWidth = 0;
        for (var i = 0; i < aLi.length; i++) {
            ulWidth += aLi.eq(i).width() + 10;
        }
        oTabMenuList.css("width", ulWidth);
        if (oTabMenuList.width() > oTabMenu.width()) {
            oMenuBtnR.show();
        }
        disX = oTabMenuList.width() - oTabMenu.width();
    }
     
    function move(dis) {
        oTabMenuList.animate({"left": dis}, 400);
    }
     
    reset();
     
    aMenus.click(function () {
        aMenus.removeClass("active");
        $(this).addClass("active");
     
        /*可以添加选项卡的内容,点击相应菜单显示相应内容*/
     
    });
     
    oMenuBtnR.click(function () {
        if (l >= -disX) {
            l += -100;
            move(l);
        }
        if (l < 0) {
            oMenuBtnL.fadeIn();
        }
        if (l < -disX) {
            oMenuBtnR.fadeOut();
        }
    });
     
    oMenuBtnL.click(function () {
        if (l < 0) {
            l += 100;
            move(l);
        }
        if (l >= 0) {
            oMenuBtnL.fadeOut();
        }
        if (l >= -disX) {
            oMenuBtnR.fadeIn();
        }
    });
});

时间: 2024-08-30 18:32:02

jquery实现两边滑动的选项卡菜单例子的相关文章

jQuery EasyUI页面布局加导航菜单例子

  说明   上图导航栏由两部分构成,由accordion和tree两个控件实现.   1.     这个由accordion控件实现,能实现展开.折叠效果.   2.     这个是一个tree(树形)控件. accordion(分类)控件代码 分 类控件允许用户使用多面板,但在同一时间只会显示一个.每个面板都内建支持展开和折叠功能.点击一个面板的标题将会展开或折叠面板主体.面板内容 可以通过指定的'href'属性使用ajax方式读取面板内容.用户可以定义一个被默认选中的面板,如果未指定,那么

jquery 滑动选项卡菜单效果

 代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jquery 滑动选

jQuery实现带幻灯的tab滑动切换风格菜单代码_jquery

本文实例讲述了jQuery实现带幻灯的tab滑动切换风格菜单代码.分享给大家供大家参考.具体如下: 这是一款很不错的TAB滑动切换效果,jQuery带幻灯的tab滑动切换风格菜单导航条,点击上方的文字,下边就向左或向右滑动切换,动画效果的TAB选项卡. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-flash-style-tab-cha-menu-codes/ 具体代码如下: <!DOCTYPE html> <head&g

jquery实现左右滑动菜单效果代码_jquery

本文实例讲述了jquery实现左右滑动菜单效果代码.分享给大家供大家参考.具体如下: 这里演示了三种背景颜色左右滑动jquery菜单导航效果,IE下有问题,本菜单使用了CSS3的部分属性,因此建议使用火狐或Chrome等浏览器获取最佳效果.当把鼠标移到菜单上的时候,对应菜单项的背景会变化,而且本菜单具有圆角的效果. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-left-right-move-style-menu-codes/ 具

jquery简单实现带渐显效果的选项卡菜单代码_jquery

本文实例讲述了jquery简单实现带渐显效果的选项卡菜单代码.分享给大家供大家参考.具体如下: 带渐显效果的选项卡菜单,使用了jQuery共同完成的效果,鼠标点击选项卡之后,出现渐变(淡入淡出效果),让网页看上去更生动. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-cha-style-tab-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T

jQuery实现背景滑动菜单_jquery

话不多说,直接附上源码,仅供大家参考 <div class="menu"> <ul id="menu"> <li><a href="#">JavaScript</a></li> <li value="1"><a href="#">Graphic Design</a></li> <li

基于JQuery的6个Tab选项卡插件_jquery

顺便也找 来了不少优秀的Tab选项卡实例,在这里与大家分享一下.当然,最终我没有用到IdTabs以及如下任何一个实例,我只是很不服气的自己写了个小插件,尚 不完善,就不于此共享了.先来看看老外们出色的基于JQuery的各式Tab选项卡吧:1. jQuery 选项卡界面 / 选项卡结构菜单教程这种 类型的菜单在网页设计与开发中非常著名的.此片教程是向大家展示如何使用jQuery的向下滑动/向上滑动效果创建属于你自己的选项卡菜单.要非常留心此 演示哟,你一定会喜欢上它的.演示 | 下载 | 介绍 2

jQuery入门(7) 滑动效果

jQuery支持使用下面方法来实现HTML元素的滑动效果: slideDown() slideUp() slideToggle() slideDown方法 用来实现向下滑动动画效果,其基本语法为: $(selector).slideDown(speed,callback); 可选参数speed给出了淡入效果的时间,可 以使用 "slow","fast" 或是数值(微秒) 第二个可选参数为回调函数,在slideDown()方法结 束后调用. 下面例子点击按钮#pane

jQuery实现的纵向下拉菜单实例详解【附demo源码下载】_jquery

本文实例讲述了jQuery实现的纵向下拉菜单.分享给大家供大家参考,具体如下: 当我们浏览网页和使用word编辑一下文字的时候,我们都能看见横向下拉的身影,有了横向菜单,我们能对整个界面进行更好的布局,达到我们想要的效果,那么这些横向菜单式如何用代码实现的,当我们浏览或使用的时候她又是如何呈现在我们面前的,学习了JQuery之后,小编渐渐看到她美丽的容颜,接下来,小编主要讲解如何通过jquery实现纵向下拉菜单. 第一步,我们来编写html的代码,如下所示: <!DOCTYPE html PUB