jQuery tools scrollableとlightBoxの連携
jQuery tools scrollableとlightBoxがなかなか同時に動作しませんでしたが試行錯誤の上やっと動いてくれました。
プレビュー
↓拡大表示にすると見やすいです(右上のボタンが拡大表示)。
↓スマートフォンの方はこちらからプレビューできます。
scrollableとlightBox
コード
HTML
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>scrollableとlightBox</title> <script src="js/jquery-1.7.2.min.js"></script> <script src="js/jquery.tools.min.js"></script> <script src="js/jquery.lightbox-0.5.min.js"></script> <link rel="stylesheet" href="css/standalone.css"> <link rel="stylesheet" href="css/scrollable-horizontal.css"> <link rel="stylesheet" href="css/scrollable-buttons.css"> <link rel="stylesheet" href="css/jquery.lightbox-0.5.css"> <script> $(function() { $('#gallery a').lightBox(); }); $(function() { $('.scrollable').scrollable(); }); </script> </head> <body> <div style="margin:0 auto; width: 634px; height:120px;"> <!-- "previous page" action --> <a class="prev browse left"></a> <!-- root element for scrollable --> <div class="scrollable" id="scrollable"> <!-- root element for the items --> <div class="items"> <!-- 1-5 --> <div id="gallery"> <a href="http://farm1.staticflickr.com/143/321464099_a7cfcb95cf.jpg" title="1"><img src="http://farm1.static.flickr.com/143/321464099_a7cfcb95cf_t.jpg"></a> <a href="http://farm1.staticflickr.com/153/399232237_6928a527c1.jpg" title="2"><img src="http://farm4.static.flickr.com/3089/2796719087_c3ee89a730_t.jpg"></a> <a href="http://farm4.staticflickr.com/3624/3323893148_8318838fbd.jpg" title="3"><img src="http://farm1.static.flickr.com/79/244441862_08ec9b6b49_t.jpg"></a> <a href="http://farm1.staticflickr.com/28/66523124_b468cf4978.jpg" title="4"><img src="http://farm1.static.flickr.com/28/66523124_b468cf4978_t.jpg"></a> </div> <!-- 5-10 --> <div id="gallery"> <a href="http://farm4.staticflickr.com/3651/3445879840_7ca4b491e9.jpg" title="5"><img src="http://farm1.static.flickr.com/163/399223609_db47d35b7c_t.jpg"></a> <a href="http://farm1.staticflickr.com/135/321464104_c010dbf34c.jpg" title="6"><img src="http://farm1.static.flickr.com/135/321464104_c010dbf34c_t.jpg"></a> <a href="http://farm4.staticflickr.com/3023/3323897466_e61624f6de.jpg" title="7"><img src="http://farm1.static.flickr.com/40/117346184_9760f3aabc_t.jpg"></a> <a href="http://farm1.staticflickr.com/153/399232237_6928a527c1.jpg" title="8"><img src="http://farm1.static.flickr.com/153/399232237_6928a527c1_t.jpg"></a> </div> <!-- 10-15 --> <div id="gallery"> <a href="http://farm4.staticflickr.com/3629/3323896446_3b87a8bf75.jpg" title="9"><img src="http://farm4.static.flickr.com/3629/3323896446_3b87a8bf75_t.jpg"></a> <a href="http://farm4.staticflickr.com/3023/3323897466_e61624f6de.jpg" title="10"><img src="http://farm4.static.flickr.com/3023/3323897466_e61624f6de_t.jpg"></a> <a href="http://farm4.staticflickr.com/3650/3323058611_d35c894fab.jpg" title="11"><img src="http://farm4.static.flickr.com/3650/3323058611_d35c894fab_t.jpg"></a> <a href="http://farm4.staticflickr.com/3635/3323893254_3183671257.jpg" title="12"><img src="http://farm4.static.flickr.com/3635/3323893254_3183671257_t.jpg"></a> </div> </div> </div> <!-- "next page" action --> <a class="next browse right"></a> </div> </body> </html>
CSS
<standalone.css>
@charset "utf-8"; body { padding:50px 80px; font-family:"Lucida Grande","bitstream vera sans","trebuchet ms",sans-serif,verdana; } /* get rid of those system borders being generated for A tags */ a:active { outline:none; } :focus { -moz-outline-style:none; }
<scrollable-horizontal.css>
@charset "utf-8"; /* root element for the scrollable. when scrolling occurs this element stays still. */ .scrollable { /* required settings */ position:relative; overflow:hidden; width: 550px; height:120px; /* custom decorations */ border:1px solid #ccc; background:url(/media/img/gradient/h300.png) repeat-x; } /* root element for scrollable items. Must be absolutely positioned and it should have a extremely large width to accomodate scrollable items. it's enough that you set the width and height for the root element and not for this element. */ .scrollable .items { /* this cannot be too large */ width:20000em; position:absolute; clear:both; } .items div { float:left; width:680px; } /* single scrollable item */ .scrollable img { float:left; margin:20px 5px 20px 21px; background-color:#fff; padding:2px; border:1px solid #ccc; width:100px; height:75px; -moz-border-radius:4px; -webkit-border-radius:4px; } /* active item */ .scrollable .active { border:2px solid #000; position:relative; cursor:default; }
<scrollable-buttons.css>
@charset "utf-8"; /* this makes it possible to add next button beside scrollable */ .scrollable { float:left; } /* prev, next, prevPage and nextPage buttons */ a.browse { background:url(../images/hori_large.png) no-repeat; display:block; width:30px; height:30px; float:left; margin:40px 10px; cursor:pointer; font-size:1px; } /* right */ a.right { background-position: 0 -30px; clear:right; margin-right: 0px;} a.right:hover { background-position:-30px -30px; } a.right:active { background-position:-60px -30px; } /* left */ a.left { margin-left: 0px; } a.left:hover { background-position:-30px 0; } a.left:active { background-position:-60px 0; } /* up and down */ a.up, a.down { background:url(/media/img/scrollable/arrow/vert_large.png) no-repeat; float: none; margin: 10px 50px; } /* up */ a.up:hover { background-position:-30px 0; } a.up:active { background-position:-60px 0; } /* down */ a.down { background-position: 0 -30px; } a.down:hover { background-position:-30px -30px; } a.down:active { background-position:-60px -30px; } /* disabled navigational button */ a.disabled { visibility:hidden !important; }
@charset "utf-8"; #jquery-overlay { position: absolute; top: 0; left: 0; z-index: 90; width: 100%; height: 500px; } #jquery-lightbox { position: absolute; top: 0; left: 0; width: 100%; z-index: 100; text-align: center; line-height: 0; } #jquery-lightbox a img { border: none; } #lightbox-container-image-box { position: relative; background-color: #fff; width: 250px; height: 250px; margin: 0 auto; } #lightbox-container-image { padding: 10px; } #lightbox-loading { position: absolute; top: 40%; left: 0%; height: 25%; width: 100%; text-align: center; line-height: 0; } #lightbox-nav { position: absolute; top: 0; left: 0; height: 100%; width: 100%; z-index: 10; } #lightbox-container-image-box > #lightbox-nav { left: 0; } #lightbox-nav a { outline: none;} #lightbox-nav-btnPrev, #lightbox-nav-btnNext { width: 49%; height: 100%; zoom: 1; display: block; } #lightbox-nav-btnPrev { left: 0; float: left; } #lightbox-nav-btnNext { right: 0; float: right; } #lightbox-container-image-data-box { font: 10px Verdana, Helvetica, sans-serif; background-color: #fff; margin: 0 auto; line-height: 1.4em; overflow: auto; width: 100%; padding: 0 10px 0; } #lightbox-container-image-data { padding: 0 10px; color: #666; } #lightbox-container-image-data #lightbox-image-details { width: 70%; float: left; text-align: left; } #lightbox-image-details-caption { font-weight: bold; } #lightbox-image-details-currentNumber { display: block; clear: left; padding-bottom: 1.0em; } #lightbox-secNav-btnClose { width: 66px; float: right; padding-bottom: 0.7em; }
ポイント
↓lightboxはjQuery lightBox pluginからダウンロードし、「jquery.lightbox-0.5.min.js」、「jquery.lightbox-0.5.css」と画像を使用
↓jQuery TOOLSからScrollable(3.8kb)のみダウンロード
↓jsフォルダ
↓cssフォルダ
↓imagesフォルダ
JavascriptにlightBox()を、HTMLにid="gallery"を追加
$(function() { $('#gallery a').lightBox(); });
<div id="gallery">