| | |
| | | if (!newVal) { |
| | | this.showTip = false; |
| | | this.tipMessage = ''; |
| | | this.removeKeyListener(); |
| | | } else { |
| | | this.$nextTick(() => { |
| | | this.addKeyListener(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | |
| | | showTipMessage(message) { |
| | | this.tipMessage = message; |
| | | this.showTip = true; |
| | | // 2秒后自动隐藏提示 |
| | | setTimeout(() => { |
| | | this.hideTip(); |
| | | }, 2000); |
| | |
| | | }, |
| | | handleError() { |
| | | console.error(`图片加载失败: ${this.currentUrl}`); |
| | | }, |
| | | |
| | | // 键盘事件处理 |
| | | handleKeydown(event) { |
| | | switch(event.key) { |
| | | case 'ArrowLeft': |
| | | event.preventDefault(); // 阻止默认行为 |
| | | this.goPrev(); |
| | | break; |
| | | case 'ArrowRight': |
| | | event.preventDefault(); |
| | | this.goNext(); |
| | | break; |
| | | case 'Escape': |
| | | event.preventDefault(); |
| | | this.close(); |
| | | break; |
| | | } |
| | | }, |
| | | addKeyListener() { |
| | | document.addEventListener('keydown', this.handleKeydown); |
| | | }, |
| | | removeKeyListener() { |
| | | document.removeEventListener('keydown', this.handleKeydown); |
| | | } |
| | | }, |
| | | mounted() { |
| | | if (this.visible) { |
| | | this.addKeyListener(); |
| | | } |
| | | }, |
| | | beforeUnmount() { |
| | | this.removeKeyListener(); |
| | | } |
| | | }; |
| | | </script> |