While adding images in between the <a> the carousel stops working - html

#6 image carousel not working while adding While adding images in between the the carousel stops working. #
<div id="display-panel">
<img src="images/left.jpg" class="prev" alt="">
<div class="display-panel-inner">
<img src="images/book1.jpg" alt="" class="active">
<img src="images/book2.jpg" alt="">
<img src="images/book3.jpg" alt="">
<img src="images/book5.jpg" alt="">
<img src="images/book6.jpg" alt="">
<img src="images/book7.jpg" alt="">
</div>
<img src="images/right.jpg" class="next" alt="">
</div>
#jquery for the above code is not working for the tag i did some changes as well they are also not working #
$(document).ready(() => {
$('.next').on('click', () => {
var isImg = $('.abc');
var a = isImg.next('');
console.log(a);
var currentImg = $('.active');
var nextImg = currentImg.next('.active');
console.log(nextImg);
if (nextImg.length) {
currentImg.removeClass('active').css('z-index', 10);
nextImg.addClass('active').css('z-index', 10);
}
});
$(document).ready(() => {
$('.prev').on('click', () => {
var currentImg = $('.active');
var prevImg = currentImg.prev();
if (prevImg.length) {
currentImg.removeClass('active').css('z-index', 10);
prevImg.addClass('active').css('z-index', 10);
}
});
});
});

Related

ElevateZoom with slick slider

hi i am using slick slider and when i click "tm-prodetails-thumbs" navigation it changes but what i want to do is "tm-prodetails-thumbs a href". When changed, write a href attr values ​​"productDetailsZoom".
"tm-prodetails-image" instead of click
When there is a change, let the values ​​change.
I'm a little new to Jquery so I hope I don't get a minus from you.
<div class="col-lg-6 col-md-6 col-12">
<!-- Product Details Images -->
<div class="tm-prodetails-images">
<div class="tm-prodetails-largeimage">
<img src="images/prdoduct-details-image-1.jpg"
data-zoom-image="images/prdoduct-details-image-1.jpg"
alt="product image">
</div>
<button type="button" class="slick-prev"></button>
<div id="image-gallery" class="tm-prodetails-thumbs">
<a href="#"
data-image="images/prdoduct-details-image-1.jpg"
data-zoom-image="images/prdoduct-details-image-1.jpg">
<img src="images/prdoduct-details-image-1.jpg" alt="">
</a>
<a href="#"
data-image="images/prdoduct-details-image-2.jpg"
data-zoom-image="images/prdoduct-details-image-2.jpg">
<img src="images/prdoduct-details-image-2.jpg" alt="">
</a>
<a href="#"
data-image="images/prdoduct-details-image-3.jpg"
data-zoom-image="images/prdoduct-details-image-3.jpg">
<img src="images/prdoduct-details-image-3.jpg" alt="">
</a>
<a href="#"
data-image="images/prdoduct-details-image-4.jpg"
data-zoom-image="images/prdoduct-details-image-4.jpg">
<img src="images/prdoduct-details-image-4.jpg" alt="">
</a>
<a href="#"
data-image="images/prdoduct-details-image-5.jpg"
data-zoom-image="images/prdoduct-details-image-5.jpg">
<img src="images/prdoduct-details-image-5.jpg" alt="">
</a>
<a href="#"
data-image="images/prdoduct-details-image-6.jpg"
data-zoom-image="images/prdoduct-details-image-6.jpg">
<img src="images/prdoduct-details-image-6.jpg" alt="">
</a>
</div>
<button type="button" class="slick-next"></button>
</div>
</div>
(function ($) {
'use strict';
var blogs = {
/* Product Details Zoom */
productDetailsZoom: function () {
$('.tm-prodetails-largeimage img').elevateZoom({
gallery: 'image-gallery',
// galleryActiveClass: 'active',
zoomWindowWidth: 300,
zoomWindowHeight: 100,
scrollZoom: false,
zoomType: 'inner',
cursor: 'crosshair'
});
},
/* Product Details Zoom Image Change */
productDetailsImageZoomChange: function () {
$('.tm-prodetails-thumbs').find('a').on('click', function (e) {
e.preventDefault();
var largeImage = $(this).data('zoom-image');
$('.tm-prodetails-largeimage').find('img').attr('data-zoom-image', largeImage);
$('.tm-prodetails-zoomimage').attr('href', largeImage);
});
},
/* Initializer */
init: function () {
blogs.productDetailsZoom();
blogs.productDetailsImageZoomChange();
}
};
blogs.init();
$('#image-gallery').slick({
slidesToShow: 3,
slidesToScroll: 1,
prevArrow: $('.slick-prev'),
nextArrow: $('.slick-next'),
> Blockquote
autoplay: true,
autoplaySpeed: 2000,
centerMode: true,
focusOnSelect: true
});
})(jQuery);

slider and Ajax with images

I have a slideshow on my page where images are being changed after some time. The slideshow worked great at first until i put in JSON. Now i can see the first image only but they are not changing. Any ideas ?
https://jsfiddle.net/j2qoyk13/
There is a fiddle but as links and everything is on a localhost , it is probably useless.. You can still see the code .
Here it is for the lazy ones :)
[
{
"src" : "./images/slide-1.png",
"alt" : "Slide one"
},
{
"src" : "./images/slide-2.png",
"alt" : "Slide two"
},
{
"src" : "./images/slide-3.png",
"alt" : "Slide three"
},
{
"src" : "./images/slide-4.png",
"alt" : "Slide four"
}
]
//slide show
var slides = $('.sidenav li');
var slideIndex = 0;
var slideTime = animate();
slideTo(slides[0]);
slides.click(function() {
clearInterval(slideTime);
slideTime = animate();
var selectedIndex = $(this).index();
var slide = slides[selectedIndex];
slideTo(slide);
});
function slideTo(slide) {
slides.removeClass("selected");
$(slide).addClass("selected");
slideIndex = jQuery(slide).index();
}
function animate() {
return setInterval(function() {
var slide = slides[slideIndex];
slideTo(slide)
slideIndex++;
if (slideIndex == slides.length) {
slideIndex = 0;
}
}, 500);
}
//Json
var image = $('.sidenav li > img');
$.getJSON('http://localhost:8080/data.json', function(result){
$.each(result, function(i, field){
for (i=0 ; i < image.length ; i++) {
image.attr('src', field.src);
image.attr('alt', field.alt);
}
});
});
<section class="section-slider">
<div class="wrapper">
<div class="content">
<div class="inner-cont">
<div class="title">
<h1 class="black title-section">EXPECT NOTHING ORDINARY</h1>
</div>
<p class="txt black">
Eastern & Oriental Plc is an AIM quoted real estate company, headquartered in the United Kingdom and focused on the development of residential and mixed-use assets in the London and the South East of England.
</p>
<div class="bot-link">
VIEW OUR COMPANY PROFILE<span class="s s-right_arrow"></span>
</div>
<div class="anchor-sign">
<a class="anchor-link" href="#s-three"><span class="s s-download-arrow"></span></a>
</div>
</div>
</div>
<div class="slider">
<ul class="sidenav">
<li class="selected"><img src="" alt="Slide one"></li>
<li><img src="" alt="Slide two"></li>
<li ><img src="" alt="Slide three"></li>
<li><img src="" alt="Slide four"></li>
</ul>
</div>
</div>
</section>
The question is , of course, why are the slides not changing now when I added JSON ?
Update your JSON loop logic to this
$.getJSON('http://localhost:8080/data.json', function(result){
var i = 0;
$('.sidenav li').each(function(e){
$(this).find('img').attr('src',result[i].src);
$(this).find('img').attr('alt',result[i].alt);
i++;
});
});

JavaScript: onclick not working on image

I am trying to change the image by clicking on it.
I have written the codes and it's not working.
<div class="img fadeIn" >
<img src="logo.png" height="90px" width="320px" onclick="change()" id="koo" />
</div>
JavaScript code:
function change() {
var mySrc = this.getAttribute('src');
if( mySrc == 'logo.png' ){
this.setAttribute('src','logo1.png');
} else {
this.setAttribute('src','logo.png');
}
}
You have to put the element as an argument to the function.
I have attached the working code.
function change(t) {
var mySrc = t.getAttribute('src');
if( mySrc == 'logo.png' ){
t.setAttribute('src','logo1.png');
t.setAttribute('alt','logo1');
} else {
t.setAttribute('src','logo.png');
t.setAttribute('alt','logo');
}
}
<div class="img fadeIn" >
<img src="logo.png" height="90px" width="320px" onclick="change(this)" id="koo" alt="logo"/>
</div>
There is also a way to do this. Please refer to the code
<div class="img fadeIn">
<img src="logo.png" height="90px" width="320px" onclick="change()" id="koo" />
</div>
function change() {
var imgTag = event.target;
var mySrc = imgTag.getAttribute('src');
if( mySrc == 'logo.png' ){
imgTag.setAttribute('src','logo1.png');
} else {
imgTag.setAttribute('src','logo.png');
}
}
Try This!
var ele = document.getElementById("koo");
ele.addEventListener('click',function(){
var src = (ele.getAttribute('src') == "logo.png")?"logo1.png":"logo.png";
ele.setAttribute('src',src);
})
<div class="img fadeIn" >
<img src="logo.png" height="90px" width="320px" id="koo" />
</div>

Cannot read property 'location' of undefined when try to reload div in ionic

I have a div that show something, I want to make that div can reload after I push a button, I make a function like this in my controller :
$scope.getdis = function () {
document.getElementById('map').contentWindow.location.reload();
};
this is my full controller :
app.controller('discoverCtrl', function($scope, $timeout, $http, $location, $ionicPopup) {
google.maps.event.addDomListener(window, 'load', function() {
$scope.initialise = function() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
center: myLatlng,
zoom: 13,
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
navigator.geolocation.getCurrentPosition(function(pos) {
map.setCenter(new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude));
var myLocation = new google.maps.Marker({
position: new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude),
map: map,
clickable: true
});
var dparkings;
dparkings = '{"dparking": {"cabang":[{"id":"1","place":"Aaaa", "type":"R", "x":"-6.2245609", "y":"106.8290384"},{"id":"2", "place":"Bbbb", "type":"P", "x":"-6.2272616", "y":"106.8241209 " }, {"id":"3", "place":"Cccc", "type":"P", "x":"-6.2239737", "y":"106.8248723"}, {"id":"4", "place":"Dddd", "type":"P", "x":"-6.2239737", "y":"106.829"}]}}';
var msg = JSON.parse(dparkings);
var gambar;
for(i=0;i<msg.dparking.cabang.length;i++){
if (msg.dparking.cabang[i].type=='P') {
gambar = 'img/parking_on_small.png';
}
else if (msg.dparking.cabang[i].type=='R') {
gambar = 'img/reserved_on_small.png';
}
var point = new google.maps.LatLng(parseFloat(msg.dparking.cabang[i].x),parseFloat(msg.dparking.cabang[i].y));
tanda = new google.maps.Marker({
position: point,
map: map,
icon: gambar,
clickable: true,
title: msg.dparking.cabang[i].place
});
}
});
$scope.map = map;
};
google.maps.event.addDomListener(document.getElementById("map"), 'load', $scope.initialise());
});
//document.getElementById('map').contentWindow.location.reload();
$scope.showmenu = function () {
document.getElementById("leftpanels3").style.display = "block";
$timeout(function(){
document.getElementById("leftpanels3").style.display = "none";
}, 3000);
};
$scope.closemenu = function () {
document.getElementById("leftpanel3").style.display = "none";
};
//relogin($http, $location, '');
$scope.rs_page = function () {
displaylastreservation($http, $location, $ionicPopup);
};
$scope.godt = function () {
$location.path('/reservation_place');
};
/*$scope.geourls = geourl;
document.getElementById('ifr1').contentWindow.location.reload();
$scope.getpark = function () {
geourl = '#/geoloc_p';
$scope.geourls = geourl;
document.getElementById('ifr1').contentWindow.location.reload();
};
$scope.getres = function () {
geourl = '#/geoloc_r';
$scope.geourls = geourl;
document.getElementById('ifr1').contentWindow.location.reload();
};*/
$scope.getdis = function () {
geourl = '#/geoloc1';
//$scope.geourls = geourl;
document.getElementById('map').contentWindow.location.reload();
};
});
this is my html :
<div data-role="page" class="ui-mobile-viewport ui-overlay-a jqm-demos ui-page ui-page-theme-a ui-page-active fonthel" data-quicklinks="true" tabindex="0" style="min-height: 598px; width:100%;" ng-controller="discoverCtrl">
<div data-role="header" class="col-header ui-header ui-bar-inherit" role="banner">
<button class="btmenu" ng-click="showmenu()">
<img src="img/hamburger-menu.png">
</button>
<h3 class="col-header-title ui-title" role="heading" aria-level="1" >Discover
<table class="pull-right"><tbody><tr>
<td width="40" align="center"><img src="img/icon-coupon.png" height="24px" ></td>
<td width="40" align="center"><a class="ui-link" ng-click="rs_page()"><img src="img/icon-barcode.png" height="24px" ></a></td>
</tr></tbody></table>
</h3>
</div><!-- /header -->
<div class="dashboard-search clearfix">
<div class="pull-right">
<a class="ui-link" ng-click="getpark()"><img src="img/parking_on.png" class="icon30 vmargin5"></a>
<a class="ui-link" ng-click="getres()"><img src="img/reserved_on.png" class="icon30 vmargin5"></a>
</div>
<div class="input-group" style="width:65%">
<div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input type="text" class="form-control" placeholder="Current location"></div>
<span class="input-group-btn">
<a class="btn btn-white ui-link" ><img src="img/icon-search-map.png" class="icon20"></a>
</span>
</div><!-- /input-group -->
</div>
<div role="main" class="ui-content jqm-content jqm-fullwidth" style="width: 100%; height: 500px; position: absolute;">
<!--<div id='mapdiv' style="height:380px; width:100%"></div> -->
<div id="map" data-tap-disabled="true" style="width: 100%; height: 500px; position: absolute;"></div>
</div><!-- /content -->
<!----------------------
|| FOOTER
------------------------>
<div class="footer clearfix" style="color:#fff">
<ul class="list-btn-discover clearfix">
<li><a class="active ui-link" ng-click="getdis()">Map View</a></li>
<li>List View</li>
</ul>
</div><!-- /footer -->
</div><!-- /page -->
<!----------------------
|| LEFT Panel
------------------------>
<div data-role="panel" name ="leftpanels3" id="leftpanels3" data-position="left" data-display="overlay" data-theme="a" style="text-shadow:0 0 0; padding:0;" class="ui-panel ui-panel-position-left ui-panel-display-overlay ui-body-a ui-panel-animate ui-panel-closed paneloverlay" >
<div class="ui-panel-inner"><ul class="menu-icon">
<li>
<a href="#/discover">
<img src="img/icon-discover.png" class="img-responsive">
<div class="title">Discover</div>
</a>
</li>
<li>
<a >
<img src="img/icon-history.png" class="img-responsive">
<div class="title">History</div>
</a>
</li>
<li>
<a>
<img src="img/icon-where_my_car.png" class="img-responsive">
<div class="title">Mark my car</div>
</a>
</li>
<li>
<a>
<img src="img/icon-promotion.png" class="img-responsive">
<div class="title">Promotions</div>
</a>
</li>
<li>
<a href="#/setting">
<img src="img/icon-setting.png" class="img-responsive">
<div class="title">Setting</div>
</a>
</li>
</ul></div>
</div>
<!-- /leftpanel3 -->
When I try to run it, this error show :
Cannot read property 'location' of undefined
Yet when I used that code to reload iframe, it work, anybody can help ?

PhotoSwipe with Polymer misalignment

I'm trying to make a small web-app using Polymer, based on the Nav + List + Detail-layout example they have provided. For part of my web-app I want to make a photo gallery. Luckily, there's an element for that. Unfortunately, there's no element for that. So I set myself upon the task of making my own custom-element that provides this functionality, based on PhotoSwipe.
So I decided to start simple by just implementing the code they provided as an example (see this CodePen). I simply copied this code into a custom element to see how it works, but unfortunately it doesn't work 100%. Here is the CodePen of the custom element.
For small displays the photo's display correctly, but when the screen is tall the 3rd and 4th photo don't align to the center anymore, but slide to the bottom right corner. The easiest way to see this is by pressing the full screen button when viewing an image. Below is an image where you can clearly see the offset to the bottom-right.
I rechecked and this isn't an issue in their own CodePen, but I can't seem to find if there are overlapping styles or something else is breaking it up. Any ides?
<dom-module id="photo-album">
<link rel="import" type="css" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.0/photoswipe.css"> <!-- photoswipe/photoswipe.css -->
<link rel="import" type="css" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.0/default-skin/default-skin.css"> <!-- photoswipe/default-skin/default-skin.css -->
<template>
<style>
:host {
display: block;
}
.my-gallery {
width: 100%;
float: left;
}
.my-gallery img {
width: 100%;
height: auto;
}
.my-gallery figure {
display: block;
float: left;
margin: 0 5px 5px 0;
width: 150px;
}
.my-gallery figcaption {
display: none;
}
</style>
<iron-ajax url="" params="" handle-as="json" last-response="{{photos}}"></iron-ajax>
<!--<template is="dom-repeat" items="{{photos}}">
<iron-image style="width:400px; height:400px; background-color: lightgray;" sizing="cover" preload fade src="{{item}}"></iron-image>
</template>-->
<div class="my-gallery" id="gallery" itemscope itemtype="http://schema.org/ImageGallery">
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="https://farm3.staticflickr.com/2567/5697107145_a4c2eaa0cd_o.jpg" itemprop="contentUrl" data-size="1024x1024">
<img src="https://farm3.staticflickr.com/2567/5697107145_3c27ff3cd1_m.jpg" itemprop="thumbnail" alt="Image description" />
</a>
</figure>
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="https://farm2.staticflickr.com/1043/5186867718_06b2e9e551_b.jpg" itemprop="contentUrl" data-size="964x1024">
<img src="https://farm2.staticflickr.com/1043/5186867718_06b2e9e551_m.jpg" itemprop="thumbnail" alt="Image description" />
</a>
</figure>
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="https://farm7.staticflickr.com/6175/6176698785_7dee72237e_b.jpg" itemprop="contentUrl" data-size="1024x683">
<img src="https://farm7.staticflickr.com/6175/6176698785_7dee72237e_m.jpg" itemprop="thumbnail" alt="Image description" />
</a>
</figure>
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="https://farm6.staticflickr.com/5023/5578283926_822e5e5791_b.jpg" itemprop="contentUrl" data-size="1024x768">
<img src="https://farm6.staticflickr.com/5023/5578283926_822e5e5791_m.jpg" itemprop="thumbnail" alt="Image description" />
</a>
</figure>
</div>
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<div class="pswp__bg"></div>
<div class="pswp__scroll-wrap">
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
</template>
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.0/photoswipe.min.js"></script> <!-- photoswipe/photoswipe.min.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.0/photoswipe-ui-default.min.js"></script> <!-- photoswipe/photoswipe-ui-default.min.js -->
<script>
Polymer({
is: 'photo-album',
properties: {
items: {
type: Array,
notify: true,
}
},
ready: function() {
this.initPhotoSwipeFromDOM();
},
initPhotoSwipeFromDOM: function(){
var gallerySelector = this.$.gallery;
var parseThumbnailElements = function(el) {
var thumbElements = el.childNodes,
numNodes = thumbElements.length,
items = [],
figureEl,
linkEl,
size,
item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; // <figure> element
// include only element nodes
if(figureEl.nodeType !== 1) {
continue;
}
linkEl = figureEl.children[0]; // <a> element
size = linkEl.getAttribute('data-size').split('x');
// create slide object
item = {
src: linkEl.getAttribute('href'),
w: parseInt(size[0], 10),
h: parseInt(size[1], 10)
};
if(figureEl.children.length > 1) {
// <figcaption> content
item.title = figureEl.children[1].innerHTML;
}
if(linkEl.children.length > 0) {
// <img> thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute('src');
}
item.el = figureEl; // save link to element for getThumbBoundsFn
items.push(item);
}
return items;
};
// find nearest parent element
var closest = function closest(el, fn) {
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
};
// triggers when user clicks on thumbnail
var onThumbnailsClick = function(e) {
e = e || window.event;
e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide
var clickedListItem = closest(eTarget, function(el) {
return (el.tagName && el.tagName.toUpperCase() === 'FIGURE');
});
if(!clickedListItem) {
return;
}
// find index of clicked item by looping through all child nodes
// alternatively, you may define index via data- attribute
var clickedGallery = clickedListItem.parentNode,
childNodes = clickedListItem.parentNode.childNodes,
numChildNodes = childNodes.length,
nodeIndex = 0,
index;
for (var i = 0; i < numChildNodes; i++) {
if(childNodes[i].nodeType !== 1) {
continue;
}
if(childNodes[i] === clickedListItem) {
index = nodeIndex;
break;
}
nodeIndex++;
}
if(index >= 0) {
// open PhotoSwipe if valid index found
openPhotoSwipe( index, clickedGallery );
}
return false;
};
// parse picture index and gallery index from URL (#&pid=1&gid=2)
var photoswipeParseHash = function() {
var hash = window.location.hash.substring(1),
params = {};
if(hash.length < 5) {
return params;
}
var vars = hash.split('&');
for (var i = 0; i < vars.length; i++) {
if(!vars[i]) {
continue;
}
var pair = vars[i].split('=');
if(pair.length < 2) {
continue;
}
params[pair[0]] = pair[1];
}
if(params.gid) {
params.gid = parseInt(params.gid, 10);
}
return params;
};
var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {
var pswpElement = document.querySelectorAll('.pswp')[0],
gallery,
options,
items;
items = parseThumbnailElements(galleryElement);
// define options (if needed)
options = {
// define gallery index (for URL)
galleryUID: galleryElement.getAttribute('data-pswp-uid'),
getThumbBoundsFn: function(index) {
// See Options -> getThumbBoundsFn section of documentation for more info
var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
}
};
// PhotoSwipe opened from URL
if(fromURL) {
if(options.galleryPIDs) {
// parse real index when custom PIDs are used
// http://photoswipe.com/documentation/faq.html#custom-pid-in-url
for(var j = 0; j < items.length; j++) {
if(items[j].pid == index) {
options.index = j;
break;
}
}
} else {
// in URL indexes start from 1
options.index = parseInt(index, 10) - 1;
}
} else {
options.index = parseInt(index, 10);
}
// exit if index not found
if( isNaN(options.index) ) {
return;
}
options.showAnimationDuration = 0;
options.hideAnimationDuration = 0;
// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
// loop through all gallery elements and bind events
var galleryElements = this.$.gallery;
galleryElements.setAttribute('data-pswp-uid', 1);
galleryElements.onclick = onThumbnailsClick;
// Parse URL and open gallery if it contains #&pid=3&gid=1
var hashData = photoswipeParseHash();
if(hashData.pid && hashData.gid) {
openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true );
}
}
});
</script>
</dom-module>
It seems you're missing styles from photoswipe.css.