0
私は、垂直スクロールで同様の問題の答えしか見つけませんでした。jQuery:水平スクロールでどの要素がビューポートにあるかを教えてください
私は親div内に要素を持ちます。これらの要素は同じクラスを持ち、その親は左右にスクロール可能です。子どもの1人だけが完全に見えることができます。私は親がスクロールされるたびに完全に表示されている1伝えることができるようにしたい:
#stickers
がオーバーフロースクロールを作るために右CSSを持っていると仮定すると、
<div id="stickers">
<div id="sticker-1" class="sticker"><img src="http://via.placeholder.com/320x200"></div>
<div id="sticker-2" class="sticker"><img src="http://via.placeholder.com/320x200"></div>
[...]
<div id="sticker-8" class="sticker"><img src="http://via.placeholder.com/320x200"></div>
</div>
<script>
var scrollingIsThrottled = false;
var sticker = $(".sticker");
var window = $(window);
$('#stickers').scroll(function() {
if (!scrollingIsThrottled) {
scrollingIsThrottled = true;
var StickerMatchingExpression = sticker.filter(function() {
var $this = $(this);
var left_of_element = $this.offset().left;
var right_of_element = $this.offset().right;
var bottomof = $('#stickers').height;
var topof = $('#stickers').width;
return ((bottomof > left_of_element) && (topof < right_of_element));
});
scrollingIsThrottled = false;
}
});
</script>
'scrollTop'、' offsetTop'、 'top'、' height'の代わりに 'scrollLeft'、' offsetLeft'、 'left'、' width'などを使うように垂直スクロールコードを修正しようとしましたか?コードを共有できますか? – searlea
あなたのために更新されましたが、実際には現在何も機能していません。私は簡単に垂直スクロールのものを水平に変更することは容易ではありません。 それがうまくいくと、可視かどうかにかかわらず、すべての部門を教えてくれました。 –
'$( '#stickers')の後に角括弧がありません。height'(と' width') - プロパティではなくメソッドです。すなわち、 '$( '#stickers')。height()'でなければなりません。また、 'offset()'によって返されたオブジェクトには 'right'プロパティがありません。 – searlea