0

スクロールホイールを離したときにdivの上部にスナップする、スクロール効果を追加しようとしています。唯一の問題は、各divの高さが100%であるということです(したがって、一度に1つの画像が画面に表示されます)。
私はこのフィドルに出くわします:http://jsfiddle.net/djsbaker/dxzk4/これは300px間隔でうまく機能しているようですが、このようなものを100%の高さのdivに変換するにはどうすればよいですか?

これが私のコードです:

<div class="fill-browser" style="background-image: url(../images/background-v2.jpg)"></div>
<div class="fill-browser" style="background-image: url(../images/background-v2.jpg)"></div>
<div class="fill-browser" style="background-image: url(../images/background-v2.jpg)"></div>

CSS:

 .fill-browser{
    position:relative;
    left: 1%;
    height:98%;
    width:98%;
    margin-bottom: 5px;
    background: no-repeat 50% 50%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
            }

こちらもjsfiddleのデモです:http://jsfiddle.net/vHAWW/

4

1 に答える 1

0

100%でも動作しますが、

ボックスの数に応じて、ボックスの親の高さをボックス * 100 に設定し、ボックスの高さを 100/ボックスに設定する必要があります。ボディと html も 100% にすることを忘れないでください。

jsfiddle.net/WQtA8

body, html {
    height:100%;
}
.box
{
    color: #fff;
    height: 10%;
    width: 300px;
    border: 1px solid white;
}
#container {
    height:1000%;
    width:300px;
    background-color:blue;
}
.red {background-color:red;}
.green {background-color:green;}
.yellow {background-color:yellow;}

編集:

すでにjqueryを使用しているため、高さを動的に計算して設定することもできます。

$(document).ready(function() {

var boxes = $(".box").length;
var height = boxes * 100 + "%";
var boxheight = 100/boxes + "%";
$("#container").css({ height : height });
  $(".box").css({height: boxheight});
});
于 2013-01-23T20:58:55.597 に答える