リンクをクリックした際、自ページ内でモーダルウィンドウとしてリンク先を表示する。という処理を考えてみます。
例)クリックして表示
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | (function($) { // style var bgStyle = 'display: none;' + 'width: 100%;' + 'height: 2000px;' + 'position: fixed;' + 'top: 0;' + 'left: 0;' + 'z-index: 9999;' + 'background: #333;'; var wrapStyle = 'display: none;' + 'width: 1000px;' + 'height:' + ($(window).height() * 0.9) + 'px;' + 'margin: 0 0 0 -500px;' + 'position: fixed;' + 'top: 40px;' + 'left: 50%;' + 'z-index: 9999;' + 'background: #fff;'; var btnStyle = 'display: none;' + 'width: 40px;' + 'height: 40px;' + 'position: fixed;' + 'top: 20px;' + 'right: 20px;' + 'z-index: 9999;' + 'background: #999;' + 'border-radius: 50%;' + 'cursor: pointer;' + 'line-height: 40px;' + 'text-align: center;' + 'color: #fff'; var html = '<div id="iframe-bg" style="' + bgStyle + '"></div>' + '<div id="iframe-wrap" style="' + wrapStyle + '"></div>' + '<div id="iframe-btn" style="' + btnStyle + '">X</div>'; // add element $(html).appendTo('body'); // click event $('.link a').click(function () { var url = $(this).attr('href'); $('#iframe-wrap').html('<iframe src="' + url + '" width="100%" height="100%">'); $('#iframe-bg').fadeTo('normal', 0.8); $('#iframe-wrap iframe').load(function () { $('#iframe-wrap').fadeIn(); $('#iframe-btn').fadeIn(); }); return false; }); $('#iframe-btn').click(function () { $('#iframe-bg, #iframe-btn, #iframe-wrap').fadeOut(); }); })(jQuery); |
リンク先が同一ドメインであれば jQueryでアクセスできます。例では呼び出し先のヘッダーとフッターを隠しています。
例)クリックして表示
JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | (function($) { $('.link2 a').click(function () { var url = $(this).attr('href'); $('#iframe-wrap').html('<iframe src="' + url + '" width="100%" height="100%">'); $('#iframe-bg').fadeTo('normal', 0.8); $('#iframe-wrap iframe').load(function () { // 呼び出し先のヘッダーとフッターを隠す $(this).contents().find('#header, #footer').hide(); $('#iframe-wrap').fadeIn(); $('#iframe-btn').fadeIn(); }); return false; }); })(jQuery); |
(藤崎)