タグ

JavaScriptに関するnoisegateのブックマーク (47)

  • レトロエンジニアのための近代Webフロントエンド事情 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? フロントエンド開発という言葉があちらこちらから聞こえてくる。 「反対語はバックエンド開発だから、サーバとかCUIじゃない、アプリとかGUIあたりのことを指す広い意味の言葉だよね。」 ・・・とか思ってたらとんでもない。 世の中ではJavaScript界隈を限定している風な使われ方をしている。 私のような C/C++ メインのレトロエンジニアは肩身が狭くなるばかりである。 文は、近年のWeb技術に追いつこうと調査した結果のメモ書きである。 n番煎じの内容だが、Web業界にいない人間の視点 なので、私と同類のレトロエンジニア等、一部の人には

    レトロエンジニアのための近代Webフロントエンド事情 - Qiita
  • 「うざっ!」と言われないモーダル・ポップアップをjQueryで実装しよう

    資料請求や会員獲得など、コンバージョンのために欠かせない、モーダル・ポップアップ。でも、ページを開いたとたんにいきなり表示されたり、1日に何度も表示されたら不快ですよね。そこでjQueryを使ってちょっとひと工夫。 記事では、Webページで一定の間隔をおいてモーダルウィンドウを開く方法を説明します。ニュースレターのサインアップやFacebook上で「いいね!」を取得するときなど、特定のCTA(Call To Action)を強調して表示する場合に役立ちます。一部のサイトは広告を表示するときにもこの手法を使っています。 ただし、こうしたウィンドウの開き方が当に必要かどうか少し自問してから作業を続けてください。閲覧中になにもクリックしていないのにウィンドウが開くと、たいていの訪問者は即座に閉じ、邪魔されたことにうんざりします。サイトのイメージを損なう可能性もありますが、訪問者の意識をコンテ

    「うざっ!」と言われないモーダル・ポップアップをjQueryで実装しよう
  • HTMLのテーブルをJSONで動的に更新できる「Tabulator」がスゴい!

    テーブル(表組み)をかっこよく、使いやすく表示するJavaScriptライブラリーはたくさんありますが、決定版になりそうなのが「Tabulator」です。JSONデータを簡単に読み込めるので、更新が必要なサイトやアプリにおすすめ。 標準HTMLのテーブル(table)は、複数の基的なデータをレイアウトするのにとても便利ですが、テーブルにもっとほかの使い道がないでしょうか。外部APIからデータを取得したり、テーブルをソートあるいは編集可能にしたりする必要があるなら、もう少し気の利いたものが必要です。 思い当たることがあるなら、Tabulatorはおすすめのライブラリーです。Tabulatorは複雑なインタラクティブなテーブルの構築を簡単にするために設計された軽量なjQuery UIプラグインです。数行のJavaScriptで、ほぼすべてのデータソースをきれいにフォーマットされたインタラクテ

    HTMLのテーブルをJSONで動的に更新できる「Tabulator」がスゴい!
  • Reactでも使える!シンプルなJavaScriptステート管理ライブラリー Mobxを試す

    Reactのステート管理といえばReduxですが、React以外でも使えるライブラリーとして注目されているのが、MobXです。jQueryとReactを使ったサンプルコードで解説します。 あなたが開発したのがjQueryを使ったごくシンプルなアプリに過ぎなくても、UIのさまざまなパーツの同期を維持する問題に直面したことがあるはずです。たいていの場合、データを変更すると複数の箇所に反映する必要があり、アプリの規模が大きくなるにつれて対応が困難になります。この問題にうまく対処するには、イベントを利用して、アプリのさまざまなパーツに対して、変更があったことを知らせるのが一般的です。 それでは現在、多くの人はアプリケーションのステートをどのように管理しているのでしょうか。 「ステート」とはいったい何者なのか? ある人物がこう言っています。「こんにちは、ぼくだよ! ぼくにはfirstName、las

    Reactでも使える!シンプルなJavaScriptステート管理ライブラリー Mobxを試す
  • 知ってた? jQueryのready()メソッドはもう書かなくていいらしい

    jQueryのコードといえば、$(document).ready(function() {}で書くのがお決まり。でもそのコードの書き方はもう古いかもしれません。 jQueryでreadyメソッドはDOMが完全にロードされたタイミングでコードを実行するように実装されていました。このメソッドはすべてのDOM要素が利用可能になった時点で所定の関数を実行するので、要素へ確実にアクセスしたり操作したりできます。 jQuery 3.0がリリースされるまでは、次のように無名関数で使うのが一般的でした。 $(document).ready(function() { // Handler for .ready() called. }); jQuery 3.0での「ready()」メソッドの変更 jQuery 3.0のリリースまでは、readyメソッドを呼び出す方法はいくつかありました。 document要素

    知ってた? jQueryのready()メソッドはもう書かなくていいらしい
  • そのコード、本当にjQueryが必要ですか?ネイティブ関数の代替Tips集 | ゆっくりと…

    sitepoint から「当にjQueryが必要ですか?」とタイトルのついた3の記事を紹介します。 Do You Really Need jQuery? Native JavaScript Equivalents of jQuery Methods: the DOM and Forms Native JavaScript Equivalents of jQuery Methods: Events, Ajax and Utilities 言うまでもなく著者の Craig Buckler さん の趣旨は、「jQueryを使うのは止めよう」ではありません。ネイティブ関数で代替えできるのは、古い IE のサポートが必要なく、ごく簡単なケースに限られます。その代わりに得るものは「速さ」です。そこで、どの程度「速い」のかを所々 jsperf の結果で補ってみたいと思います。 また JavaScri

  • 「動き」はどの技術で実装すべきか? Web Animations APIの登場で常識が変わる

    CSS AnimationsやTranstions、Canvas、JavaScriptによるDOM操作など、Webアニメーションの実装にはさまざまな手法がありますが、決定版となる新しいJavaScript APIの策定が進んでいます。CSSアニメーションのスペシャリストであり、the new codeを運営するDudley Storeyさんによる特別寄稿です。 従来のWebアニメーションの問題を解決するAPI Webにおけるアニメーションは、性質のまったく異なる4つのグループに分けられます。 CSS TransitionsとAnimationsはパフォーマンスに優れ、キーフレームを提供しているが、構築に膨大な時間を必要とし、基的な開始と終了の制御のみをCSSJavaScriptで提供している。UIの応答、ループ、ページ読み込みなどのシンプルなアニメーションに利用される傾向がある SMI

    「動き」はどの技術で実装すべきか? Web Animations APIの登場で常識が変わる
  • 外部サイトリンクに別Window(_blank)を自動付与するJavaScript|レンタルサーバーナレッジ

    サイト内のリンクは同じWindowで開く、外部サイトリンクの場合は別Window(_blank)を自動で付与するJavaScirptの紹介です。 ソースコードの大半は下記のサイトより引用で、より汎用的なコードにするために正規表現を変更し再配布しております。 http://blog.elearning.co.jp/archives/2767.php 改修概要 https://でも、http://でも使えるように改修 「-」ハイフンを含むドメインでも使えるように改修 使い方 jQueryを読み込みます。バージョンは1、2、3系どちらでも動作確認済みです。 <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> JavaScriptのコードを記述します。 <script> $(document).ready( fu

    外部サイトリンクに別Window(_blank)を自動付与するJavaScript|レンタルサーバーナレッジ
  • jQueryにはもう頼らない!無限スクロールをネイティブで実装する最新テクニック

    とても便利なJavaScript APIが登場しました。要素の表示状態を検出できるIntersectionObserver APIを使えば、無限スクロールを手軽に実装できます。 Webプラットホームに最近、注目の新しいクライアントサイドJavaScript API「IntersectionObserver API」が登場しました。 軽量でしかも使い勝手の良いこのAPIは、特定のDOM要素の表示状態、つまり要素が(ブラウザーウィンドウか要素の)ビューポートに入っているかどうかを効率的に監視する手段を提供しています。要素がビューポイントと重なり合う領域の割合を指定すれば、要素の表示状態を正確に定義できます。 この機能の一般的な用途としては、次のものが挙げられます。 コンテンツの遅延ロード 無限スクロール 広告表示 スクロールでトリガーされるアニメーション(注:用途としては来おすすめできない。

    jQueryにはもう頼らない!無限スクロールをネイティブで実装する最新テクニック
  • JSプログラマーのイラッとする「クセ」はESLintを導入して対処しよう

    人によって異なるJavaScriptの書き方もチーム開発では揃っていないと気持ちが悪いし、バグのもとに…。構文チェックツール「ESLint」を導入すれば、スタイルガイドに合わせたチーム開発が捗るそうですよ。 「リンティング(linting)」という言葉に聞き覚えはありますか? コードの潜在的問題を自動的に確認するためのツール(リンター)を使ったプロセスのことです。このようなツールを使用することで生まれる、重要なメリットがいくつかあります。 コードスタイルの一貫性を保つ:スペース、インデント、ブレース(波括弧)の配置などのコードスタイルの問題をリンターで確認できる。チームの同意を得たコーディングスタイルを設定ファイルに記述しておけば自動的に確認できる 潜在的エラーや良くないパターンを見分けられる:リンターは、重複変数、到達不能コード、無効な正規表現の可能性があるエラーを発見するため、より高度

    JSプログラマーのイラッとする「クセ」はESLintを導入して対処しよう
  • JSのソースコードが変えられない!困ったときにモンキーパッチで逃げ切る方法

    他人が作ったJavaScriptのプログラムを部分的に、でも元のコードを修正せずに対応するしかない…。そんなときにモンキーパッチ。やらなきゃいけないときの対処方法を実例で。 たった1つの小さな問題点を除いてきちんと動作する、第三者のコードを使ったことはありませんか? なぜ作成者はこんなやっかいなコンソールログを削除し忘れてしまったのだろう、そのAPIコールがもう1つちゃんとしていればうまくいったのに、と思うことがあるでしょう。こうした場合、メンテナンス担当者に変更箇所を実装させるのは困難(あるいは不可能)です。自分自身でコードを変更しようにも、ソースコードを持っていなかったり、自分でコードをホストしたくなかったりするときはどう対処すればよいか悩みます。 さあ、JavaScriptのモンキーパッチの世界を一緒に探検しましょう! この記事ではモンキーパッチとはなにかを説明します。また、第三者が

    JSのソースコードが変えられない!困ったときにモンキーパッチで逃げ切る方法
  • カッコいいグラフがむちゃくちゃ簡単に描ける!Chart.js 2.0がスゴい

    データビジュアライゼーション系のライブラリーといえば、D3.jsが有名。でも、シンプルなグラフをWebで描くだけなら、もっと手軽なChat.jsを使ってみてもいいかもしれません。 Webサイトのデータ量が多いときは、データを見やすくするための方法を見つけなければなりません。なんだかんだと、人間は数値データの長いリストを理解するのが得意ではありません。 そこで、チャートやグラフが役に立ちます。チャートやグラフを使えば、 複雑な統計関連のデータが分かりやすく直観的に理解できるようになるのはもちろんのこと、英語を話さない人でも利用可能になります。基的なチャートであればみな同じスピードで理解できますが、専門用語が散りばめられた文章ではそうはいきません。 必要に応じてチャートを使えば、Webサイトは理解しやすくなり、見た目ももっと魅力的になります。 記事ではChart.jsと呼ばれるJavaSc

    カッコいいグラフがむちゃくちゃ簡単に描ける!Chart.js 2.0がスゴい
    noisegate
    noisegate 2016/09/23
    2.0になっていい感じになったっぽい。
  • ReactとD3.jsの組み合わせで変わる!JavaScriptアニメーション開発

    人気のデータビジュアライゼーションライブラリー「D3.js」をもっと使いやすく、便利にするために。Reactを使ったコンポーネント化に取り組み、リアルタイムで描画されるアニメーションを作ります。 D3は最高です。Webのデータビジュアライゼーション分野におけるjQueryのように、考えられるあらゆることが実現できます。 オンラインで見られる最良のWebのデータビジュアライゼーションの多くがD3を使用しています。D3は素晴らしいライブラリーですが、最近のv4のアップデートで従来よりさらに安定性が増しました。 Reactと一緒に使えば、D3はさらに便利になります。 ちょうどjQueryのように、D3は高性能ですが課題もあります。データビジュアライゼーションが大規模になればなるほど、用いるコードは複雑になり、バグを修正したりアイデアを絞り出したりするのにさらに時間がかかるようになります。 しかし

    ReactとD3.jsの組み合わせで変わる!JavaScriptアニメーション開発
  • セミコロンは省略?人気スタイルガイドに学ぶJavaScriptのコーディング規則

    インデントにタブとスペースのどちらを使うのがいい? JavaScriptにセミコロンは付けるべき? JavaScript Standard Styleを使えばそんな論争にけりがつくかもしれません。 最近、注目を集めている@ferossのJavaScriptスタイルガイド、JavaScript Standard Styleを紹介します。チーム内での開発が円滑になり、プログラミングがより楽しくなります。 JavaScriptスタイルガイドのコーディング規約は、タブとスペースのどちらが良いかといった不毛な議論を無くし、コードに一貫性を持たせてくれます。JSLintやJSHint、ESLintといったLinterで使用できる多くのスタイルガイドのうちの1つです。 もしLinterが分からなければ、SitePointの記事『A Comparison of JavaScript Linting Too

    セミコロンは省略?人気スタイルガイドに学ぶJavaScriptのコーディング規則
  • 関数型プログラミングはまず考え方から理解しよう

    ※仕様の細かいツッコミはご勘弁を…。 オブジェクト指向で解く みんな大好きオブジェクト指向では、物単位で考えます。言わずもがなですね。やり方はいろいろあると思いますが、まずお弁当という単位で集めると 唐揚げお弁当クラス 状態 主名 唐揚げ個数 値段 … 振る舞い: つまみい() 値段取得() 唐揚げ個数取得() … のような感じで、弁当に必要な要素と必用な処理をひとまとまりにして扱うというのがオブジェクト指向です。 お弁当スーパークラスを作って継承で唐揚げ弁当クラスを、というように拡張を考えた設計にするというのも汎用性が必要な場合は良いと思います。 では早速コードにしてみましょう。 言語はJavaScriptにしています。 (function(){ window.onload=function(){ ////////////////// // クラスの定義 // ///////////

    関数型プログラミングはまず考え方から理解しよう
  • JavaScriptコードを圧縮・最適化・難読化する「Closure Compiler」のJavaScript版をGoogleが公開。Node.jsもしくはWebブラウザ上で実行可能

    JavaScriptコードを圧縮・最適化・難読化する「Closure Compiler」のJavaScript版をGoogleが公開。Node.jsもしくはWebブラウザ上で実行可能 JavaScriptのコードを実際のアプリケーションとしてデプロイする場合には、コード内のコメントやタブ、スペース、改行などの余計な要素を削除し、変数名を短くしたりコードの冗長性を排除するといった最適化を行うことで、ロード時間を短縮しコードを高速に実行できるようになります。また、コードの中身を簡単に読めないよう、難読化を行うことも多いでしょう。 こうしたJavaScriptコードの圧縮や最適化、そして難読化を行ってくれる代表的なツールの1つが、Googleがオープンソースで公開しているClosure Compilerです。 Closure Compilerはコードの単純な圧縮や最適化だけでなく、JavaScr

    JavaScriptコードを圧縮・最適化・難読化する「Closure Compiler」のJavaScript版をGoogleが公開。Node.jsもしくはWebブラウザ上で実行可能
  • Flash→HTML5移植は本当か? ハンゲームの事例

    HTML5でFlashが不要になる」――。次世代Web標準規格「HTML5」でよく聞くのがこんなフレーズだ。ところが、実際にFlashで作ったコンテンツをHTML5(+JavaScript)で置き換えた、なんて話は(少なくとも日では)ほとんど聞かない。当にFlashコンテンツをHTML5で(しかも商用レベルで)置き換えられるのだろうか? そう思っていたら、あの「ハンゲーム」を手掛けるNHN JapanがモバイルゲームHTML5化を着々と進めていると聞き、同社の「HTML5勉強会」(2月25日開催)に行ってみた。勉強会では同社のエンジニアが、HTML5/CSS3によるオンラインゲームの開発事例について語った。

    Flash→HTML5移植は本当か? ハンゲームの事例
  • まだ手動でやってない?UIテストを爆速で自動化できるNightwatch.jsが便利すぎ

    Webアプリのクオリティアップに役立つのが、フロントエンドのテスト。実装したはずの機能がある条件で動かなかったり、期待どおりに操作できなかったりするとガッカリですね。Nightwatch.jsならテストがだいぶ捗りそうです。 少し前に、Eric Elliottが「JavaScript Testing: Unit vs Functional vs Integration Tests」でJavaScriptのテストについて比較しました。 記事では、JavaScriptの機能テストについてもう少し掘り下げます。Nightwatch.jsライブラリーを詳しく探りながら、機能テストを実施してみましょう。 解説する前に、機能テストとはなにか、なぜ重要なのか説明します。おおまかに言うと、機能テストとはユーザーの観点から予測されるとおりにアプリケーションが動作しているか確認するためのプロセスです。 ユニ

    まだ手動でやってない?UIテストを爆速で自動化できるNightwatch.jsが便利すぎ
  • 読者の「閲覧履歴」を表示するWordPressプラグイン「WP Browsing History」を公開しました

    ユーザーが過去に読んだブログ記事を表示できるWordPressプラグイン「WP Browsing History」を公開しました。ソースコードはGitHubの did2/wp-browsing-history にて公開しているので、そこからインストールできます。 このページから、別のページへ飛んでみると、サイドバーに表示されるはずです(PC限定・Cookie無効だと表示されません)。 目次 1. プラグインでできること2. 仕様3. 使い方3.1. インストール3.2. 表示場所の設定4. カスタマイズ方法4.1. スタイルシート4.2. 設定変更5. 併用したいプラグイン スポンサーリンク プラグインでできること ユーザーの表示したページ(エントリ)を記録しておき、そのページ閲覧履歴の一覧を、テンプレートで指定した場所(サイドバーなど)に表示できます。 仕様 ユーザーの表示したページの履

    読者の「閲覧履歴」を表示するWordPressプラグイン「WP Browsing History」を公開しました
  • Reactアプリのコードを美しく保つ「高階コンポーネント」の考え方とは?

    Reactアプリケーションを整理して構築し、保守を簡単にするためにHigher-Order Componentsを使用する方法について説明します。純粋関数でコードをクリーンに保つ方法や、同じ原理をReactコンポーネントに適用する方法を紹介します。 純粋関数 以下のプロパティに従っている場合、その関数は純粋であると見なされます。 取り扱うすべてのデータが引数として宣言されている 与えられたデータやその他のデータを変化させない(多くの場合、副作用と呼ばれる) 同じ入力には、常に同じ出力を返す たとえば、以下のadd関数は純粋です。 function add(x, y) { return x + y; } しかし以下のbadAdd関数は純粋ではありません。 var y = 2; function badAdd(x) { return x + y; } badAdd関数は直接与えられていないデー

    Reactアプリのコードを美しく保つ「高階コンポーネント」の考え方とは?