Skip to content

Commit c3ce560

Browse files
authored
Merge pull request #8 from ArtStepanyuk/rotation-implementation
added rotation option
2 parents e9f09b3 + 3aee4ec commit c3ce560

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

src/VuePictureSwipe.vue

+31-4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
<div class="pswp__top-bar">
2828
<div class="pswp__counter"></div>
2929
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
30+
31+
<span class="rotation-wrapper">
32+
<i class="material-icons" v-if=options.rotationOn @click="rotate(-90)">rotate_left</i>
33+
<i class="material-icons" v-if=options.rotationOn @click="rotate(90)">rotate_right</i>
34+
</span>
35+
3036
<button class="pswp__button pswp__button--share" title="Share"></button>
3137
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
3238
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
@@ -41,9 +47,9 @@
4147
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
4248
<div class="pswp__share-tooltip"></div>
4349
</div>
44-
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
50+
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)" @click='resetAngle'>
4551
</button>
46-
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
52+
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)" @click='resetAngle'>
4753
</button>
4854
<div class="pswp__caption">
4955
<div class="pswp__caption__center"></div>
@@ -85,7 +91,9 @@
8591
}
8692
},
8793
data() {
88-
return {};
94+
return {
95+
angle: 0
96+
};
8997
},
9098
mounted() {
9199
let that = this;
@@ -292,12 +300,31 @@
292300
293301
initPhotoSwipeFromDOM('.my-gallery');
294302
303+
},
304+
methods: {
305+
rotate: function(newAngle) {
306+
this.angle = this.angle + newAngle
307+
this.$el.querySelectorAll('.pswp__img').forEach(i => i.style.transform = `rotate(${this.angle}deg)`)
308+
},
309+
resetAngle: function() {
310+
this.angle = 0
311+
this.$el.querySelectorAll('.pswp__img').forEach(i => i.style.transform = `rotate(${this.angle}deg)`)
312+
},
295313
}
296314
}
297315
</script>
298316
<style>
317+
@import "https://fonts.googleapis.com/icon?family=Material+Icons";
318+
.pswp__top-bar {
319+
text-align: right;
320+
}
321+
.rotation-wrapper {
322+
color: white;
323+
position: relative;
324+
top: 10px;
325+
}
299326
figure {
300327
display: inline;
301328
margin: 5px;
302329
}
303-
</style>
330+
</style>

0 commit comments

Comments
 (0)