Adding descriptions inside a blueimp gallery

后端 未结 5 528
灰色年华
灰色年华 2021-01-11 22:07

I am using a BlueImp Gallery to add lightboxes to my image gallery. So, when you click on an image thumbnail, it launches a lightbox with a larger version of the image etc.<

5条回答
  •  臣服心动
    2021-01-11 22:24

    You can pass any needed data on a element, and then display it in the gallery. I spend a lot of time trying to find an answer, so I'll leave it here. Here is an example:

    HTML:

    
    ------
    
    

    JS:

    document.getElementById('links').onclick = function (event) {
      event = event || window.event;
      var target = event.target || event.srcElement,
        link = target.src ? target.parentNode : target,
        options = {
          index: link, event: event,
          onslide: function (index, slide) {
    
            self = this;
            var initializeAdditional = function (index, data, klass, self) {
              var text = self.list[index].getAttribute(data),
                node = self.container.find(klass);
              node.empty();
              if (text) {
                node[0].appendChild(document.createTextNode(text));
              }
            };
            initializeAdditional(index, 'data-description', '.description', self);
            initializeAdditional(index, 'data-example', '.example', self);
          }
        },
        links = this.getElementsByTagName('a');
      blueimp.Gallery(links, options);
    };
    

    CSS: You can use .scss to refactor it, but it's just for example

    .blueimp-gallery > .description, .blueimp-gallery > .example {
      position: absolute;
      top: 30px;
      left: 15px;
      color: #fff;
      display: none;
    }
    .blueimp-gallery-controls > .description, .blueimp-gallery-controls > .example {
      display: block;
    }
    

提交回复
热议问题