Commit fcaec91e authored by luckyCao's avatar luckyCao Committed by Zhi Cun

Image: Fix shield the page when preview big image (#16796) (#16997)

* Image: Fix shield the page when preview big image

* refine

* Image:fix page scroll when use image-viewer by keyup and keydown

* add notes
parent 6ff305cb
<template> <template>
<transition name="viewer-fade"> <transition name="viewer-fade">
<div class="el-image-viewer__wrapper" :style="{ 'z-index': zIndex }"> <div tabindex="-1" ref="el-image-viewer__wrapper" class="el-image-viewer__wrapper" :style="{ 'z-index': zIndex }">
<div class="el-image-viewer__mask"></div> <div class="el-image-viewer__mask"></div>
<!-- CLOSE --> <!-- CLOSE -->
<span class="el-image-viewer__btn el-image-viewer__close" @click="hide"> <span class="el-image-viewer__btn el-image-viewer__close" @click="hide">
...@@ -294,6 +294,9 @@ export default { ...@@ -294,6 +294,9 @@ export default {
}, },
mounted() { mounted() {
this.deviceSupportInstall(); this.deviceSupportInstall();
// add tabindex then wrapper can be focusable via Javascript
// focus wrapper so arrow key can't cause inner scroll behavior underneath
this.$refs['el-image-viewer__wrapper'].focus();
} }
}; };
</script> </script>
...@@ -38,6 +38,8 @@ ...@@ -38,6 +38,8 @@
SCALE_DOWN: 'scale-down' SCALE_DOWN: 'scale-down'
}; };
let prevOverflow = '';
export default { export default {
name: 'ElImage', name: 'ElImage',
...@@ -215,9 +217,13 @@ ...@@ -215,9 +217,13 @@
} }
}, },
clickHandler() { clickHandler() {
// prevent body scroll
prevOverflow = document.body.style.overflow;
document.body.style.overflow = 'hidden';
this.showViewer = true; this.showViewer = true;
}, },
closeViewer() { closeViewer() {
document.body.style.overflow = prevOverflow;
this.showViewer = false; this.showViewer = false;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment