Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素?

Javascript 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素?,javascript,html,css,Javascript,Html,Css,有没有解决这个问题的方法:在一个包含TOC(目录)的页面上,链接指向同一页面内的hashtags,当浏览器向下滚动时,其他固定位置元素会将其隐藏。浏览器应进一步向下滚动,以避免被固定元素隐藏 用小提琴演示这个问题:单击第一节或第二节-浏览器向下滚动到它,但它被固定的标题隐藏 JS解决方案: 你能想出任何不涉及JS的解决方案吗 来自JS fiddle的代码: HTML: JavaScript: $("nav a").click(function (event) { var $target

有没有解决这个问题的方法:在一个包含TOC(目录)的页面上,链接指向同一页面内的hashtags,当浏览器向下滚动时,其他固定位置元素会将其隐藏。浏览器应进一步向下滚动,以避免被固定元素隐藏

用小提琴演示这个问题:单击第一节或第二节-浏览器向下滚动到它,但它被固定的标题隐藏

JS解决方案:

你能想出任何不涉及JS的解决方案吗

来自JS fiddle的代码:

HTML:

JavaScript:

$("nav a").click(function (event) {
    var $target = $(event.currentTarget),
        $scrollToTarget = $($target.attr("href")),
        $header = $("header"),
        prop = { 
            scrollTop:   $scrollToTarget.offset().top - $header.outerHeight(true)
        },
        speed = 1000;

    $('html, body').animate(prop, speed);
});

小提琴的更新版本:

HTML:
<div id="section1" class="wrapper">
    <section >This is section one</section>
</div>

CSS:
.wrapper {
  padding-top: 50px;
  margin-top: -50px;
}

解决方案

我用div包装器包装你的部分,给它们ID,填充它们,然后用负边距把它们拉回来

这会产生完全相同的外观,但链接会执行您希望它们执行的操作

示例:

HTML:
<div id="section1" class="wrapper">
    <section >This is section one</section>
</div>

CSS:
.wrapper {
  padding-top: 50px;
  margin-top: -50px;
}
HTML:
这是第一节
CSS:
.包装纸{
填充顶部:50px;
利润上限:-50px;
}
检查以下内容:


制作隐藏锚定以抵消版面的效果是一个很好的例子。

在设计一个网页时,我一直在努力解决这个问题,该网页的顶部固定了一个大约300px的组合横幅/导航栏,其中包含通过网站主页锚定链接链接到的短项目

我发现“
页边距顶部:-XXpx;padding top:XXpx
”方法存在的问题是,不可见的填充覆盖了前面的项,这意味着活动内容(即链接)被阻止。我通过将定位应用于锚定元素并设置z索引来克服这一问题,以便第一个项目位于堆栈顶部,而随后的每个项目位于堆栈下部,如下所示:

CSS

HTML

第一项
第二项
第三项
。。。等


这为我的桌面和iOS设备上的Firefox、Safari和Chrome提供了一个解决方案。我希望这能帮助其他人在bootstrap中解决这个非常令人沮丧的问题

那正是我想要的,谢谢!我也刚刚了解到:各部分之间的空间很大。我同意这是一个解决方案,如果空间是好的,但在我的情况下,它不是。。。解决方案取决于空间的存在。
HTML:
<div id="section1" class="wrapper">
    <section >This is section one</section>
</div>

CSS:
.wrapper {
  padding-top: 50px;
  margin-top: -50px;
}
.anchored-element {
padding-top: 300px;
margin-top: -300px;
position: relative;
}
<div class="anchored-element" style="z-index: 99">FIRST ITEM</div>
<div class="anchored-element" style="z-index: 98">SECOND ITEM</div>
<div class="anchored-element" style="z-index: 97">THIRD ITEM</div>