Skip to content

Commit 695bdf3

Browse files
committed
build: release 1.3.2
1 parent 05d1560 commit 695bdf3

13 files changed

+1333
-698
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## 1.3.2 (Jan 24, 2019)
4+
5+
- Fix `Document not active` error when call the `exit` method.
6+
- Improve wheel event listening for better performance (#102).
7+
38
## 1.3.1 (Dec 9, 2018)
49

510
- Emulate click (single tap) and double click (double tap) in touch devices to support backdrop and image zooming (#210).

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Viewer.js
22

3-
[![Build Status](https://travis-ci.org/fengyuanchen/viewerjs.svg)](https://travis-ci.org/fengyuanchen/viewerjs) [![Downloads](https://img.shields.io/npm/dm/viewerjs.svg)](https://www.npmjs.com/package/viewerjs) [![Version](https://img.shields.io/npm/v/viewerjs.svg)](https://www.npmjs.com/package/viewerjs) [![Donate on Patreon](https://img.shields.io/badge/donate-on%20patreon-fa7664.svg)](https://www.patreon.com/chenfengyuan)
3+
[![Build Status](https://img.shields.io/travis/fengyuanchen/viewerjs.svg)](https://travis-ci.org/fengyuanchen/viewerjs) [![Downloads](https://img.shields.io/npm/dm/viewerjs.svg)](https://www.npmjs.com/package/viewerjs) [![Version](https://img.shields.io/npm/v/viewerjs.svg)](https://www.npmjs.com/package/viewerjs) [![Donate on Patreon](https://img.shields.io/badge/donate-on%20patreon-fa7664.svg)](https://www.patreon.com/chenfengyuan)
44

55
> JavaScript image viewer.
66

dist/viewer.common.js

+29-21
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/*!
2-
* Viewer.js v1.3.1
2+
* Viewer.js v1.3.2
33
* https://fengyuanchen.github.io/viewerjs
44
*
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2018-12-09T07:48:29.436Z
8+
* Date: 2019-01-24T11:01:33.473Z
99
*/
1010

1111
'use strict';
@@ -294,7 +294,7 @@ var EVENT_SHOWN = 'shown';
294294
var EVENT_TRANSITION_END = 'transitionend';
295295
var EVENT_VIEW = 'view';
296296
var EVENT_VIEWED = 'viewed';
297-
var EVENT_WHEEL = 'wheel mousewheel DOMMouseScroll';
297+
var EVENT_WHEEL = 'wheel';
298298
var EVENT_ZOOM = 'zoom';
299299
var EVENT_ZOOMED = 'zoomed'; // Data keys
300300

@@ -1085,6 +1085,7 @@ var render = {
10851085
setStyle(image, assign({
10861086
width: imageData.width,
10871087
height: imageData.height,
1088+
// XXX: Not to use translateX/Y to avoid image shaking when zooming
10881089
marginLeft: imageData.left,
10891090
marginTop: imageData.top
10901091
}, getTransforms(imageData)));
@@ -1131,7 +1132,10 @@ var events = {
11311132
canvas = this.canvas;
11321133
var document = this.element.ownerDocument;
11331134
addListener(viewer, EVENT_CLICK, this.onClick = this.click.bind(this));
1134-
addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this));
1135+
addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {
1136+
passive: false,
1137+
capture: true
1138+
});
11351139
addListener(viewer, EVENT_DRAG_START, this.onDragStart = this.dragstart.bind(this));
11361140
addListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown = this.pointerdown.bind(this));
11371141
addListener(document, EVENT_POINTER_MOVE, this.onPointerMove = this.pointermove.bind(this));
@@ -1149,7 +1153,10 @@ var events = {
11491153
canvas = this.canvas;
11501154
var document = this.element.ownerDocument;
11511155
removeListener(viewer, EVENT_CLICK, this.onClick);
1152-
removeListener(viewer, EVENT_WHEEL, this.onWheel);
1156+
removeListener(viewer, EVENT_WHEEL, this.onWheel, {
1157+
passive: false,
1158+
capture: true
1159+
});
11531160
removeListener(viewer, EVENT_DRAG_START, this.onDragStart);
11541161
removeListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown);
11551162
removeListener(document, EVENT_POINTER_MOVE, this.onPointerMove);
@@ -1418,9 +1425,9 @@ var handlers = {
14181425
var buttons = event.buttons,
14191426
button = event.button;
14201427

1421-
if (!this.viewed || this.showing || this.viewing || this.hiding // No primary button (usually the left button)
1422-
// Note: Touch events does not contain `buttons` and `button` properties
1423-
|| isNumber(buttons) && buttons > 1 || isNumber(button) && button > 0 // Open context menu
1428+
if (!this.viewed || this.showing || this.viewing || this.hiding // No primary button (Usually the left button)
1429+
// Note that touch events have no `buttons` or `button` property
1430+
|| isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu
14241431
|| event.ctrlKey) {
14251432
return;
14261433
} // Prevent default behaviours as page zooming in touch devices.
@@ -1549,7 +1556,7 @@ var handlers = {
15491556
}
15501557

15511558
if (this.played) {
1552-
if (this.options.fullscreen && this.fulled && !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
1559+
if (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
15531560
this.stop();
15541561
return;
15551562
}
@@ -2596,32 +2603,33 @@ var others = {
25962603
requestFullscreen: function requestFullscreen() {
25972604
var document = this.element.ownerDocument;
25982605

2599-
if (this.fulled && !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
2600-
var documentElement = document.documentElement;
2606+
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
2607+
var documentElement = document.documentElement; // Element.requestFullscreen()
26012608

26022609
if (documentElement.requestFullscreen) {
26032610
documentElement.requestFullscreen();
2604-
} else if (documentElement.msRequestFullscreen) {
2605-
documentElement.msRequestFullscreen();
2606-
} else if (documentElement.mozRequestFullScreen) {
2607-
documentElement.mozRequestFullScreen();
26082611
} else if (documentElement.webkitRequestFullscreen) {
26092612
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
2613+
} else if (documentElement.mozRequestFullScreen) {
2614+
documentElement.mozRequestFullScreen();
2615+
} else if (documentElement.msRequestFullscreen) {
2616+
documentElement.msRequestFullscreen();
26102617
}
26112618
}
26122619
},
26132620
exitFullscreen: function exitFullscreen() {
2614-
if (this.fulled) {
2615-
var document = this.element.ownerDocument;
2621+
var document = this.element.ownerDocument;
26162622

2623+
if (this.fulled && (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
2624+
// Document.exitFullscreen()
26172625
if (document.exitFullscreen) {
26182626
document.exitFullscreen();
2619-
} else if (document.msExitFullscreen) {
2620-
document.msExitFullscreen();
2621-
} else if (document.mozCancelFullScreen) {
2622-
document.mozCancelFullScreen();
26232627
} else if (document.webkitExitFullscreen) {
26242628
document.webkitExitFullscreen();
2629+
} else if (document.mozCancelFullScreen) {
2630+
document.mozCancelFullScreen();
2631+
} else if (document.msExitFullscreen) {
2632+
document.msExitFullscreen();
26252633
}
26262634
}
26272635
},

dist/viewer.css

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/*!
2-
* Viewer.js v1.3.1
2+
* Viewer.js v1.3.2
33
* https://fengyuanchen.github.io/viewerjs
44
*
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2018-12-09T07:48:26.506Z
8+
* Date: 2019-01-24T11:01:30.299Z
99
*/
1010

1111
.viewer-zoom-in::before,

dist/viewer.esm.js

+29-21
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/*!
2-
* Viewer.js v1.3.1
2+
* Viewer.js v1.3.2
33
* https://fengyuanchen.github.io/viewerjs
44
*
55
* Copyright 2015-present Chen Fengyuan
66
* Released under the MIT license
77
*
8-
* Date: 2018-12-09T07:48:29.436Z
8+
* Date: 2019-01-24T11:01:33.473Z
99
*/
1010

1111
function _typeof(obj) {
@@ -292,7 +292,7 @@ var EVENT_SHOWN = 'shown';
292292
var EVENT_TRANSITION_END = 'transitionend';
293293
var EVENT_VIEW = 'view';
294294
var EVENT_VIEWED = 'viewed';
295-
var EVENT_WHEEL = 'wheel mousewheel DOMMouseScroll';
295+
var EVENT_WHEEL = 'wheel';
296296
var EVENT_ZOOM = 'zoom';
297297
var EVENT_ZOOMED = 'zoomed'; // Data keys
298298

@@ -1083,6 +1083,7 @@ var render = {
10831083
setStyle(image, assign({
10841084
width: imageData.width,
10851085
height: imageData.height,
1086+
// XXX: Not to use translateX/Y to avoid image shaking when zooming
10861087
marginLeft: imageData.left,
10871088
marginTop: imageData.top
10881089
}, getTransforms(imageData)));
@@ -1129,7 +1130,10 @@ var events = {
11291130
canvas = this.canvas;
11301131
var document = this.element.ownerDocument;
11311132
addListener(viewer, EVENT_CLICK, this.onClick = this.click.bind(this));
1132-
addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this));
1133+
addListener(viewer, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {
1134+
passive: false,
1135+
capture: true
1136+
});
11331137
addListener(viewer, EVENT_DRAG_START, this.onDragStart = this.dragstart.bind(this));
11341138
addListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown = this.pointerdown.bind(this));
11351139
addListener(document, EVENT_POINTER_MOVE, this.onPointerMove = this.pointermove.bind(this));
@@ -1147,7 +1151,10 @@ var events = {
11471151
canvas = this.canvas;
11481152
var document = this.element.ownerDocument;
11491153
removeListener(viewer, EVENT_CLICK, this.onClick);
1150-
removeListener(viewer, EVENT_WHEEL, this.onWheel);
1154+
removeListener(viewer, EVENT_WHEEL, this.onWheel, {
1155+
passive: false,
1156+
capture: true
1157+
});
11511158
removeListener(viewer, EVENT_DRAG_START, this.onDragStart);
11521159
removeListener(canvas, EVENT_POINTER_DOWN, this.onPointerDown);
11531160
removeListener(document, EVENT_POINTER_MOVE, this.onPointerMove);
@@ -1416,9 +1423,9 @@ var handlers = {
14161423
var buttons = event.buttons,
14171424
button = event.button;
14181425

1419-
if (!this.viewed || this.showing || this.viewing || this.hiding // No primary button (usually the left button)
1420-
// Note: Touch events does not contain `buttons` and `button` properties
1421-
|| isNumber(buttons) && buttons > 1 || isNumber(button) && button > 0 // Open context menu
1426+
if (!this.viewed || this.showing || this.viewing || this.hiding // No primary button (Usually the left button)
1427+
// Note that touch events have no `buttons` or `button` property
1428+
|| isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu
14221429
|| event.ctrlKey) {
14231430
return;
14241431
} // Prevent default behaviours as page zooming in touch devices.
@@ -1547,7 +1554,7 @@ var handlers = {
15471554
}
15481555

15491556
if (this.played) {
1550-
if (this.options.fullscreen && this.fulled && !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
1557+
if (this.options.fullscreen && this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
15511558
this.stop();
15521559
return;
15531560
}
@@ -2594,32 +2601,33 @@ var others = {
25942601
requestFullscreen: function requestFullscreen() {
25952602
var document = this.element.ownerDocument;
25962603

2597-
if (this.fulled && !document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
2598-
var documentElement = document.documentElement;
2604+
if (this.fulled && !(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
2605+
var documentElement = document.documentElement; // Element.requestFullscreen()
25992606

26002607
if (documentElement.requestFullscreen) {
26012608
documentElement.requestFullscreen();
2602-
} else if (documentElement.msRequestFullscreen) {
2603-
documentElement.msRequestFullscreen();
2604-
} else if (documentElement.mozRequestFullScreen) {
2605-
documentElement.mozRequestFullScreen();
26062609
} else if (documentElement.webkitRequestFullscreen) {
26072610
documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
2611+
} else if (documentElement.mozRequestFullScreen) {
2612+
documentElement.mozRequestFullScreen();
2613+
} else if (documentElement.msRequestFullscreen) {
2614+
documentElement.msRequestFullscreen();
26082615
}
26092616
}
26102617
},
26112618
exitFullscreen: function exitFullscreen() {
2612-
if (this.fulled) {
2613-
var document = this.element.ownerDocument;
2619+
var document = this.element.ownerDocument;
26142620

2621+
if (this.fulled && (document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement)) {
2622+
// Document.exitFullscreen()
26152623
if (document.exitFullscreen) {
26162624
document.exitFullscreen();
2617-
} else if (document.msExitFullscreen) {
2618-
document.msExitFullscreen();
2619-
} else if (document.mozCancelFullScreen) {
2620-
document.mozCancelFullScreen();
26212625
} else if (document.webkitExitFullscreen) {
26222626
document.webkitExitFullscreen();
2627+
} else if (document.mozCancelFullScreen) {
2628+
document.mozCancelFullScreen();
2629+
} else if (document.msExitFullscreen) {
2630+
document.msExitFullscreen();
26232631
}
26242632
}
26252633
},

0 commit comments

Comments
 (0)