問題 | 解答 |
---|---|
得点 |
お疲れ様でした。及第点にいかなかった場合は再度チャレンジしてみてください。
val()メソッドで取得した値は文字列です。そのままでは計算がでいないので、数値に型変換を行うために、parseInt()メソッドを使用します。
//input要素のvalue値を取得し、10進数の数値として変数valに代入する式 var val = parseInt($('input').val(),10);
自販機のメッセージ欄
IF文を活用すれば、スクロール量に応じてフェードインするボタンがつくれますよ。下記ソースはこのページに実装しているソースですので、参考にしながら自分のページでつかってみましょう。
var top_btn = $('#cent a'); var off_src = top_btn.find('img').attr('src'); var on_src = off_src.replace(/^(.+)_off(\.[^\.]+)$/,'$1_on$2'); //変数isHiddenで真偽値のみで、現在のボタンの表示状態を表します。そのための初期化を行っています。 //真偽値(ブーリアン値)とは、trueかfalseの2種類のみ値です。if文の条件式にtrueの値がはいっている場合はtureの処理をします。falseの場合はその逆です。 var isHidden = true; top_btn.hide(); new Image().src = on_src; //.scrollイベントを使用すると、スクロールしたときにイベントが発生します。現在のスクロール位置が取得できます。 $(window).scroll(function () { //scrollTop()メソッドでスクロールした位置を取得して、その値が300PX以上かどうか判定しています。 if( $(this).scrollTop() > 300 ) { if( isHidden ) { top_btn.stop(true,true).fadeIn(); //現在表示されている状態のフラグとして、isHidden変数をfalseにしています。 isHidden = false; } } else { if( !isHidden ) { top_btn.stop(true,true).fadeOut(); isHidden = true; } } });
cssでページボタンのpositionをfixedにしておいてくこともみそです。