- 更新日: 2014年11月12日
- jQuery & JavaScript
jquery-live-previewでリンク先をプレビュー
jquery-live-preview(Jquery Live Link Preview)を使うと、a タグのリンクにマウスオーバーで、リンク先URLをポップアップでプレビューする機能を実装できます。トリガーとなるイベントはマウスオーバー(hover)の他、クリック(click)を指定することも可能。
以下公式のサンプルページとGitHub。
A LIVE link preview window for links on hover over using Jquery and CSS3
alanphoon/jquery-live-preview
小さなライブラリですが便利、コードを読むのも簡単でした。
— 環境 —
Rails 4.1
jquery-live-preview の設置
Rails プロジェクトでの利用なので、vendor/assets/jquery-live-preview に設置しました。Rails じゃない場合は、普通に GitHub の Readme 通りに進めればOKです。
Rails 利用の場合に、jquery-live-preview を vendor/assets 以下に配置する理由は以下を参考。
RailsのAsset Pipelineの理解とgemで管理しないJavaScriptライブラリの配置 | EasyRamble
また、Rails の Asset Pipeline 有効ではまった箇所 に書いている通り、css 内の画像ファイルへのパス指定で url → image-url へと変更させる必要がある。
css/livepreview-demo.css
9行目を変更。
1 2 3 |
background-image:url('/images/icon_loading.gif'); ↓ background-image:image-url('/images/icon_loading.gif'); |
以上で Rails プロジェクトへの jquery-live-preview の設置自体は完了。
Asset Pipeline の対象となるように manifest 設定
jquery-live-preview が Asset Pipeline の対象となるように、読み込まれるべきファイルを application.js, application.css の manifest で require されるように指定します。
assets/javascripts/application.js
1 |
//= require js/jquery-live-preview |
assets/stylesheets/application.css
1 |
*= require 'css/livepreview-demo' |
a タグに class=”livepreview” の属性を追加
HTML側は、任意の a タグに class=”livepreview” の属性を追加するだけです。
1 |
<a href="http://www.bing.com" target="_blank" class="livepreview">Hover over to preview, click to link!</a> |
公式サイトのコード例ですが、この場合は bing.com のページをプレビューで表示させます。Rails の場合であれば、ビューファイルでは通常 link_to メソッドを使うと思うので、link_to に class オプションを付ければ良いでしょう。
1 |
<%= link_to "Hover over to preview, click to link!", "http://www.bing.com", target: "_blank", class: "livepreview" %> |
jquery-live-preview 用の jQuery コード
Rails で jquery-live-preview を動作させるための jQuery コードを追加します。
assets/javascripts/livepreview.js
デフォルト設定での利用。
1 2 3 |
$(document).ready(function() { $(".livepreview").livePreview(); }); |
オプショナルな初期設定を行う場合は以下。
1 2 3 4 5 6 7 8 9 10 11 12 |
$(document).ready(function() { $(".livepreview").livePreview({ trigger: 'hover', viewWidth: 300, viewHeight: 200, targetWidth: 1000, targetHeight: 800, scale: '0.5', offset: 50, position: 'left' }); }); |
マウスオーバー(trigger: ‘hover’)で左側(position: ‘left’)に、ポップアップのプレビューを表示します。その他オプション詳細は、GitHub ページを参照。
以下、インラインでオプションを設定する例。
1 |
<a href="http://www.cnn.com" class="livepreview" data-offset="20" data-position="left" >Hover over this link</a> |
インラインによる設定は、assets/javascripts/livepreview.js で行った初期設定を上書きします。この場合、data-offset, data-position がそれぞれ、assets/javascripts/livepreview.js 内の offset, position を上書する。
- jQuery & JavaScript の関連記事
- React.js用にESLintをインストールして設定、JavaScriptコードを楽に検証しよう
- JavaScriptでHTMLコメント要素を取得する
- YahooのJavaScriptマップAPI(YOLP)で地図を描画
- HTML5のGeolocation APIで現在地の位置情報(緯度/経度)を取得するJavaScriptコード
- JavaScriptでキャメルケースを単語に分割
- Browserify + GulpでクライアントのJavaScript / CoffeeScriptでrequire
- JavaScript/jQueryでDOM要素が存在するか確認する方法
- JavaScriptでスクロールを一時的に止める
- JavaScriptでcapitalize、アルファベット一文字目を大文字にする
- JavaScriptでrangeオブジェクトから座標を取得するコード
Leave Your Message!