SVGで円グラフを描画し、動きはCSSアニメーションを利用しています。
カウントダウン部分はJSですね。
実装サンプル
See the Pen SVG Timer by sugimo (@sugimo) on CodePen.
コードのサンプルはcodepenから確認し、ご自由にお使いください。
カウントダウンする時間を変更したい時は、setTimeの値を変更してください。
ex:秒数で設定するので、1分なら60。3分なら180です。
UI/UX DESIGNER
jQueryでhasClassがあるか無いかを判定する時のやり方をメモ。
例えば、activeというclassがあったら、無かったら、
if ($("#hoge").hasClass("active")) { //class activeがあれば } else if (!$("#hoge").hasClass("active")) { //class activeが無かったら }
実装サンプル
See the Pen jQuery hasClass by sugimo (@sugimo) on CodePen.
ページ内リンク(アンカーリンク)を複数設定したときに、いま見ているコンテンツはページ内リンクのどこまで進んでいるのかが、解りにくい時ってありますよね。
その時に、見ているコンテンツの領域に画面が入ったら、該当するページ内リンクのデザインが変わると、解りやくなります。
Qiitaでも右下にあるページ内リンクで実装しているアレです。
検索しても、この機能だけのサンプルやプラグインが探せなかったので、jQueryを使って自分で書いてみました。
スクロール位置を取得するのは、scrollTop()を使いました。
必要なコードは、
以下のコードをhtmlの直前か、.jsファイルに追加してください。
<script type="text/javascript"> $(function(){ var _frag = $(".scrollFrag"); var fragPos = []; $(".contents").css("height",$(window).height()); for(i = 0; i < _frag.length; i++){ fragPos[i] = ($("#frag"+[i]).offset().top); } $("a[href *= '#frag']").click(function(){ $("a[href *= '#frag']").removeClass("active"); $(this).addClass("active"); }); $(window).scroll(function () { var tmpPos = $(window).scrollTop(); var lastFrag = _frag.length -1; for(i = 0; i < _frag.length; i++){ var n = i+1; if(tmpPos > fragPos[i] && tmpPos < fragPos[n]){ $("a[href *= '#frag']").removeClass("active"); $("a[href = '#frag" + [i] + "']").addClass("active"); }else if(tmpPos > fragPos[lastFrag]){ $("a[href *= '#frag']").removeClass("active"); $("a[href = '#frag" + [i] + "']").addClass("active"); } } }); }); </script>
htmlのheadタグに中で、jQueryを読み込ませてください。
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
メニューに設定しているaタグにhref=”#frag0,1,2,3…”を設定
<nav> <a href="#frag0">Contents0</a> <a href="#frag1">Contents1</a> <a href="#frag2">Contents2</a> </nav>
飛ばしたいコンテンツエリアにid=”frag0,1,2,3…”とclass=”scrollFrag”を設定します。
<div class="scrollFrag" id="frag0">Contents0</div> <div class="scrollFrag" id="frag1">Contents1</div> <div class="scrollFrag" id="frag2">Contents2</div>
以下のコードをhtmlのstyleタグ中、または.cssファイルに追加してください。
a.active{ color: #999; text-decoration: none; cursor: default; background-color: #eee; }