web-dev-qa-db-ja.com

逆スクロール

達成しようとしていることの解決策を見つけるのに苦労しています。 JS(または追加のライブラリ)を使用して、ユーザーがマウスホイールを下にスクロールすると、ページが通常とは逆にスクロールするようにしようとしています。

基本的に、ページの下部を最初に表示し、ユーザーがスクロールすると、画面の上部が表示されるようにします。私が見つけた唯一の例は、 http://conduit.com/ の右の列です。

JSFiddle http://jsfiddle.net/5UUtV/ を、視覚化に役立つ例とともに設定しました。私はそれが何か関係があるかもしれないことを知っています:

window.scrolltop();

しかし正直なところ、私はこれについて行くための最良の方法がわかりません。

「1」というラベルの付いたパネルを最初に表示し、ユーザーがスクロールすると残りのパネルが表示されるようにします。

これをどのように行うことができるかについてのアイデアは大歓迎です。

ありがとう

16
Patrick Allen

ここに解決策があります- http://jsfiddle.net/5UUtV/1/

JS

var winHeight = $(window).innerHeight();
$(document).ready(function () {
    $(".panel").height(winHeight);
    $("body").height(winHeight*$(".panel").length);
});

window.addEventListener('resize', function (event) {
    $(".panel").height($(window).innerHeight());
});
$(window).on('scroll',function(){
    $(".panelCon").css('bottom',$(window).scrollTop()*-1);
});

HTML

<body>
    <div class="panelCon"> 
    <div id="pane-5" class="panel">
        <h1>5</h1>
    </div>
    <div id="pane-4"class="panel">
        <h1>4</h1>
    </div>
    <div id="pane-3"class="panel">
        <h1>3</h1>
    </div>
    <div id="pane-2" class="panel">
        <h1>2</h1>
    </div>
    <div id="pane-1" class="panel">
        <h1>1</h1>
    </div>
    </div>
</body>

CSS

body {
    margin: 0;
    padding: 0;
}
.panelCon{
    position: fixed;
    bottom: 0;
    left:0;
    width: 100%;
}
.panel {
    width: 100%;
}
.panel h1 {
    width: 100px;
    position: relative;
    display: block;
    margin: 0 auto;
    text-align: center;
    top: 50%;
}
#pane-1 {
    background-color: green;
}
#pane-2 {
    background-color: red;
}
#pane-3 {
    background-color: white;
}
#pane-4 {
    background-color: pink;
}
#pane-5 {
    background-color: yellow;
}
16
Rohit Agrawal