簡體   English   中英

如果我有一段HTML在多個html文件中通用,那么我可以在自己的.html文件中擁有它嗎?

[英]If I have a section of HTML that is common across several html files, can I have it in its own .html file?

標題可能有點令人困惑,對此感到抱歉。 讓我澄清一下。

因此,在我的網站中,該網站的每個.html頁面上都有一個<nav>部分。 如果要更改導航菜單,則必須在每個頁面上進行更改。

有沒有辦法可以在自己的.html文件(例如nav.html)中包含該<nav>部分,然后在每個站點的.html頁面上生成它? 這樣,如果我需要進行更改,則只需在單個文件(即nav.html)中進行更改,並且在運行時仍將在所有頁面上進行更新。

如果我以某種方式做到這一點,那么如果按下當前頁面的導航按鈕,如何使其滾動到頁面頂部?

因此,如果我在photos.html上,並且單擊導航欄上的“照片”鏈接(通常會將我帶到photos.html),我可以使其不刷新頁面而是直接轉到頂部嗎? ? (即<a href="#">Photos</a>

有沒有一種方法可以讓我將該節放在自己的.html文件中(例如nav.html),然后在每個網站的.html頁面上生成它?

您可以將.load()$.get().append().prepend()

$(function() {
  $.get("nav.html")
  .then(function(html) {
    $("body").prepend(html);
    $("a[href='#']:contains(Photos)").on("click", function(e) {
      e.preventDefault();
      $("html, body").animate({
        scrollTop:0
      }, 1000);
    });
  });
});

為了使Navbar僅存在於一個文件中,jquery的.load.get函數將是guest271314答案中所述的最簡單的解決方案。 盡管我會做更多類似的事情來加載內容:

$(document).ready(function() {
    $('#nav-container').load('nav.html');
});

我意識到這意味着您將需要在每個頁面上<div id="nav-container"></div> ,但這對我來說似乎是一個更干凈的解決方案。

對於頁面跳轉,您可以像這樣簡單地在href中使用id 這樣可以使頁面滾動到div的頂部,其中包含您在href輸入的id

<div id="pictures"></div>
<a href="#pictures">Pictures</a>

您還可以添加一些jQuery以使頁面平滑跳轉。 下面的腳本來自此CSS-Tricks文章,它將使該頁面平滑跳轉。

$(function() {
    $('a[href*="#"]:not([href="#"])').click(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
  var target = $(this.hash);
  target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
            if (target.length) {
                $('html, body').animate({
                    scrollTop: target.offset().top
                }, 1000);
                return false;
            }
        }
    });
});

我會創建一個名為navMenu.php之類的包含文件,其中僅包含您的導航菜單代碼。

<nav> menu code here </nav>

然后,您要包含此代碼的每個頁面都使用擴展名.php重命名。
然后,在這些其他頁面中的任何位置,您都希望包括此導航菜單代碼

<?php require 'navMenu.php' ?>

請參閱: http : //php.net/manual/en/function.require.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM