网页嵌套iframe标签,点击左侧导航菜单,在右侧动态显示页面

本文探讨了两种常见的技术解决方案,一是利用JavaScript控制iframe的src属性,二是通过a标签的target属性配合iframe的name属性,实现在点击左侧菜单时右侧iframe显示对应页面内容。
摘要由CSDN通过智能技术生成

功能描述:在后台开发的时候往往遇到这种功能,点击左侧的导航菜单,在右侧动态iframe显示页面内容,

知识点:iframe

名称iframe嵌套

解决方案2种:   1.js解决             2.a标签target属性

解决方案一:js方案

<!--主体内容部分-->
<div class="main">
   <!-- 左侧导航 -->
   <div class="main_left">
        <div class="li_title">用户管理<span class="down"></span></div>
        <ul>  
            <li data-src="userAdmin.action">管理员</li>
            <li data-src="roleList.action">角色管理</li>
            <li data-src="userVip.action">会员</li>
        </ul>
        <div class="li_title">产品管理<span class="down"></span></div>
        <ul>
            <li data-src="videosList.action">视频查看</li>
            <li data-src="videosUpload.action">视频上传</li>
        </ul>
    </div>
    <!-- 右侧内容 -->
    <div class="main_right">
        <iframe frameborder="0" scrolling="yes" style="width:100%;height:100%" src="" id="aa"></iframe>
    </div>
</div>

js代码:

$(function(){
   $(".main_left li").on("click",function(){
         var address =$(this).attr("data-src");
      $("iframe").attr("src",address);
   });
});

解决方案二:a标签target属性

一般都是左侧的导航栏中的a标签中写一个target(a标签有target属性),

右侧的div标签中写一个iframe,在iframe中有name的属性,在左侧a标签中的target写上iframe中name的属性值。具体操作如下:

1、设置菜单(a标签增加target属性,值填写iframe的name值)

<!-- 菜单导航栏 -->
<li class="layui-nav-item"><a href="/about" target="menuFrame">了解itggek</a></li>


<!-- 内容主体区域 -->
    <div class="layui-body">
        <iframe id="menuFrame" name="menuFrame" th:src="" style="overflow: visible;"
                scrolling="yes" frameborder="no" width="100%" height="100%">
        </iframe>
    </div>

功能效果图三:

 

您可以使用HTML和CSS创建一个多层导航菜单,然后使用JavaScript实现点击左侧导航栏时右侧显示对应页面的功能。 以下是一个基本的HTML结构: ``` <div class="menu"> <ul> <li><a href="#">First Level Item 1</a> <ul> <li><a href="#">Second Level Item 1</a></li> <li><a href="#">Second Level Item 2</a></li> <li><a href="#">Second Level Item 3</a></li> </ul> </li> <li><a href="#">First Level Item 2</a> <ul> <li><a href="#">Second Level Item 4</a></li> <li><a href="#">Second Level Item 5</a></li> </ul> </li> </ul> </div> <div class="content"> <div id="page1" class="page active">Page 1 Content</div> <div id="page2" class="page">Page 2 Content</div> <div id="page3" class="page">Page 3 Content</div> <div id="page4" class="page">Page 4 Content</div> <div id="page5" class="page">Page 5 Content</div> </div> ``` 在上面的HTML中,我们有一个具有多个层级的导航菜单和一个内容区域。导航菜单使用无序列表和嵌套的列表项来创建多个层级。内容区域包含多个页面,每个页面具有唯一的ID和类。 接下来,我们需要使用CSS为菜单和内容区域创建样式。以下是一个示例CSS: ``` .menu ul { list-style-type: none; margin: 0; padding: 0; } .menu li { position: relative; } .menu li ul { position: absolute; left: 100%; top: 0; display: none; } .menu li:hover > ul { display: block; } .content .page { display: none; } .content .active { display: block; } ``` 在上面的CSS中,我们使用了位置属性和伪类选择器来为菜单创建多层导航。我们还使用了display属性来控制内容区域中的页面的可见性。 最后,我们需要使用JavaScript实现单击菜单项时显示对应页面的功能。以下是一个示例JavaScript: ``` var links = document.querySelectorAll(".menu a"); var pages = document.querySelectorAll(".page"); for (var i = 0; i < links.length; i++) { links[i].addEventListener("click", function(e) { e.preventDefault(); var href = this.getAttribute("href").replace("#", ""); for (var j = 0; j < pages.length; j++) { pages[j].classList.remove("active"); if (pages[j].getAttribute("id") === href) { pages[j].classList.add("active"); } } }); } ``` 在上面的JavaScript中,我们使用querySelectorAll()方法来获取所有菜单项和所有页面。我们使用循环和addEventListener()方法将单击事件添加到每个菜单项。当单击菜单项时,我们使用getAttribute()方法获取其href属性的值,并使用replace()方法删除#符号。然后,我们使用循环和classList属性来将active类添加到相应的页面,并从其他页面中删除它。 这样,当用户单击菜单项时,页面将会切换到相应的内容。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值