gpt4 book ai didi

jquery - 是否有一个简单的 jQuery 函数来固定和取消固定 h1 标签?

转载 作者:行者123 更新时间:2023-12-01 03:44:45 26 4
gpt4 key购买 nike

我知道 scrolleramasuperscrollerama

我已经和他们两个斗争了几天了。我无法让它们仅用于固定。我不需要动画和类型支持。我尝试使用示例文档并一次删除一个 block 元素的 HTML 内容,然后分页。似乎scrollerama仅在整个示例存在时才起作用。或者更有可能......我不够聪明,无法弄清楚。

我想做的就是固定一个 <h1></h1>标记,然后在到达特定标记时取消固定。

我也在这里看到了这个问题:CSS Trouble with Pinned Header Div但这似乎根本不起作用。

示例代码:

    <!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<style type="text/css">
</style>
<script language="Javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script language="Javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
</head>
<body>
<article>
<header></header>
<section id="wrap">

<h1> Pin this when it hits the window top</h1>
<div class="innercontent">
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p class="unpin">Unpin the previous h1 tag when this hits window top</p>
</div>

<h1> Pin this when it hits the window top</h1>
<div class="innercontent">
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p class="unpin">Unpin the previous h1 tag when this hits window top</p>
</div>

<h1>Pin this when it hits the window top</h1>
<div class="innercontent">
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p>inner content here</p>
<p class="unpin">Unpin the previous h1 tag when this hits window top</p>
</div>
</section>
<footer></footer>
</article>
</body>
</html>

某个地方的一些 jquery 函数示例的链接将会非常有帮助。或者快速解释如何将 scrollerama 精简为仅 pin/upin 功能会有所帮助。

附加:

sbeliv01提出了这个问题:How to find the closest element to the current position with jQuery

但是,当调整边距(针对 HTML5 重置)时,该方法会失败。仅当元素绝对没有边距调整时它才有效。当尝试简单地将 H1 标签包装在无样式的 div 中时,页面滚动时会出现可怕的闪烁。

这不起作用,但我已经设置了
根据需要使用 jsFiddle:
FIDDLE HERE
正如您所看到的,固定得很好,但随后它们无法取消固定。

最佳答案

经过一番使用并使用了 Phillip Wills 的建议后,我已经将代码调整到了看起来运行效果明显更好的位置。

我之前使用的 if/else 语句没有问题。看来问题只是在 jquery 中使用什么位置。

函数式jquery:

  $(function(){
$(window).bind('scroll', function() {
$('.info').each(function() {
var pin = $(this);
var inner = pin.next().position().top - $(window).scrollTop();
var ptop = pin.height() + 20;

if (inner < ptop) {
pin.addClass('pinned');
} else {
pin.removeClass('pinned');
}
});
});
});

主要问题是找到下一个对象的顶部(Phillip 帮忙解决),然后找到固定对象的顶部,并为滚动留出一点额外的空间。

Functional jsFiddle demo here

关于jquery - 是否有一个简单的 jQuery 函数来固定和取消固定 h1 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14781965/

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