ページ上の要素を次のコンテンツのタイトルとして使用したいが、ユーザーがコンテンツにスクロールしているときは、ヘッダーに固定されています。 iOSミュージックアプリのABC字幕に似ています。iOS Safariの問題 - 絶対位置を固定に変更するとスクロールするときに要素が見えなくなる
こちらをご覧ください:https://jsfiddle.net/1e7ync4w/
HTML
<div>
<div class="top">
Test
</div>
<div class="content">
<div class="scroller">
</div>
Test
</div>
</div>
CSS
.top {
background-color: yellow;
height: 300px;
}
.content {
position: relative;
height: 600px;
background-color: green;
}
.scroller {
position: absolute;
width: 100%;
height: 10px;
top: 0;
left: 0;
background-color: blue;
}
.scroller.fixed {
position: fixed;
}
JS
$(document).ready(function() {
$(window).on('scroll touchmove', function() {
$('.scroller').removeClass('fixed');
var scrollTop = $(window).scrollTop();
var scrollerOffsetTop = $('.scroller').offset().top;
if(scrollerOffsetTop <= scrollTop) {
$('.scroller').addClass('fixed');
}
});
});
問題は、iOS Safariにスクロール中に要素を変更(JavaScript経由)するバグがあるようです。ユーザーがコンテンツにスクロールすると、タイトル要素は表示されなくなりますが、指をディスプレイから離した後に表示されます(スクロールエンド)。
私はこれをiOS 9.3.2 Safariでのみテストしましたが、この問題は古いと思います。
同じことをここに –