私が以下に持っているものは動作します。しかし、それは正しい書き方ではないことは確かです。これをjQueryで記述して、2つの異なるリンクを表示または非表示にして、div内のテキストをスクロールする正しい方法は何ですか?
これは、以下が達成することの簡単な説明です。
- "wrap" div には、オーバーフローするテキストが含まれています。これはcssに隠されたオーバーフローで隠されています。
- 戻るリンクは最初は非表示になっています。
- ユーザーがさらにクリックすると、div が div の一番下までスクロールし、more リンクがフェードアウトし、back リンクがフェードインします。
- ユーザーが戻るをクリックすると、div 内のテキストが上にスクロールし、戻るリンクがフェードアウトし、詳細リンクがフェードインします。
jQuery
$(document).ready(function() {
$('#scroll-up').click(function(){
$('#div').animate({scrollTop: $('#div').offset().top}, 1500);
$("#scroll-up").fadeOut("fast");
$("#scroll-down").fadeIn("fast");
});
$('#scroll-down').click(function(){
$('#div').animate({scrollTop:0}, 1500);
$("#scroll-down").fadeOut("fast");
$("#scroll-up").fadeIn("fast");
});
});
CSS
#outer-wrap { margin-top: -50px; padding: 24px 12px 12px 24px; width: 330px; height: 450px; background: rgba(255, 255, 255, 0.5); }
#outer-wrap a { display: block; }
#outer-wrap a#scroll-down { display: none; }
#wrap { margin: 12px 0; width: 330px; height: 360px; overflow: hidden; }
html
<div id="outer-wrap">
<a href="javascript:void(0)" id="scroll-down">Back</a>
<div id="wrap" class="column first">
<p>Long paragraph of text.</p>
</div>
<a href="javascript:void(0)" id="scroll-up">More</a>
</div>