gpt4 book ai didi

HTML 位置 :fixed variable-height page header and in-page anchors

转载 作者:行者123 更新时间:2023-11-27 23:30:40 24 4
gpt4 key购买 nike

我已经成功设计了页面 anchor ,它会在第一次点击时补偿固定的标题高度,代码如下:

<p id="anchorid" style="padding-top: 287px; margin-top: -287px; width: 20px;">
FILLER TEXT
</p>

我遇到的问题是当您滚动时我的标题会缩小,因此一旦您通过 anchor 单击页面,下次您在该页面上单击该页面的 anchor 时,填充会超过-补偿(因为它被设置为初始标题高度)并且该部分被带到页面的中间而不是顶部。我希望做的是将 anchor 填充动态设置为标题的高度,以便它始终将部分带到顶部,但我很遗憾地不知道如何做到这一点。

有没有办法使用 anchor (id="filler")让浏览器滚动到某个点,具体取决于标题的高度,使用 CSS?

这里解决了类似的问题,但它们的标题没有改变大小:HTML position:fixed page header and in-page anchors

最佳答案

编辑后的答案:

这是我用于固定 header 的代码,该 header 在使用 jQuery 滚动以使用 smouth 滚动锚定时处理偏移量。

这是一个插图:https://jsfiddle.net/mmb5k7xb/1/

要查看脚本对不同高度的 react ,只需更改 html 部分中菜单高度的值。

希望对您有所帮助。

<script type="text/javascript">
var $ = jQuery.noConflict();
$(document).ready(function($) {

var menu_height = $('.menu').height(); // calulate the height of the menu

(function(document, history, location) {
var HISTORY_SUPPORT = !!(history && history.pushState);

var anchorScrolls = {
ANCHOR_REGEX: /^#[^ ]+$/,
OFFSET_HEIGHT_PX: menu_height, // Set the offset with the dynamic value

/**
* Establish events, and fix initial scroll position if a hash is provided.
*/
init: function() {
this.scrollIfAnchor(location.hash);
$('body').on('click', 'a', $.proxy(this, 'delegateAnchors'));
},

/**
* Return the offset amount to deduct from the normal scroll position.
* Modify as appropriate to allow for dynamic calculations
*/
getFixedOffset: function() {
return this.OFFSET_HEIGHT_PX;
},

/**
* If the provided href is an anchor which resolves to an element on the
* page, scroll to it.
* @param {String} href
* @return {Boolean} - Was the href an anchor.
*/
scrollIfAnchor: function(href, pushToHistory) {
var match, anchorOffset;

if(!this.ANCHOR_REGEX.test(href)) {
return false;
}

match = document.getElementById(href.slice(1));

if(match) {
anchorOffset = $(match).offset().top - this.getFixedOffset();
$('html, body').animate({ scrollTop: anchorOffset});

// Add the state to history as-per normal anchor links
if(HISTORY_SUPPORT && pushToHistory) {
history.pushState({}, document.title, location.pathname + href);
}
}

return !!match;
},

/**
* If the click event's target was an anchor, fix the scroll position.
*/
delegateAnchors: function(e) {
var elem = e.target;

if(this.scrollIfAnchor(elem.getAttribute('href'), true)) {
e.preventDefault();
}
}
};

$(document).ready($.proxy(anchorScrolls, 'init'));
})(window.document, window.history, window.location);
});
</script>

关于HTML 位置 :fixed variable-height page header and in-page anchors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com