利用JQuery插件CleverTabs实现多页签打开效果

在VS中,我们能打开多页签,并在不同的页签之间进行浏览和操作,这一功能通过JQuery插件CleverTabs也能实现此效果。CleverTabs下载请点击这里:JQuery CleverTabs

 本文采用ASP.NET MVC技术实现效果:要在布局页中点击不同的选择栏,根据不同的选择栏打开不同的网页链接而新增不同页签效果。首先新建 一个空的MVC项目,并在_Layout布局页中引入JS和CSS文件,如下图所示:

<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.js"></script>//JS文件是必须的
<link href="~/Scripts/CleverTabs/CleverTabs/context/themes/base/jquery-ui.css" rel="stylesheet" />
<link href="~/Scripts/CleverTabs/CleverTabs/context/themes/base/style.css" rel="stylesheet" />
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery-ui.js"></script>
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.cleverTabs.js"></script>
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.contextMenu.js"></script>

页面的HTML代码如下图所示:

  <div class="container-fluid">
        <div class="panel panel-primary">
            <div class="panel-body col-md-2" style="margin-top:50px;margin-left:50px">
                <div class="list-group">
                    <a class="list-group-item" style="cursor:pointer" onclick="clickone()">
                            <h4 class="list-group-item-heading">应用二</h4>
                            <p class="list-group-item-text">应用二描述</p>
                        </a>
                        <a class="list-group-item disabled">
                            <h4 class="list-group-item-heading">应用三(失效)</h4>
                            <p class="list-group-item-text">应用三描述</p>
                        </a>
                        <a class="list-group-item" style="cursor:pointer" onclick="clicktwo()">
                            <h4 class="list-group-item-heading">应用四</h4>
                            <p class="list-group-item-text">应用四描述</p>
                        </a>
                        <a class="list-group-item">
                            <h4 class="list-group-item-heading">应用五</h4>
                            <p class="list-group-item-text">应用五描述</p>
                        </a>
                        <a class="list-group-item">
                            <h4 class="list-group-item-heading">应用六</h4>
                            <p class="list-group-item-text">应用六描述</p>
                        </a>
                </div>
            </div>
            <div class="panel-body col-md-9">
                <div id="tabs" style="margin-top:50px">@*定义id为tabs,将页面放入tabs标签中*@
                    <ul>
                        @RenderBody()
                    </ul>
                </div>
           </div>
        </div>
    </div>

以上HTML代码中,点击应用二和应用四触发click事件从而打开不同的页签。 JS代码如下图所示:

<script type="text/javascript">
    var tabs;
    $(document).ready(function () {
        var h = $(document).height() - 100;
        $("#tabs").height(h); //如果不设置高度的话,它默认并不是发100%占满屏幕的,所以我这里使用了计算的方式,初始化界面高度
        tabs = $('#tabs').cleverTabs();
        $(window).bind('resize', function () {
            tabs.resizePanelContainer();
        });
    });

    function clickone() {
        tabs.add({
            id: 'uniqueId',//id必须唯一
            url: "/Home/About",
            label: "关于",
        });
    }

    function clicktwo()
    {
        tabs.add({
            id: 'uniqueId2',
            url: "/Home/Contact",
            label: "联系",
        });
    }
</script>

运行效果如下图所示:在未点击应用二和应用四的时候: 

点击应用二时: 

点击应用四时: 

 

就这样,一个多页签的效果就实现了,可见很多JQuery的控件还是很强大的。并附上CleverTabs的相关说明:

初级应用说明: 

HTML代码: 

<div id="tabs"><ul></ul></div>

JS代码: 

<script type="text/javascript">
    $(function () {
        tabs = $('#tabs').cleverTabs();
        tabs.add({
            url: 'http://think8848.cnblogs.com',
            label: 'think8848'
        });
    });
</script>

CleverTabs详细说明: 

 CleverTabs为所有Tab的容器:

var tabs;
<script type="text/javascript">
    $(function () {
        tabs = $('#tabs').cleverTabs({
            //是否安装右键菜单(默认: true)
            setupContextMenu: true,
            //右键菜单定义, 右键菜单功能由jquery.contextMenu插件提供
            //详见: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
            //本插件中对原contextMenu插件中的样式做了修改,使用了jQuery UI皮肤
            contextMenu: {
                element: $('#contextMenuElementId'),
                handler: function (action, el, pos) { /*do something...*/ }
            },
            //开启Tab后是否锁定(不允许关闭,默认: false)
            lock: false,
            //开启Tab后是否禁用(不允许激活和操作iframe内容,默认: false)
            disable: false,
            //当tabs中只有一个Tab时,是否锁定该Tab(默认: true)
            lockOnlyOne: true,
            //显示iframe的容器(默认创建在tabs元素中)
            panelContainer: $('#panelContainerElementId')/*,
            其中
            tabHeaderTemplate: '', //(Tab用于控制的头模板)
            tabPanelTemplate: '', //(Tab用于显示的Panel模板)
            uidGenerator: function() {} //(Tab唯一id生成器) 
            功能现在不启用,等有时间完善后再启用*/
        });
 
        tabs.add({
            url: 'http://think8848.cnblogs.com',
            label: 'think8848'
        });
    });
</script>

CleverTabs.add方法

添加一个新的Tab并使之成为激活状态,如果将要添加的url已经存在,则会激活该Tab :

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    tabs.add({
        //必须是在tabs内唯一的id
        id: 'uniqueId',
        //将要在iframe的src属性设置的值
        url: 'iframe.src',
        //显示在Tab头上的文字
        label: 'tab header',
        //关闭本Tab时需要刷新的Tab的url(默认: null)
        closeREfresh: 'tab url',
        //关闭本Tab时需要激活的Tab的url(默认: null)
        closeActivate: 'tab url',
        //关闭本Tab时需要执行的回调函数
        callback: function () { /*do something*/ }
    });
</script>

CleverTabs.getCurrentTab方法

获取当前处于激活状态的Tab

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getCurrentTab();
</script>

CleverTabs.getTabByUrl方法

获取指定url的Tab实例 

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
</script>

CleverTabs.clear方法

关闭tabs内所有未锁定的Tab 

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.clear();
</script>

CleverTab.deactivate方法

使Tab页面处于未激活状态,但不建议在代码中使用 
CleverTab.prevTab方法: 
获取该Tab之前的Tab  

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    var prevTab = tab.prevTab();
</script>

 

CleverTab.nextTab方法

获取该Tab之后的Tab

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    var prevTab = tab.nextTab();
</script>

CleverTab.kill方法

从tabs中移移该Tab

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    tab.kill();
</script>

CleverTab.refresh方法

刷新该Tab的iframe中的内容

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    tab.refresh();
</script>

CleverTab.setDisable方法

设置该Tab的disabled属性,设置disabled为true后,自动设置该Tab的locked属性为true   

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    //参数true为禁用,false或不提供值为启用
    tab.setDisable(true);
</script>

CleverTab.setLock方法

设置该Tab的locked属性,设置locked为true后,该Tab的不允许关闭    

<script type="text/javascript">
    var tabs = ('#tabs').cleverTabs();
    var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
    //参数true为锁定,false或不提供值为解锁
    tab.setLock(true);
</script>

当使用CleverTabs默认的PanelContainer时,重新设置PanelContainer的size:

<script type="text/javascript">
       var tabs;
       $(function () {
 
           tabs = $('#tabs').cleverTabs();
           $(window).bind('resize', function () {
               //当发生window.resize事件时,重新默认的tabs的PanelContainer的大小
               tabs.resizePanelContainer();
           });
 
   </script>

 


注:此插件使用的jQuery版本较早,部分语法现在的jQuery版本已经不支持了。需要手动修改源JS文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用以下代码实现国际象棋棋盘图案效果: ``` // 获取所有的棋格元素 var squares = $('.square'); // 遍历所有的棋格元素 squares.each(function(index) { // 判断当前棋格是否在偶数行或偶数列 if (index % 2 === || Math.floor(index / 8) % 2 === ) { // 如果是偶数行或偶数列,设置背景颜色为白色 $(this).css('background-color', 'white'); } else { // 如果不是偶数行或偶数列,设置背景颜色为黑色 $(this).css('background-color', 'black'); } }); ``` 其中,`.square` 是棋格元素的类名,可以根据实际情况进行修改。这段代码会遍历所有的棋格元素,判断当前棋格是否在偶数行或偶数列,然后设置背景颜色为白色或黑色,从而实现国际象棋棋盘图案效果。 ### 回答2: 国际象棋棋盘是由黑白交替排列的正方形格子组成的,利用jQuery选择器获取元素并设置样式,可以很方便地实现这种棋盘图案效果。 首先,我们需要一个HTML页面,用来展示国际象棋棋盘。在页面中,我们可以先创建一个div元素,用来放置棋盘。在这个div元素中,我们可以创建一个table元素,并添加8行8列的格子。代码如下: ``` <div id="chessboard"></div> <script> // create table element var table = '<table>'; // create rows and cells for (var i = 0; i < 8; i++) { table += '<tr>'; for (var j = 0; j < 8; j++) { table += '<td></td>'; } table += '</tr>'; } // close table element table += '</table>'; // append table element to chessboard div $('#chessboard').append(table); </script> ``` 接下来,我们使用jQuery选择器选择所有的黑色格子,并设置它们的背景色为黑色。代码如下: ``` $('#chessboard td:nth-child(even)').filter(':nth-child(odd)').css('background-color', '#000'); ``` 在上面的代码中,我们使用了两个选择器: - :nth-child(even) – 选择偶数位置的元素(如第2个、第4个、第6个、第8个格子); - :nth-child(odd) – 选择奇数位置的元素(如第1个、第3个、第5个、第7个格子)。 我们还使用了.filter()方法来将偶数位置的元素(即黑色格子)中的奇数位置的元素(即第1、3、5、7个格子)筛选出来,以便将所有黑色格子的背景色设置为黑色。 然后,我们使用相同的方法选择白色格子,并设置它们的背景色为白色。代码如下: ``` $('#chessboard td:nth-child(odd)').filter(':nth-child(odd)').css('background-color', '#fff'); ``` 在上面的代码中,我们只需要将第一个选择器中的 :nth-child(even) 改为 :nth-child(odd),即可选择奇数位置的元素(如第1个、第3个、第5个、第7个格子)。 至此,利用jQuery选择器获取元素并设置样式,我们已成功地实现了国际象棋棋盘图案效果。完整代码如下: ``` <div id="chessboard"></div> <script> // create table element var table = '<table>'; // create rows and cells for (var i = 0; i < 8; i++) { table += '<tr>'; for (var j = 0; j < 8; j++) { table += '<td></td>'; } table += '</tr>'; } // close table element table += '</table>'; // append table element to chessboard div $('#chessboard').append(table); // set black squares $('#chessboard td:nth-child(even)').filter(':nth-child(odd)').css('background-color', '#000'); // set white squares $('#chessboard td:nth-child(odd)').filter(':nth-child(odd)').css('background-color', '#fff'); </script> ``` ### 回答3: 国际象棋棋盘图案效果实现可以使用jQuery选择器来获取元素和设置样式。首先需要创建一个棋盘的HTML结构,可以使用双层循环在每个方格上添加对应的颜色,然后在CSS中设置每个方格的宽度、高度、背景色等样式。 为了实现国际象棋棋盘图案效果,需要交替设置不同颜色的方格。可以使用伪类选择器:nth-child()来实现这一效果。通过对奇数行和偶数行的方格进行交替设置不同的颜色,就可以得到黑白相间的国际象棋棋盘效果。 具体实现代码如下: HTML结构: ``` <div class="chess-board"> <div class="row"> <div class="square"></div> <div class="square"></div> // 7 more squares </div> <div class="row"> <div class="square"></div> <div class="square"></div> // 7 more squares </div> // 6 more rows </div> ``` CSS样式: ``` .chess-board { width: 320px; height: 320px; } .row { display: flex; } .square { width: 40px; height: 40px; } /* 设置奇数行的方格背景色 */ .row:nth-child(odd) .square:nth-child(odd) { background-color: #FFFFFF; } .row:nth-child(odd) .square:nth-child(even) { background-color: #000000; } /* 设置偶数行的方格背景色 */ .row:nth-child(even) .square:nth-child(odd) { background-color: #000000; } .row:nth-child(even) .square:nth-child(even) { background-color: #FFFFFF; } ``` 上述代码中,我们使用选择器:nth-child(odd)来选择奇数行的方格,然后再通过:nth-child(odd)和:nth-child(even)交替选择奇数列和偶数列的方格,分别设置不同的背景色。 最终的效果就是黑白相间的国际象棋棋盘图案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机械键盘侠

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值