Javascript 到达“粘贴底部”并向后滚动到顶部后,“粘贴引导”将闪烁

Javascript 到达“粘贴底部”并向后滚动到顶部后,“粘贴引导”将闪烁,javascript,jquery,css,twitter-bootstrap,affix,Javascript,Jquery,Css,Twitter Bootstrap,Affix,我有一个小的单页布局网站,它使用Bootstrap中的粘贴插件来固定sidenav-粘贴顶部/粘贴开关按预期工作正常,但如果我达到粘贴底部,我会遇到两个问题: 第一:sidenav在第10个列表项之前被切断 第二:如果我向后滚动到顶部,则词缀底部和词缀类会结结巴巴地出现。移除粘贴底部,添加粘贴,并在毫秒内以相反的方式添加 标记: <div class="page"> <main> <section class="scenecontainer intern bri

我有一个小的单页布局网站,它使用Bootstrap中的粘贴插件来固定sidenav-粘贴顶部/粘贴开关按预期工作正常,但如果我达到粘贴底部,我会遇到两个问题:

第一:sidenav在第10个列表项之前被切断

第二:如果我向后滚动到顶部,则词缀底部和词缀类会结结巴巴地出现。移除粘贴底部,添加粘贴,并在毫秒内以相反的方式添加

标记:

<div class="page">
<main>
  <section class="scenecontainer intern bright">
                    <div class="container overlay">
                        <div class="row">
                            <div class="col-md-12">
                                <h2>Wissensdatenbank</h2>
                            </div>
                        </div>
                        <div class="row unmatch">
                            <div class="col-sm-9">
                                <h3>Überpunkt Wissendatenbank</h3>
                                <p>Überall dieselbe alte Leier. Das Layout ist fertig, der Text lässt auf sich warten. Damit das Layout nun nicht nackt im Raume steht und sich klein und leer vorkommt, springe ich ein: der Blindtext.</p>

                                <p>Genau zu diesem Zwecke erschaffen, immer im Schatten meines großen Bruders »Lorem Ipsum«, freue ich mich jedes Mal, wenn Sie ein paar Zeilen lesen. Denn esse est percipi - Sein ist wahrgenommen werden.</p>

                                <p>Und weil Sie nun schon die Güte haben, mich ein paar weitere Sätze lang zu begleiten, möchte ich diese Gelegenheit nutzen, Ihnen nicht nur als Lückenfüller zu dienen, sondern auf etwas hinzuweisen, das es ebenso verdient wahrgenommen zu werden: Webstandards nämlich.</p>

                                <p>Sehen Sie, Webstandards sind das Regelwerk, auf dem Webseiten aufbauen. So gibt es Regeln für HTML, CSS, JavaScript oder auch XML; Worte, die Sie vielleicht schon einmal von Ihrem Entwickler gehört haben.</p>

                                <p>Diese Standards sorgen dafür, dass alle Beteiligten aus einer Webseite den größten Nutzen ziehen. Im Gegensatz zu früheren Webseiten müssen wir zum Beispiel nicht mehr zwei verschiedene Webseiten für den Internet Explorer und einen anderen Browser programmieren.</p>

                                <p>Es reicht eine Seite, die - richtig angelegt - sowohl auf verschiedenen Browsern im Netz funktioniert, aber ebenso gut für den Ausdruck oder die Darstellung auf einem Handy geeignet ist. Wohlgemerkt: Eine Seite für alle Formate. Was für eine Erleichterung.</p>

                                <p>Standards sparen Zeit bei den Entwicklungskosten und sorgen dafür, dass sich Webseiten später leichter pflegen lassen. Natürlich nur dann, wenn sich alle an diese Standards halten. Das gilt für Browser wie Firefox, Opera, Safari und den Internet Explorer ebenso wie für die Darstellung in Handys.</p>

                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                                <p>Und was können Sie für Standards tun? Fordern Sie von Ihren Designern und Programmieren einfach standardkonforme Webseiten. Ihr Budget wird es Ihnen auf Dauer danken. Ebenso möchte ich Ihnen dafür danken, dass Sie mich bin zum Ende gelesen haben. Meine Mission ist erfüllt. Ich werde hier noch die Stellung halten, bis der geplante Text eintrifft. Ich wünsche Ihnen noch einen schönen Tag. Und arbeiten Sie nicht zuviel!</p>
                            </div>
                            <div class="col-sm-3">
                                <nav class="sidebar hidden-print hidden-xs">
                                    <ul class="nav sidenav">
                                        <li class="active parent">
                                            <a href="#">Überpunkt 1</a>
                                            <ul class="subnav">
                                                <li><a href="#">Unterpunkt 1</a></li>
                                                <li><a href="#">Unterpunkt 2</a></li>
                                                <li><a href="#">Unterpunkt 3</a></li>
                                                <li><a href="#">Unterpunkt 4</a></li>
                                            </ul>
                                        </li>
                                        <li><a href="#">Menüpunkt 2</a></li>
                                        <li><a href="#">Menüpunkt 3</a></li>
                                        <li><a href="#">Menüpunkt 4</a></li>
                                        <li><a href="#">Menüpunkt 5</a></li>
                                        <li><a href="#">Menüpunkt 6</a></li>
                                        <li><a href="#">Menüpunkt 7</a></li>
                                        <li><a href="#">Menüpunkt 8</a></li>
                                        <li><a href="#">Menüpunkt 9</a></li>
                                        <li><a href="#">Menüpunkt 10</a></li>
                                    </ul>
                                </nav>
                            </div>
                        </div>
                    </div>
                </section>
                <section class="scenecontainer intern bright">
                    <div class="container overlay">
                        <div class="row">
                            <div class="col-sm-12">
                                <form id="fileupload" class="form-horizontal" action="#" method="POST" enctype="multipart/form-data">
                                    <fieldset>
                                        <!-- Text input-->
                                        <div class="form-group">
                                            <label class="col-sm-4" for="nachname">Nachname:</label>  
                                            <div class="col-sm-8">
                                                <input id="nachname" name="nachname" type="text" placeholder="placeholder" class="form-control input-sm">
                                                <span class="help-block">Bitte geben Sie Ihren Nachnamen ein.</span>  
                                            </div>
                                        </div>

                                        <div class="form-group">
                                            <label class="col-sm-4" for="vorname">Vorname:</label>  
                                            <div class="col-sm-8">
                                                <input id="vorname" name="vorname" type="text" placeholder="placeholder" class="form-control input-sm">
                                                <span class="help-block">Bitte geben Sie Ihren Vornamen ein.</span>  
                                            </div>
                                        </div>

                                        <div class="form-group">
                                            <label class="col-sm-4" for="email">E-Mail:</label>  
                                            <div class="col-sm-8">
                                                <input id="email" name="email" type="email" placeholder="placeholder" class="form-control input-sm">
                                                <span class="help-block">Bitte geben Sie Ihre E-Mail Adresse ein.</span>  
                                            </div>
                                        </div>

                                        <div class="form-group">
                                          <label class="col-sm-4" for="selectbasic">Für welche Seminargruppe?</label>
                                          <div class="col-sm-8">
                                            <select id="selectbasic" name="selectbasic" class="form-control">
                                              <option value="1">Option one</option>
                                              <option value="2">Option two</option>
                                            </select>
                                          </div>
                                        </div>

                                        <!-- Multiple Checkboxes -->
                                        <div class="form-group">
                                            <label class="col-sm-4">Freigabe für folgende User:</label>
                                            <div class="col-sm-8">
                                                <div class="checkbox">
                                                    <label for="checkboxes0">
                                                        <input type="checkbox" name="checkboxes" id="checkboxes0" value="1">
                                                        Erika Mustermann
                                                    </label>
                                                </div>
                                                <div class="checkbox">
                                                    <label for="checkboxes1">
                                                        <input type="checkbox" name="checkboxes" id="checkboxes1" value="2">
                                                        Max Mustermann
                                                    </label>
                                                </div>
                                            </div>
                                        </div>

                                        </fieldset>
                                    <!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
                                    <div class="row fileupload-buttonbar">
                                        <div class="col-lg-7">
                                            <!-- The fileinput-button span is used to style the file input field as button -->
                                            <span class="btn btn-success fileinput-button">
                                                <i class="glyphicon glyphicon-plus"></i>
                                                <span>Datei auswählen</span>
                                                <input type="file" name="files[]" multiple>
                                            </span>
                                            <button type="submit" class="btn btn-primary start">
                                                <i class="glyphicon glyphicon-upload"></i>
                                                <span>Start upload</span>
                                            </button>
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </section>
</main>
</div>

jsFIDLE:

我认为闪烁是由于在滚动时应用了绝对定位。这可以通过在应用
粘贴时调整宽度来解决

.on('affix.bs.affix', function () { // before affix
    $(this).css({'width': $(this).outerWidth()});  // variable widths
});
为防止导航中断,请添加一些附加CSS:

.sidebar.affix > .nav {
    position: relative;
    top: 0;
}
.sidebar.affix-bottom > .nav {
    position: relative;
    top: -100px;
}

演示:

你能把小提琴最小化吗?有很多JS正在进行。更新小提琴没有不必要的js
.sidebar.affix > .nav {
    position: relative;
    top: 0;
}
.sidebar.affix-bottom > .nav {
    position: relative;
    top: -100px;
}