【问题标题】:fixed divs inside container固定容器内的div
【发布时间】:2014-12-01 02:00:43
【问题描述】:

好吧,我有一个页面,其顶部横幅为 100% 宽和 500 像素高,其下方是内容区域,例如 4000 像素高。在该内容区域内有一个框(100 x 100),我想以某种方式行事。当我向下滚动页面到该框触及屏幕顶部时,我希望它固定在顶部,直到我向上滚动并且它在父容器的顶部变得不固定(所以它是从哪里开始的) .任何人有任何示例或简单的修复????

编辑:

我发现了这个我认为可行的修复程序,但我不知道我做错了什么:

    <script>

    var $window = $(window),
    $sticky = $('#contentSideIner'),
    elTop = $sticky.offset().top;

    $window.scroll(function() {
    $sticky.toggleClass('sticky', $window.scrollTop() > elTop);
    });

    </script>

(代码在html文档的头部)

#contentSide {
background: black;
margin: 10px;
float: right;
width: 300px;
}
#contentSideIner {
width: 280px;
height: 400px;
margin: 0 auto;
background: red;
}

.sticky {
position: fixed;
top: 0;
}

我知道这段代码是为了向#contentSideIner div 添加一个类,.sticky {position: fixed;顶部:0; }。我在这里犯了一种脑死亡的错误吗?

这就是我所拥有的 jfiddel http://jsfiddle.net/07xe5tLf/

我正在使用的更多代码:

<!DOCTYPE HTML>
<html>
<head>
    <title>Project Website: full review pages</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="description" content="" />
    <meta name="keywords" content="" />


    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    <script>

    var $window = $(window),
    $sticky = $('#contentSideIner'),
    elTop = $sticky.offset().top;

    $window.scroll(function() {
    $sticky.toggleClass('sticky', $window.scrollTop() > elTop);
    });

    </script>

    <link rel="stylesheet" href="css/stylesMainReveiw.css" />

    <style>
        #banner { background-image: url("images/Destiny_Banner.jpg"); }
        .playableOn {}
        .rateBox { background-image: url("img/rating/rating3-big.png");  background-size: 150px 150px; }
        #contentSide { height: 5100px; }
    </style>

</head>
<body class="landing">

    <!-- Header -->
        <header id="header">
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="#">Monthly Spotlight</a>
                    <ul>
                        <li><a href="reviewDestiny.html">Destiny</a></li>
                        <li><a href="reviewDiablo.html">Diablo III</a></li>
                        <li><a href="reviewShadow.html">Shadow Of Mordor</a></li>
                        <li><a href="reviewTheLastOfUs.html">The Last Of Us</a>
                        <li><a href="reviewBayonetta.html">Bayonetta 2</a></li>
                    </ul>
                </li>
                <li><a href="#">Older Reviews</a></li>
            </ul>
        </header>

    <!-- Banner -->
        <section id="banner">
            <h1>destiny</h1>
            <h2>"Same Quote for the game as seen in js-load"</h2>
                <div class="playableOn"><p>Playable On:</p></div>
                <div class="rateBox"></div>
        </section>

    <!-- Main -->
        <section id="main" class="container">
            <div id="contentSide">
                <div id="contentSideIner">
                </div>
            </div>

【问题讨论】:

  • 请参阅帮助中心,了解如何提出问题:“请求(家庭作业)帮助的问题必须包括您迄今为止为解决问题所做的工作总结,以及对你有解决它的困难”。如果您正在寻找有人为您编写代码,我认为您来对地方了。
  • 不,你完全误解了,1.) 我不认为这个网站允许我发布数百行与我遇到的问题无关的代码 2.) 这是一个很好的资源我只是不知道获得这种效果的最快最简单最好的方法。
  • 问题很简单,我只是不知道在基于页面滚动修复div时要寻找什么
  • 问题是您提出的问题不完整且不符合社区要求的质量标准。如果您不愿意先尝试解决问题,然后再按照社区准则提出一个清晰、简洁的问题,那么不要指望社区提供帮助。
  • 在您的编辑中:您是否包括 jQuery? &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;(这里使用的是Googles hosted libraries

标签: javascript jquery html css


【解决方案1】:

This is what it seems you want

你想要的是一个粘性菜单,它需要 javascript 在视口中找到页面的当前位置并更改 CSS 或类以使其固定。这是一个不好的例子,因为在您滚动并固定元素以防止下面的页面内容填充菜单栏后,没有可见的 div。这可以简单地通过使用 jQuery 使隐藏的 div 可见来完成。如果您需要代码,请询问。

它被称为粘性菜单,我总是忘记它叫什么。 :)

我记得通常会花一些时间在 Google 上专门搜索我想要的东西,直到找到为止。不要让 StackOverflow 成为您的默认求助对象,因为这就是您被禁止的方式。您需要具体并在JSFiddle 之类的内容上提供代码,或者花一些时间制作一个视觉示例或找到一个可以满足您需求的网站。许多像 Facebook 这样的网站都使用这种技术,而且很常见。如果这没有意义,那么你应该去W3Schools 并阅读一些 Javascript 和 CSS 并在 jQuery 上找到一些教程。


对于您的小提琴,您需要将 jQuery 包含在您的脑海中:http://jsfiddle.net/b2550/07xe5tLf/1/

我 JSFiddle 就像在侧边栏和代码中制作你的框架一样简单,你需要将它包含在你的头脑中(正如我在上面的 cmets 中所说的)

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 我正在尝试使用我现在对原始帖子所做的编辑,但将类添加到任何 div 并没有接缝。 #contentSideIner 在#contentSide 内部,contentSide 是它向上和向下滑动的占位符“轨道”。你的stackoverflow 对我来说既好又坏。我不能在这里有效地发布大量代码,所以我没有。
  • 我无法理解为什么要求插件或代码概念如此不受欢迎。像这里我的答案接缝是使用一些java脚本在它达到一个点时向div添加和删除一个类。得到这个答案不应该要求我发布我正在处理的整个 html 页面。这就是我的看法。我的大部分问题就是这样,我需要设置在正确的轨道上,仅此而已。像你一样。代码没有帮助您添加我,因此没有必要。
  • StackOverflow 发展缓慢,拥有非常严格的规则,人们必须遵守。如果您遵循大多数人期望的格式,您将获得更好的结果,不幸的是,提出某些问题会变得更加困难,特别是如果您不知道自己在寻找什么。
  • 对于那些出于需要创意或插件之类的帮助的正确原因而使用它的人来说,我会将其作为 stackoverflow 的一个非常大的缺陷。但是当我看到它时,我可以看到它是这样的原因。我在我发布的问题上工作了几个小时,但现在我觉得“stackoverflow,唯一一个你寻求帮助的地方。”
  • 4chan 用户喜欢说的另一件事(不是说你应该继续使用 4chan)是“我们不是你的个人军队”,这意味着人们想要调试和编辑你的代码,而不是创造它。大多数人不会花费我帮助你的时间,你只需要接受这一点。当我说它曾经更糟糕时,请相信我。如果您遇到大问题,StackExchange 的人员非常友善,如果您给他们发送电子邮件,他们会为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 2014-02-24
  • 1970-01-01
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多