Skip to content

Commit 90cc57c

Browse files
committed
修正open函数的BUG
1 parent 464789c commit 90cc57c

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ imageViewer.open();
6262

6363
## 内置API
6464
ImageViewer类的实例拥有以下可用的API函数:
65-
- `open`:初始化图片预览组件并且显示;
65+
- `open`:初始化图片预览组件并且显示,入参为想要展示的图片所在数组下标
6666
- `close`:关闭图片预览组件;
6767
- `destroy`:销毁图片预览组件;
6868
- `setImageOption`:设置图片数据,第一个入参为图片数组,第二个入参为开始预览的第一张图片所在数组下标;

demo/index.html

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,21 @@
77
<style>
88
html, body, .container {
99
height: 100%;
10+
margin: 0;
11+
overflow-y: scroll;
12+
}
13+
14+
.img-list {
15+
padding: 10px;
16+
}
17+
18+
.img-list p {
1019
overflow: hidden;
11-
margin: 0px;
20+
}
21+
22+
.img-list p img {
23+
max-width: 100%;
24+
max-height: 100%;
1225
}
1326

1427
#close {
@@ -26,20 +39,23 @@
2639
</head>
2740
<body>
2841
<div class="container">
29-
<h1>Hello, this is an image viewer.</h1>
30-
<p id="open">打开</p>
42+
<div class="img-list">
43+
<p><img src="images/2.jpg" data-index="0"></p>
44+
<p><img src="images/3.jpg" data-index="1"></p>
45+
<p><img src="images/4.jpg" data-index="2"></p>
46+
<p><img src="images/5.jpg" data-index="3"></p>
47+
<p><img src="images/6.jpg" data-index="4"></p>
48+
<p><img src="images/7.jpg" data-index="5"></p>
49+
<p><img src="images/8.jpg" data-index="6"></p>
50+
</div>
3151
</div>
3252
<script src="build/imageViewer.js"></script>
3353
<script type="text/javascript">
34-
var images1 = ['images/2.jpg'];
35-
var images2 = ['images/2.jpg', 'images/3.jpg'];
36-
var images3 = ['images/2.jpg', 'images/3.jpg', 'images/4.jpg'];
3754
var images = ['images/2.jpg', 'images/3.jpg', 'images/4.jpg', 'images/5.jpg', 'images/6.jpg', 'images/7.jpg', 'images/8.jpg'];
38-
var imageViewer = new ImageViewer(images3, {
55+
var imageViewer = new ImageViewer(images, {
3956
container: 'body',
4057
enableScale: true,
4158
startIndex: 0,
42-
loop: false,
4359
headerRender: function () {
4460
setTimeout(function () {
4561
document.getElementById('close').addEventListener('click', function () {
@@ -73,8 +89,8 @@ <h1>Hello, this is an image viewer.</h1>
7389
}
7490
});
7591

76-
document.getElementById('open').addEventListener('click', function () {
77-
imageViewer.open();
92+
document.getElementsByClassName('img-list')[0].addEventListener('click', function (event) {
93+
imageViewer.open(parseInt(event.target.getAttribute('data-index')));
7894
}, false);
7995
</script>
8096
</body>

src/core/imageViewer.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ class ImageViewer {
8080
item = this.itemList[i];
8181
this.viewers.push(new Viewer(this, item, this.width, this.height, i));
8282
}
83-
this.translateX = 0;
8483
this.swipeInByIndex(this.currentIndex);
8584
lock.createLock(LOCK_NAME);
8685
}
@@ -202,7 +201,8 @@ class ImageViewer {
202201
* 重置当前图片的缩放
203202
*/
204203
reset() {
205-
this.viewers[1].init(this.displayIndex, true, null, false);
204+
let viewer = this.viewers[1];
205+
viewer.init(viewer.displayIndex, true, null, false);
206206
setTimeout(() => {
207207
lock.releaseLock(LOCK_NAME);
208208
}, 0);
@@ -278,6 +278,7 @@ class ImageViewer {
278278
swipeInByIndex(index) {
279279
if (!isNaN(index) && -1 < index && index < this.imagesLength) {
280280
this.currentIndex = index;
281+
this.translateX = 0;
281282
setTranslateStyle(this.bodyEl, 0, 0);
282283

283284
this.viewers = this.viewers.sort(function (a, b) {
@@ -313,12 +314,15 @@ class ImageViewer {
313314
}
314315
}
315316

316-
open() {
317+
open(index) {
318+
this.currentIndex = index === undefined ? this.currentIndex : index;
317319
if (!this.el) {
318320
//仅仅实例化,但尚未初始化
319321
this._create();
320322
this._init();
321323
this._bindEvent();
324+
} else {
325+
this.swipeInByIndex(this.currentIndex);
322326
}
323327
this.el.style.display = 'block';
324328
}

0 commit comments

Comments
 (0)