jQueryを使用せずに以下のことが可能ですか?私はjQueryで動作させていますが、パフォーマンス上の問題があるようです。もしあなたが私が最も感謝することを助けることができれば。私は怠け者ではなく、あまり知られていないコードです。これまでにも私を受け入れてくれました。遅いスクロールjQueryなしで切り替えますか?
//
// default speed ist the lowest valid scroll speed.
//
var default_speed = 1;
//
// speed increments defines the increase/decrease of the acceleration
// between current scroll speed and data-scroll-speed
//
var speed_increment = 0.01;
//
// maximum scroll speed of the elements
//
var data_scroll_speed_a = 2; // #sloganenglish
var data_scroll_speed_b = 5; // #image-ul
//
//
//
var increase_speed, decrease_speed, target_speed, current_speed, speed_increments;
$(document).ready(function() {
$(window).on('load resize scroll', function() {
var WindowScrollTop = $(this).scrollTop(),
Div_one_top = $('#image-ul').offset().top,
Div_one_height = $('#image-ul').outerHeight(true),
Window_height = $(this).outerHeight(true);
if (WindowScrollTop + Window_height >= (Div_one_top + Div_one_height)) {
$('#sloganenglish').attr('data-scroll-speed', data_scroll_speed_a).attr('data-current-scroll-speed', default_speed).attr('data-speed-increments', data_scroll_speed_a * speed_increment);
$('#image-ul').attr('data-scroll-speed', data_scroll_speed_b).attr('data-current-scroll-speed', default_speed).attr('data-speed-increments', data_scroll_speed_b * speed_increment);
increase_speed = true;
decrease_speed = false;
} else {
$('#sloganenglish').attr('data-scroll-speed', '1').attr('data-current-scroll-speed', default_speed);
$('#image-ul').attr('data-scroll-speed', '1').attr('data-current-scroll-speed', default_speed);
decrease_speed = true;
increase_speed = false;
}
}).scroll();
});
ありがとうございました、@Rodrigo Pedrosa!あなたは良い点を作っています!私はそれらを実装し、結果にあなたに戻って取得しようとします。 – Eddy
もう一度@Rodrigo Pedrosaに感謝します。私は今、ロードまたはサイズ変更時にのみ2つの要素の高さを取得しようとしています。しかし、私はそれが正しいとは思っていません。私の答えのコードを参照してください。さらに、#image-ulは高さに応じて変化します。さらに、「データ - 現在 - スクロール速度」と「データ速度 - 増分」属性を常に同じ定数値で設定することも重要な点です。変更しないでください。本当に必要ですか?これは私があなたが意味することを理解していない。 – Eddy
@Rodrigo Pedrosa、あなたがそれが良いと思うようにコードを適応させるように頼んでもいいですか? – Eddy