【纯前端实现页面总结一】-- 导航栏布局以及点击展示不同界面+iframe标签引入的页面自适应高度(在html中引入另一个html文件)【已解决】

2023-11-16

说明:jQuery实现, 点击导航栏变换iframe标签引入的页面

  • 默认展示首页,css样式默认应用于“首页”导航栏
  • 点击切换页面,并且导航栏样式改变

一、 页面切换效果如下:

请添加图片描述
小声逼逼:关于录屏软件的推荐:这篇博客里面有的哦,没有水印哒~

二、 html文件中的内容如下(代码可粘贴运行):

  • homePage.html文件中放置页面主要内容,头部,尾部,导航栏…
  • 首页.html放置首页的展示内容
  • 展示一.html放置展示一的展示内容
  • 其余同理

1、 homePage.html文件(内含css样式与js)

  • html:

    <body>
    <div class="container">
        <!-- 导航栏 -->
        <div class="nav">
            <div class="center">
                <ul class="nav_lineprinter">
                    <li style="background-color:  rgb(8, 89, 181) "><a style="color:yellow" href="javascript:;">默认显示首页</a></li>
                    <li><a href="javascript:;">点击展示一</a></li>
                    <li><a href="javascript:;">点击展示二</a></li>
                    <li><a href="javascript:;">点击展示三</a></li>
                </ul>
            </div>
        </div>
         <!-- 各导航栏详细信息 ----- 默认引入首页-->
        <div class="center">
            <div id="products">
                <iframe src="首页.html" style="width: 100%;padding-top: 10px; height:1000px; border:0;" scrolling="no"></iframe>
            </div>
        </div>
    </div>
    </body>
    
    
  • less文件:

    .center {
    width: 960px;
    margin: 0 auto;
    min-width: 960px;
    }
    // 导航栏的样式
    .container .nav {
      background-color: rgb(62, 135, 217);
      height: 40px;
      //清除浮动的方法之一
      overflow: hidden;
      width: 100%;
      ul li {
        float: left;
        a {
          display: inline-block;
          font: 18px "Microsoft YaHei";
          letter-spacing: 3px;
          height: 40px;
          line-height: 40px;
          text-align: center;
          width: 240px;
        }
      }
    }
    
    
    
  • js实现导航栏的切换 以及 样式的切换

    思路:点击导航栏,切换iframe标签属性src的内容

        <script>
        var navs = ["首页.html", "展示一.html", "展示二.html", "展示三.html"];
        // 排他思想 -> 导航栏点击时颜色以及页面的切换
        $(function() {
            $(".nav_lineprinter>li").click(function() {
                // 颜色变化
                $(this).css("background", "rgb(8, 89, 181)");
                $(this).siblings(".nav_lineprinter>li").css("background", "");
                $(this).children().css("color", "yellow");
                $(this).siblings().children().css("color", "");
                //切换页面
                var index = $(this).index();
                $("#products").children().attr("src", navs[index]);
               
            })
        })
    </script>
    
    
    

2、 首页.html中的内容

<body>
    <h1 style="text-align:center; line-height: 300px;">我是首页,我是首页哦</h1>
</body>

3、 展示一.html中的内容

<body>
    <h1 style="text-align:center; line-height: 300px;">展示一出来了,我是展示一!!</h1>
</body>

4、 展示二.html中的内容

<body>
    <h1 style="text-align:center; line-height: 300px;">展示二出来了,我是展示二!!</h1>
</body>

5、 展示三.html中的内容

<body>
    <h1 style="text-align:center; line-height: 300px;">展示三出来了,我是展示三!!</h1>
</body>

三、 iFrame标签的自适应高度(需要WebStrom打开,必须的呦!笑死,我根本不知道为啥)

关于点击导航栏切换页面,在html文件中引入另一个html文件(博主的思考):

  • 由于未学好js直接切入vue框架的原因:首先考虑vue的路由跳转
  • 其次整个页面跳转到另一个页面,有多少界面,那头部、尾部、导航栏的实现代码就需要粘多少遍,维护起来,那简直…(不忍直视…)
  • jQuery实现:
    • $("#page1").load("page/Page_1.html");
    • 弊端挺大的,样式重复起来根本不好改动,而且同样960px的宽度,引入的页面会往下掉
  • iframe标签引入: 就是上文的方式
    • 消除默认滚动栏:scrolling="no"即可
    • 还有高度开始固定,需要js实现页面自适应高度

1、 html文件

  <div class="center">
            <div id="products">
                <iframe onload="loadFrame(this)" src="首页.html" style="width: 100%;padding-top: 10px; border:0; " scrolling="no"></iframe>
            </div>
 </div>

2、 js(Jquery实现)

<script>
    function loadFrame(obj) {
        $('iframe').css("display","none")
        $('iframe').fadeIn("30000")
        var url = obj.contentWindow.location.href;
        console.log(url)
        var result = $('iframe').prop('contentWindow').document;
        // console.log(result);
        // console.log(result.body.scrollHeight);
        $('iframe').attr("height", result.body.scrollHeight)
        // console.log($('iframe').attr("height"));

    }
    // console.log($("iframe").attr("src"))
</script>

还有学习iframe标签的W3C以及一篇博客:
博客地址

对了对了,解决方案有很多,这不一定是最好的思路,欢迎推荐博客进行学习,欢迎多多交流!嘻~

写在最后,不要改别人的代码,浪费时间,浪费生命,还浪费头发,笑死

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【纯前端实现页面总结一】-- 导航栏布局以及点击展示不同界面+iframe标签引入的页面自适应高度(在html中引入另一个html文件)【已解决】 的相关文章

  • 如何使用XPath选择非空段落?

    我想要抓取的网页具有类似的结构 每个都有一个段落是一个问题 一个段落是一个答案 我想抓取每个问题和答案并将它们存储在两个项目中 问题是 在某些页面上 问题和答案分别是 xxx p 1 and xxx p 2 但在其他页面上 xxx p 1
  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • 将 HTML 'label' 标签与单选按钮一起使用

    是否label标签与单选按钮一起使用吗 如果是这样 你如何使用它 我有一个显示如下的表单 First Name text field Hair Color color drop down Description text area Salu
  • 将图像编码为base64有什么效果?

    如果我将图像 jpg 或 png 转换为 base64 那么它会更大 还是具有相同的大小 会大多少呢 是否建议在我的网站上使用 Base64 编码的图像 大约会大 37 非常粗略地说 Base64 编码的二进制数据的最终大小等于原始数据大小
  • 无法在jspdf中加载多个图像

    我正在尝试加载动态生成的多个图像 我想将这些图像转换为 PDF 格式 HTML 代码如下
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • Bootstrap Affix Nav 导致下面的 Div 向上跳转

    我使用 Bootstrap 的 Affix 函数创建了一个 JSFiddle 以便在向下滚动并且标题移出视图时使导航保持在屏幕顶部 我遇到的问题是 当使用纯 HTML 时 导航下方的文本会过早地跳起来并隐藏在导航后面 查看有问题的代码her
  • 编辑类名中带有空格的元素的 css 样式

    我正在创建一个 tumblr 我必须编写一个外部 CSS 文件 但我在编辑 post 元素的 css 样式时遇到问题 这是它的结构 li class post quote other code li 问题是类名中有空格 我如何创建一个 CS
  • 未捕获的 TypeMismatchError:无法在“CanvasRenderingContext2D”上执行“drawImage”

    我对以下代码片段有疑问 var o inserted motive find span contains document documentElement o 0 b fillText m i h b drawImage d i h e f
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何在bootstrap中默认隐藏侧边栏?

    我在这里有一个很好的参考 作为 Bootstrap 在设计 Web 表单应用程序时的侧边栏 http startbootstrap com template overviews simple sidebar http startbootst
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 如何将大于整个页面 100% 的元素居中对齐?

    我有一个宽度为 100 的 div 并且隐藏了一个宽度为 3000px 的 div 我希望3000px的div左右均匀地被切断 我会使用背景位置 中心 然而 事情比这更复杂 3000px div 包含 30 100px div 我尝试过在
  • HTML5 支持命名空间吗?

    我们是否可以使用新标签来扩展 HTML5 例如
  • 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

    我想使用 HTML5 视频播放器并流式传输视频 S3 CloudFront 可以实现这一点吗 我了解 Amazon 使用 RTMP 流媒体协议和 HTML5video标签不支持 RTMP 有没有办法用 HTML5 播放器播放视频 Wayne
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • 没有类的 CSS 选择器

    我正在使用选择器来选择不具有一个类的所有元素 list th not foo some rules 我怎样才能将其应用到多个班级 list th not foo list th not bar some rules 上面的 CSS 当然不会
  • 如何使用 JavaScript 获取元素的填充值?

    我有一个textarea在我的 HTML 中 我需要获取整数或浮点形式的填充数值 以像素为单位 我如何使用 JavaScript 获取它 我没有使用 jQuery 所以我正在寻找纯 JavaScript 解决方案 这将返回padding l
  • 在具有多级分组的 HTML 表格中显示数据

    我必须通过使用 rowspan 进行分组来显示 HTML 表中的一些数据 下面是预期的 GUI 我有如下所示的 JSON 数据 JSON数据here https jsoneditoronline org id 1014438e5489485
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航

随机推荐