スクロール中に要素にクラスが追加されているかどうかを確認し、次の要素にが追加されるまでを1回だけ起動します。クラスが可視要素に追加されている場合は、一度起動関数
ここに私の第一の機能:
function onScreen() {
$('article').each(function() {
var thisTop = $(this).offset().top - $(window).scrollTop();
var middleScreen = $(window).height()/2;
if (thisTop < middleScreen && (thisTop + $(this).height()) > middleScreen) {
$(this).addClass('visible');
} else {
$(this).removeClass('visible');
}
});
}
// launch
$(window).on('load scroll', onScreen);
マイseconde機能:私は一度だけvisible
クラスが別のarticle
に追加された場合に起動したいと思います。
function textChange() {
var v = $('article.visible');
var el = $('.el', v);
var text = $(el).html();
$('.titre').html(text);
}
$(window).on('load scroll', textChange);
注:2つの別々の機能を維持することが重要です。 私の問題はスクロール機能です。textChange()
各ピクセルをページ上でスクロールします。奇妙なことに、onScreen()
関数は、次のarticle
が表示されるまで、visible
クラスを1回追加します。
ありがとうございました。
:別の方法としては、関数が呼び出される前にチェックを行うことができます'$(this).addClass( 'visible');'?の後に 'textChange'を呼び出します。 –
'onScreen()'関数を分離したいので、編集関数を終了してください。とにかく、問題はまだ同じです。 – BrownBe
私はあなたがページ上に目に見える記事を1つだけ持っていると仮定します。 –