関連するjQueryは次のとおりです。
$(document).ready(function() {
$("#scroll-container").on("scroll", function () {
var cur = $(this).scrollLeft();
if (cur == 0) {
$('#container').addClass('shadow-right').removeClass('shadow-left');
}
else {
var max = $(this)[0].scrollWidth - $(this).parent().width();
if (cur == max) {
$('#container').addClass('shadow-left').removeClass('shadow-right');
} else {
$('#container').addClass('shadow-right shadow-left');
}
}
});
$("#scroll-container").trigger("scroll");
});
scrollLeft()
これにより、現在の値が使用可能な最大値と比較され、それに応じてコンテナーのクラスが調整されます。
さらに、CSS を調整する必要がありました。.shadow-left
との両方.shadow-right
が適用されると、 の設定.shadow-left
が単純に上書きされ、左の影だけになります。この最後のステートメントを CSS の最後に追加すると、これが修正されます (これは私がデモで行ったことです)。box-shadow
.shadow-right
#container.shadow-left.shadow-right {
box-shadow: inset 7px 0px 10px -7px blue, inset -7px 0px 10px -7px blue;
-webkit-box-shadow: inset 7px 0px 10px -7px blue, inset -7px 0px 10px -7px blue;
-moz-box-shadow: inset 7px 0px 10px -7px blue, inset -7px 0px 10px -7px blue;
}
編集:スクリプトは高速で実行されるため、スクリプトを少し最適化しscroll
、ページの読み込み時にイベントをトリガーする最終行を追加して、コンテナーが最初から適切なシャドウを持つようにしました。
お役に立てれば!