1
html、js、cssの例はhttps://jsfiddle.net/t9mfmaa3/5/です。js関数のスクロールを設定する方法は、親の底を超えないようにしますか?
/* Latest compiled and minified JavaScript included as External Resource */
$(function() {
var $sidebar = $("#e"),
$window = $(window),
$offset = $sidebar.offset(),
$topPadding = 15;
$window.scroll(function() {
if ($window.scrollTop() > $offset.top) {
$sidebar.stop().animate({
marginTop: $window.scrollTop() - $offset.top + $topPadding
});
} else {
$sidebar.stop().animate({
marginTop: 0
});
}
});
});
/* Latest compiled and minified CSS included as External Resource*/
/* Optional theme */
@import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css');
body {
margin: 10px;
}
#c {
background-color: red;
height: 2400px
}
#e {
background-color: lightblue;
height: 600px
}
#b {
height: 2400px;
background-color: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<div class="container">
<div class="row">
<div class="a">
<div id="b" class="column col-xs-3 col-sm-3">
<div id="e" class="">
blue
</div>
</div>
<div id="c" class="center_column col-xs-9 col-sm-9">
red
</div>
</div>
</div>
</div>
I青色ブロックが黄色のブロックに常に青いものを意味黄色のブロックを超えないようにすることを試みました。私の考えは、ブロックイエローとブロックブルーを検出するコードを設定することです。しかし、私は成功しませんでした。誰にも何か提案がありますか?ありがとう
なぜ青の幅が変更されるのか考えてみませんか? –
要素の幅が設定されていないので、デフォルトでautoになります。 divはブロック要素なので、autoはそのコンテナの全幅を埋めるでしょう。固定されているときはposition:fixedになり、通常のフローから削除され、親ではなく内容に応じて自動幅のサイズになります。 –