广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何使用Html实现添加、删除、右键菜单
  • 388
分享到

如何使用Html实现添加、删除、右键菜单

2024-04-02 19:04:59 388人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关如何使用html实现添加、删除、右键菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:<!DOCTYPE html>&l

这篇文章将为大家详细讲解有关如何使用html实现添加、删除、右键菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>

    <title></title>

    <link href="//cdn.bootCSS.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">

    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh5u" crossorigin="anonymous">

    <!--Jquery 1.11.3-->

    <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.js"></script>

    <style>

        .tabs{

            width:800px;

            margin:150px auto;

        }

        .tab-header {

            position: relative;

            height: 40px;

            line-height: 40px;

            background: #fafafa;

            border-bottom: solid 2px #39AEF5;

            overflow: hidden;

        }

 

        .tab-left, .tab-right {

            position: absolute;

            top: 0;

            width: 40px;

            height: 40px;

            text-align: center;

            color: #888;

            background-color: #ffffff;

            cursor: pointer;

            z-index: 1000;

        }

 

        .tab-left {

            left: 0;

            border-right: solid 1px #eee;

        }

 

        .tab-right {

            right: 0;

            border-left: solid 1px #eee;

        }

 

        .tabs-wrap {

            position: relative;

            overflow: hidden;

            margin: 0 40px;

        }

        .tabs-wrap ul{

            list-style-type: none;

            height: 40px;

            margin: 0;

            padding: 0;

            font-size: 14px;

            width: 5000px;

        }

        .tabs-wrap ul li {

            float: left;

            display: inline-block;

        }

        .tabs-wrap ul li a {

            display: block;

            border-right: solid 1px #eee;

            padding: 0 15px;

            color: #888;

        }

 

        .tabs-wrap ul li.active a{

            background-color: #39AEF5;

            color: #fff;

        }

        .tabs-wrap ul li a:hover{

            text-decoration: none;

        }

    </style>

</head>

<body>

    <div class="tabs" id="tabs">

        <!--标签页导航条-->

        <div class="tab-header">

            <!--左边按钮-->

            <a class="tab-left">

                <i class="fa fa-backward"></i>

            </a>

            <!--右边按钮-->

            <a class="tab-right">

                <i class="fa fa-forward"></i>

            </a>

            <div class="tabs-wrap">

                <!--标签页内容-->

                <ul class="tabs-content">

                    <li class="active" data-id="0"><a href="#">首页</a></li>

                </ul>

            </div>

        </div>

        <!--标签页内容-->

        <div class="tab-panel" id="tab-panel">

            <div class="panel-content" data-id="0">

                <iframe class="myiframe" name="iframe0" scrolling="auto" width="100%" height="100%" src="view/home.html" frameborder="0"></iframe>

            </div>

        </div>

    </div>

 

    <ul class="dropdown-menu Rightmenu">

        <li class="tabUpdate"><a>刷新</a></li>

        <li class="divider"></li>

        <li class="tabCloseAll"><a>关闭全部选项卡</a></li>

        <li class="divider"></li>

        <li class="tabCloseOther"><a>关闭其他选项卡</a></li>

        <li class="divider"></li>

        <li class="tabnextClose"><a>关闭右边其他选项卡</a></li>

        <li class="divider"></li>

        <li class="tabprevClose"><a>关闭左边其他选项卡</a></li>

    </ul>

    <a class="btn btn-primary btn-lg" data-id="1" style="margin-left: 100px">添加TABS1</a>

    <a class="btn btn-primary btn-lg" data-id="2" style="">添加TABS2</a>

    <a class="btn btn-primary btn-lg" data-id="3" style="">添加TABS3</a>

    <a class="btn btn-primary btn-lg" data-id="4" style="">添加TABS4</a>

    <a class="btn btn-primary btn-lg" data-id="5" style="">添加TABS5</a>

    <a class="btn btn-primary btn-lg" data-id="6" style="">添加TABS6</a>

    <a class="btn btn-primary btn-lg" data-id="7" style="">添加TABS7</a>

    <a class="btn btn-primary btn-lg" data-id="8" style="">添加TABS8</a>

    <a class="btn btn-primary btn-lg" data-id="9" style="">添加TABS9</a>

    <script >

        //获取全部的tab标签的宽度

function getContentWidth(c){

    var w = 0;

    c.children().each(function(){

        w += $(this).outerWidth(true);

    });

    return w;

}

// 判断tab是否已存在

function tabRepeat(id) {

    var li = $(".tabs-content li");

    var isRepeat = false;

    $.each( li , function (i,n) {

        if($(n).attr("data-id") == id){

            isRepeat = true;

            return false;

        }

    });

    return isRepeat;

}

//添加tab方法

function addTab(id, title, content) {

 

    var ul = $(".tabs-content");

    var panels = $(".tab-panel");

    var tab;

 

    // 如果tab标题已存在,就打开当前标签页并返回

    if (tabRepeat(id)) {

        tab = $(".tabs-content li[data-id=" + id + "]");

        scrollSelected(tab);

    } else {

        //创建tab

        tab = $(

            '<li data-id = "' + id + '">' +

            '<a href="javascript:void(0)">' +

            title +

            ' <i class="fa fa-times-circle tab-close"></i></a>' +

            '</li>'

        );

        //创建tab面板

        var tabPanel = $(

            '<div class="panel-content" data-id="'+ id +'">' +

            content +

            '</div>'

        );

        //将tab和tab面板添加到页面

        tab.appendTo(ul);

        tabPanel.appendTo(panels);

 

        //如果标签过多,就滚动标签容器使标签显示

        var tabsWidth = getContentWidth(ul);

        tabsWidth > $(".tabs-wrap").width() &&  ul.animate({

            "margin-left" : $(".tabs-wrap").width() - tabsWidth

        });

    }

    //选中tab

    selectTab(tab);

}

//选中标签页

function selectTab(self){

    //所有的tab取消选中

    $(".tabs-content li").removeClass("active");

    //隐藏所有的面板

    $(".panel-content ").hide();

    //选中时显示选中的标签页

    self.addClass("active");

    var id = self.attr("data-id");

    $(".panel-content[data-id="+ id + "]").show();

    return false;

}

//选中时移动Tab

function scrollSelected(self){

    var w= parseInt(self.css("width"));

    var ul = $(".tabs-content");

    var ulLeft = parseInt( ul.css("margin-left"));

    var wapW = $(".tabs-wrap").width();

    var tabsWidth = getContentWidth(ul);

    var prveall = self.prevAll();

    var nextall = self.nextAll();

    var prveallwidth = 0;

    var nextallwidth = 0;

    var newleft;

    $.each(prveall,function(i , n){

        prveallwidth += parseInt($(n).css("width"))

    });

    $.each(nextall,function(i , n){

        nextallwidth += parseInt($(n).css("width"))

    });

    if(prveallwidth + w < wapW){

        newleft = 0

    }else if( nextallwidth < wapW ){

        newleft = wapW - tabsWidth

    }else{

        newleft = -prveallwidth + wapW/2

    }

    if( prveallwidth < -ulLeft || prveallwidth > wapW - w ){

        ul.animate({

            "margin-left": newleft

        })

    }

}

//删除标签页

function  closeTab(self){

    var li = self.parents("li");

    var id = li.attr("data-id");

    var nextLI = li.next();

    var prevLI = li.prev();

    var w = li.width();

    var ul = $(".tabs-content");

    var tabConLeft = parseInt(ul.css("margin-left"));

    //删除标签和面板

    li.remove();

    $(".panel-content[data-id="+ id + "]").remove();

 

    //删除标签页时显示其他标签页

    if(li.hasClass("active") && nextLI.size() == 0 ){

        prevLI.addClass("active");

        $(".panel-content[data-id="+ prevLI.attr("data-id") + "]").show();

    }else if(li.hasClass("active") && nextLI.size() != 0){

        nextLI.addClass("active");

        $(".panel-content[data-id="+ nextLI.attr("data-id") + "]").show();

        return false

    }

 

    //需要时滚动标签

    tabConLeft < 0 && ul.animate({

        "margin-left": tabConLeft + w > 0 ? 0 : tabConLeft + w

    });

}

//绑定点击事件

function bindEvents(self) {

    self.unbind().bind("click", function (e) {

        var left = 200;

        var ul = $(".tabs-content");

        var ulLeft = parseInt(ul.css("margin-left"));

        var tabsWidth = getContentWidth(ul);

        if ($(e.target).hasClass("tab-left") || $(e.target).parent().hasClass("tab-left")) {

            ulLeft < 0 && scrollBy(left);

        } else if ($(e.target).hasClass("tab-right") || $(e.target).parent().hasClass("tab-right")) {

            ulLeft > $(".tabs-wrap").width() - tabsWidth && scrollBy(-left)

        } else if($(e.target).hasClass("tab-close")){

            closeTab($(e.target))

        }else{

            var li = $(e.target).closest('li');

            if(li.length){

                selectTab(li);

            }

            return false

        }

    }).on('contextmenu','li',function(e){

        e.preventDefault();

        selectTab($(this));

        $(".Rightmenu").css({

            display: 'block',

            left: e.pageX,

            top: e.pageY

        });

    });

    tabRightmenuEven();

}

//设置标签滚动

function scrollBy(left){

    var ul = $(".tabs-content");

    var ulLeft = parseInt(ul.css("margin-left"));

    var tabsWidth = getContentWidth(ul);

    var newLeft = ulLeft + left;

    if(newLeft > 0 ){

        newLeft = 0

    }else if(newLeft < $(".tabs-wrap").width() - tabsWidth){

        newLeft = $(".tabs-wrap").width() - tabsWidth

    }

    ul.animate({

        "margin-left":  newLeft

    })

}

//绑定右键菜单事件

function tabRightmenuEven() {

    //离开选项卡时,隐藏右键菜单

    $(".Rightmenu").on('mouseleave',function(){

        $(this).hide();

        return false;

    });

    $(".sidebar, .main, .top-navbar").mouseover(function(){

        $(".Rightmenu").hide();

    });

    //刷新

    $('.tabUpdate').click(function () {

        var tabs = $(".tabs-content li");

        tabs.each(function (i, n) {

            if ($(n).hasClass("active")) {

                var id = $(n).attr("data-id");

                //用js调用强制刷新

                $(".panel-content[data-id = '"+ id +"'] iframe").attr('src', $(".panel-content[data-id = '"+ id +"'] iframe").attr('src'));

            }

        });

        $(".Rightmenu").hide();

        return false;

    });

    //关闭全部

    $(".tabCloseAll").click(function () {

        var tabs = $(".tabs-content li");

        $.each( tabs, function( i , n){

            var id = $(n).attr("data-id");

            if(id != 0){

                $(n).remove();

                $(".panel-content[data-id = '"+ id +"']").remove();

            }else{

                $(n).addClass("active");

                $(".panel-content[data-id = '"+ id +"']").show();

            }

        });

        $(".Rightmenu").hide();

        return false;

    });

    //关闭其他页面

    $(".tabCloseOther").click(function () {

        var tabs = $(".tabs-content li");

        tabs.parent().css("margin-left", "0px");

        tabs.each(function (i, n) {

            if (i != 0 && !$(n).hasClass("active")) {

                var id = $(n).attr("data-id");

                $(n).remove();

                $(".panel-content[data-id = '"+ id +"']").remove();

            }

        });

        $(".Rightmenu").hide();

        return false;

    });

    //关闭当前tab之前的所有页面

    $(".tabprevClose").click(function () {

        var tab =  $(".tabs-content li.active");

        var prevalltab =  tab.prevAll();

        var ulLeft = parseInt(tab.parent().css("margin-left"));

        prevalltab.each(function (i, n) {

            if (i != prevalltab.length-1) {

                var id = $(n).attr("data-id");

                $(n).remove();

                $(".panel-content[data-id = '"+ id +"']").remove();

            }

        });

        ulLeft < 0 && tab.parent().animate({ "margin-left" : 0 });

        $(".Rightmenu").hide();

        return false;

    });

    //关闭当前tab之后的所有页面

    $(".tabnextClose").click(function () {

        var tab =  $(".tabs-content li.active");

        var nextalltab =  tab.nextAll();

        var ulLeft = parseInt(tab.parent().css("margin-left"));

        var wapW = $(".tabs-wrap").width();

        nextalltab.each(function (i, n) {

            var id = $(n).attr("data-id");

            $(n).remove();

            $(".panel-content[data-id = '" + id + "']").remove();

        });

        var tabs = $(".tabs-content li");

        var tabsW = 0;

        tabs.each(function(z,x){

            tabsW += parseInt($(x).css("width"));

        });

        if(ulLeft < 0 ){

            tab.parent().animate({

                "margin-left" : tabsW < wapW ? 0 : wapW - tabsW

            });

        }

        $(".Rightmenu").hide();

        return false;

    });

}

 

 

    </script>

    <script>

        $(function(){

            $(".btn").click(function(){

                var id = $(this).attr("data-id");

                var title = $(this).text();

                var content = '<iframe class="myiframe"  scrolling="auto" width="100%" height="100%" src="view/home.html" frameborder="0"></iframe>';

                addTab(id,title,content);

                bindEvents($(".tab-header"));

                return false

            });

        })

    </script>

 

</body>

</html>

 

关于“如何使用Html实现添加、删除、右键菜单”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 如何使用Html实现添加、删除、右键菜单

本文链接: https://www.lsjlt.com/news/89783.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Html实现添加、删除、右键菜单
    这篇文章将为大家详细讲解有关如何使用Html实现添加、删除、右键菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:<!DOCTYPE html>&l...
    99+
    2022-10-19
  • vbs如何实现右键菜单中添加CMD HERE
    这篇文章主要介绍了vbs如何实现右键菜单中添加CMD HERE,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。右键菜单中添加CMD HERE 代码如下:Set&nbs...
    99+
    2023-06-08
  • 如何实现右键菜单中添加打开MS-DOS的批处理bat
    小编给大家分享一下如何实现右键菜单中添加打开MS-DOS的批处理bat,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!reg add "...
    99+
    2023-06-09
  • Windows中如何使用注册表删除IE浏览器中右键菜单项
    Windows中如何使用注册表删除IE浏览器中右键菜单项,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 依次点击“开始”&mdash;“运行”。 在运行...
    99+
    2023-06-13
  • python实现应用程序在右键菜单中添加打开方式功能
    最近项目组开发的一个小工具想要在右键菜单中添加打开方式,以有道云笔记为例进行了需求拆解和代码编写 1.需求拆解: 如何实现手动添加右键菜单的打开方式: Step1:打开注册表编辑器,Win+R->输入...
    99+
    2022-06-04
    右键 应用程序 功能
  • ubuntu下如何实现右键菜单添加新建word、excel文档等快捷方式
    小编给大家分享一下ubuntu下如何实现右键菜单添加新建word、excel文档等快捷方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!步骤 打开libreoff...
    99+
    2023-06-13
  • Win7桌面右键菜单小工具选项如何删除没有太多作用
      Win7系统桌面右键有很多选项,用户可根据自己的需求进行添加或删除,右键菜单中有一个“小工具”选项,很多人认为其无多大作用,那么要如何删除呢?下面小编就给大家介绍下Win7去除右键菜单中的&l...
    99+
    2023-06-17
    Win7 右键菜单 小工具 作用 工具 菜单 太多 右键
  • Java如何实现Excel表单控件的添加与删除
    本文小编为大家详细介绍“Java如何实现Excel表单控件的添加与删除”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现Excel表单控件的添加与删除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。介...
    99+
    2023-06-30
  • 如何使用vbs实现IE浏览器增加复制图像地址的右键菜单
    这篇文章主要介绍如何使用vbs实现IE浏览器增加复制图像地址的右键菜单,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!但IE以及与IE共用右键菜单的MyIE、Sogou等浏览器均没有复制图像链接地址的快捷菜单,通常只有...
    99+
    2023-06-08
  • 如何实现jQuery EasyUI右键菜单变灰不可用效果
    本篇文章给大家分享的是有关如何实现jQuery EasyUI右键菜单变灰不可用效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用过Easy...
    99+
    2022-10-19
  • jQuery如何实现的简单动态添加、删除表格功能
    这篇文章将为大家详细讲解有关jQuery如何实现的简单动态添加、删除表格功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来看看运行效果:具体代码如下:<!DOC...
    99+
    2022-10-19
  • 如何用Vue.js实现动态添加、删除选题功能
    这篇“如何用Vue.js实现动态添加、删除选题功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用Vue.js实现动态添...
    99+
    2023-07-04
  • Angular如何实现搜索、过滤、批量删除、添加、表单验证功能
    这篇文章将为大家详细讲解有关Angular如何实现搜索、过滤、批量删除、添加、表单验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示;<!DOC...
    99+
    2022-10-19
  • 如何使用android实现左右侧滑菜单效果的方法
    这篇文章主要介绍了如何使用android实现左右侧滑菜单效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在android开发中,左右侧滑菜单的开发已成为我们现在开发的...
    99+
    2023-05-30
    android
  • 如何使用HTML和CSS实现菜单选项布局
    标题:使用HTML和CSS实现菜单选项布局引言:在Web开发中,菜单选项是网页中常见的元素之一。通过合理的HTML结构和CSS样式,我们可以实现各种各样的菜单选项布局。本文将介绍如何使用HTML和CSS来实现常见的菜单选项布局,同时提供具体...
    99+
    2023-10-24
    CSS html 布局
  • 如何使用HTML和CSS实现菜单选项卡布局
    在网页设计中,菜单选项卡布局是一种常见且实用的设计模式。通过使用HTML和CSS,我们可以轻松地实现一个具有功能完善的菜单选项卡布局。本文将介绍如何使用HTML和CSS创建一个菜单选项卡布局,并提供具体的代码示例。首先,我们需要使用HTML...
    99+
    2023-10-21
    CSS html 菜单选项卡布局
  • 如何使用HTML和CSS实现一个水平菜单布局
    如何使用HTML和CSS实现一个水平菜单布局导语:在网页设计中,菜单布局是非常常见的一种布局方式。水平菜单布局是一种经典且常用的布局方式,本篇文章将介绍如何使用HTML和CSS实现一个水平菜单布局,并提供具体的代码示例。一、HTML 结构设...
    99+
    2023-10-25
    CSS html 水平菜单
  • 如何使用MongoDB实现数据的增加、修改、删除功能
    如何使用MongoDB实现数据的增加、修改、删除功能MongoDB是一种流行的开源NoSQL数据库,具有高性能、可伸缩性和灵活性。在使用MongoDB存储数据时,我们经常需要对数据进行增加、修改和删除操作。以下是使用MongoDB实现这些功...
    99+
    2023-10-22
    删除 MongoDB 修改 增加
  • 如何使用HTML和CSS实现一个水平滚动导航菜单布局
    如何使用HTML和CSS实现一个水平滚动导航菜单布局在网页设计中,导航菜单是一个非常重要的元素,它可以方便用户浏览和导航网站的内容。而水平滚动导航菜单是一种常见的导航菜单布局,可以在有限的水平空间内显示更多的菜单项,给用户更多的选项。本文将...
    99+
    2023-10-24
    CSS html 实现
  • 如何使用vbs实现可自删除、开启3389创建用户粘滞键后门
    这篇文章给大家分享的是有关如何使用vbs实现可自删除、开启3389创建用户粘滞键后门的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。on error resume next ...
    99+
    2023-06-08
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作