WordPressでも利用可能な拡大画像スライダー-jquery-zoomSlider(プラグイン)

拡大画像スライダー jquery-zoomSlider

作成した背景

WordPressで複数の写真をギャラリー表示させた記事を作成したのですが、写真が小さく見切れて表示しまうため、クリックで拡大表示できるようにしたいと思い作成しました。

こだわった点としては画像が1~2枚であれば全然問題ないのですが拡大パネル内に表示する画像が1000枚を超えてくるとすべての画像をスライダーに設定する際に処理時間がかかってしまいます。パフォーマンスを向上させる目的で拡大したタイミングで対象画像をスライダーに追加するような仕組みにしています。

デモ

こちらにデモページを用意しているのでご利用ください。

使い方

用途に応じて以下のようなオプションが用意されています。必要に応じて使い分けてください。

オプション一覧

  • targetClass(default:img) ・・・ 拡大する画像要素
  • animateType(default:ANIMATE_TYPE.SLIDE) ・・・ アニメーションの種類
  • slideSpeed(default:300) ・・・ スライド速度
  • carousel(default:false) ・・・ ローテートさせるかどうか
  • autoSlide(default:false) ・・・ 自動スライドさせるどうか
  • autoSlideInterval(default:5000) ・・・ 自動スライドさせる間隔(ミリ秒)
  • hoverPause(default:false) ・・・ 子要素にマウスオーバーすると自動スライドを一時停止する。
  • slideCallBack(default:null) ・・・ スライド後に処理を行うコールバック(本プラグインで想定していない処理はここでカスタマイズする)
  • openCallBack(default:null) ・・・ 拡大表示後のコールバック
  • arrayCnt(default:20) ・・・ 初期表示でロードする拡大画像内要素の数

Javascript

  1. <script src="https://demo.isystk.com/jquery-isystkOverlay/js/jquery-isystkOverlay.js"></script>
  2. <script src="https://demo.isystk.com/jquery-isystkSlider/js/jquery-isystkSlider.js"></script>
  3. <script src="https://demo.isystk.com/jquery-zoomSlider/js/jquery-zoomSlider.js"></script>
  4. <script type="text/javascript">
  5. $(function() {
  6. $('.js-zoomSlider').zoomSlider({
  7. 'animateType': $.fn.zoomSlider.ANIMATE_TYPE.SLIDE,
  8. 'carousel': true,
  9. 'isFullScreen': true,
  10. 'slideCallBack': function(data) {
  11. }
  12. });
  13. });
  14. </script>

Css

  1. /* オーバーレイ */
  2. #overlay-background {
  3. position:fixed;
  4. top:0;
  5. left:0;
  6. width:100%;
  7. height:100%;
  8. background-color:#0e0e0e;
  9. opacity:0.5;
  10. z-index:1000
  11. }
  12. .isystk-overlay {
  13. position: absolute;
  14. top: 0;
  15. left: 0;
  16. z-index: 1100;
  17. visibility: hidden;
  18. transition: .1s linear;
  19. }
  20. .isystk-overlay .wrap {
  21. background: #fff;
  22. max-width:100%;
  23. }
  24. .isystk-overlay.open {
  25. visibility: visible;
  26. animation: open-animation .5s ease 0s 1 forwards;
  27. }
  28. @keyframes open-animation {
  29. 0% {
  30. transform: scaleY(.1) scaleX(.1);
  31. }
  32. 50% {
  33. transform: scaleY(1) scaleX(.1);
  34. }
  35. 100% {
  36. transform: scaleY(1) scaleX(1);
  37. }
  38. }
  39. .isystk-overlay .close {
  40. position: absolute;
  41. right: 0;
  42. margin: 10px 15px;
  43. zoom: 100%;
  44. color: #333;
  45. z-index:1;
  46. }
  47. .isystk-overlay .close {
  48. background: url('./images/close.png') 0 0 no-repeat;
  49. background-size:100% auto;
  50. width: 30px;
  51. height: 30px;
  52. }
  53. .isystk-overlay .next-btn {
  54. background: url('./images/btn-next.png') 0 0 no-repeat;
  55. background-size:100% auto;
  56. width: 30px;
  57. height: 30px;
  58. }
  59. .isystk-overlay .prev-btn {
  60. background: url('./images/btn-prev.png') 0 0 no-repeat;
  61. background-size:100% auto;
  62. width: 30px;
  63. height: 30px;
  64. }
  65. /* 画像スライダー */
  66. .isystkSlider {
  67. position: relative;
  68. max-width: 100%;
  69. overflow: hidden;
  70. }
  71. .isystkSlider .view-layer {
  72. max-width: 100%;
  73. overflow: hidden;
  74. }
  75. .isystkSlider ul.parent{
  76. margin-bottom:10px;
  77. }
  78. .isystkSlider li.child{
  79. float:left;
  80. }
  81. .isystkSlider .prev-btn,
  82. .isystkSlider .next-btn{
  83. position: absolute;
  84. top: 50%;
  85. margin-top: -1em;
  86. width: 30px;
  87. }
  88. .isystkSlider .prev-btn img,
  89. .isystkSlider .next-btn img{
  90. width: 30px;
  91. }
  92. .isystkSlider .next-btn{
  93. right: 0;
  94. }
  95. /*ギャラリー*/
  96. .entry-content .wp-block-gallery ul{
  97. border:none;
  98. }
  99. .entry-content .wp-block-gallery ul li:before {
  100. content: none !important;
  101. }
  102. .entry-content .wp-block-gallery li{
  103. float:left;
  104. }
  105. .entry-content .wp-block-gallery li p{
  106. margin:0 5px 0 0;
  107. border:solid 1px #dedede;
  108. background:#fff;
  109. padding:3px;
  110. }

ソースコード

https://github.com/isystk/jquery-zoomSlider

コメントを残す

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。