【发布时间】:2020-06-26 11:15:48
【问题描述】:
设置说明
我正在为我在 Django 中的 DnD 活动建立一个网站,并使用此 HTML5up.net 页面的修改版本(CSS 和 JS 库存不变)。在我的设置中,我有 2 个页面,一个是人们登陆的索引页面(HTML5up 页面)和一个超链接到索引页面中的“字符”页面。
一个演示索引页面(没有图片)的jsfiddle是here。
在开始时,索引页面仅显示<header>,而超链接位于<article id="characters"> 部分,在开始时不可见。这些部分只有通过单击它们各自的按钮才可见,例如<a href="#characters">Characters</a> 跳转到相应的部分。
我的目标:
我希望不仅能够跳转到<article> 部分,而且我希望能够打开<article> 并跳转到其中的特定超链接(例如,指向“字符页”的链接)扎特”)。有了这个,我可以在字符页面上创建一个按钮,该按钮可以在用户离开索引页面的位置返回索引页面。
我的问题:
超链接回到索引和锚点跳转到<article>部分(例如“字符”)很容易做到这一点:
<a href="LinkOfIndexPagePlaceholder#characters"> Back to Characters </a>
以打开文章部分并跳转到文章中的特定字符(例如“Zart”)的方式返回索引的超链接不起作用,尽管项目的锚点(例如“Zart”)也具有正确的 id(例如“Zart”):
<a href="LinkOfIndexPagePlaceholder#Zart"> Back to Characters </a>
事实上,只要“字符”的文章部分尚未显示,我完全无法锚点跳转到 id 为“Zart”的锚点。
如果它已已显示(通过将 jsfiddle 中“添加字符”按钮的 href 更改为“#Zart”进行测试),那么我可以跳转到到那个锚点,所以一般的跳跃方式有效。它会跳转到没有显示的锚点(因此在 CSS“display:none”中)这是有问题的。我需要在跳转之前以某种方式显示该文章部分。
如何让它工作?
到目前为止,我尝试的是here 讨论的方法。他们都没有为我工作。第一个答案导致所有文章部分的文本和超链接消失,第二个已经是我试图做的。
资源
以下是页面 HTML 的简化版本。
我将它缩短为解决问题的基本部分,因此只剩下一个条目和字符部分。要获取 CSS,请从 HTML5up 下载页面或从 filebin as zip 获取其 css 文件。遗憾的是,它们太长了,无法在此处发布,我不知道哪些部分是必不可少的。
索引页的 HTML:
<!DOCTYPE HTML>
<!--
Dimension by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title> Aldrune </title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<link rel="stylesheet" href="{% static 'frontpage/assets/css/main.css' %}"/>
<link rel="stylesheet" href="{% static 'fontawesome47/css/font-awesome.min.css' %}">
<noscript>
<link rel="stylesheet" href="{% static 'frontpage/assets/css/noscript.css' %}"/>
</noscript>
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header">
<div class="logo">
<a class="icon"><span class="icon fa-gem"> </span></a>
</div>
<div class="content">
<div class="inner">
<h1>Aldrune</h1>
<p><b> A campaign made by X and recorded by Y</b></p>
</div>
</div>
<nav>
<ul> <!-- The anchor-jump buttons to <article> -->
<li><b><a href="#characters">Characters</a></b></li>
</ul>
</nav>
</header>
<!-- Main -->
<div id="main">
<!-- Characters article -->
<article id="characters">
<h2 class="major">Characters</h2>
<ul>
<li><a id="Zart" href="LinkToCharactersPage1"> Zart </a></li>
<li><a id="Zenevieva" href="LinkToCharactersPage2"> Zenevieva </a></li>
<li><a id="Zuxus" href="LinkToCharactersPage3"> Zuxus </a></li>
</ul>
</article>
</div>
</div>
<!-- Scripts -->
<script src="{% static 'frontpage/assets/js/jquery.min.js' %}"></script>
<script src="{% static 'frontpage/assets/js/browser.min.js' %}"></script>
<script src="{% static 'frontpage/assets/js/breakpoints.min.js' %}"></script>
<script src="{% static 'frontpage/assets/js/util.js' %}"></script>
<script src="{% static 'frontpage/assets/js/main.js' %}"></script>
</body>
</html>
【问题讨论】: