exports.ids = [54];
exports.modules = {

/***/ 186:
/***/ (function(module, exports) {

// Exports
module.exports = {

};


/***/ }),

/***/ 207:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Zoom.vue?vue&type=template&id=5b247e95&scoped=true
var render = function render() {
  var _vm = this,
    _c = _vm._self._c;
  return _c('div', {
    staticClass: "spec-preview"
  }, [_c('el-image', {
    staticStyle: {
      "width": "100%",
      "height": "100%"
    },
    attrs: {
      "src": _vm.imgUrl,
      "alt": "",
      "fit": "cover"
    }
  }), _vm._ssrNode(" <div class=\"event\" data-v-5b247e95></div> <div class=\"mask\" data-v-5b247e95></div>")], 2);
};
var staticRenderFns = [];

// CONCATENATED MODULE: ./components/Zoom.vue?vue&type=template&id=5b247e95&scoped=true

// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Zoom.vue?vue&type=script&lang=js
/* harmony default export */ var Zoomvue_type_script_lang_js = ({
  name: "Zoom",
  props: {
    imgUrl: String
  },
  data() {
    return {};
  },
  methods: {
    handler(event) {
      let mask = this.$refs.mask;
      // let bigImg = this.$refs.big;
      // 遮罩层可移动的范围：鼠标的当前坐标到该元素的距离（左侧、顶部）减去 遮罩层宽、高的一半(遮罩层始终是一个以鼠标为中心的正方形)
      let left = event.offsetX - mask.offsetWidth / 2;
      let top = event.offsetY - mask.offsetHeight / 2;
      // 约束遮罩层可移动的范围
      if (left <= 0) left = 0;
      if (left >= mask.offsetWidth) left = mask.offsetWidth;
      if (top <= 0) top = 0;
      if (top >= mask.offsetHeight) top = mask.offsetHeight;

      // 修改元素的left|top属性值
      mask.style.left = left + "px";
      mask.style.top = top + "px";
      // bigImg.style.left = -2 * left + "px";
      // bigImg.style.top = -2 * top + "px";
      let obj = {};
      obj.left = left;
      obj.top = top;
      obj.bigShow = true;
      this.$emit("sendStyle", obj);
    },
    leave() {
      let obj = {};
      obj.left = 0;
      obj.top = 0;
      obj.bigShow = false;
      this.$emit("sendStyle", obj);
    }
  }
});
// CONCATENATED MODULE: ./components/Zoom.vue?vue&type=script&lang=js
 /* harmony default export */ var components_Zoomvue_type_script_lang_js = (Zoomvue_type_script_lang_js); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(2);

// CONCATENATED MODULE: ./components/Zoom.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(229)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_Zoomvue_type_script_lang_js,
  render,
  staticRenderFns,
  false,
  injectStyles,
  "5b247e95",
  "5a1b3161"
  
)

/* harmony default export */ var Zoom = __webpack_exports__["default"] = (component.exports);

/***/ }),

/***/ 229:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Zoom_vue_vue_type_style_index_0_id_5b247e95_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(186);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Zoom_vue_vue_type_style_index_0_id_5b247e95_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Zoom_vue_vue_type_style_index_0_id_5b247e95_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Zoom_vue_vue_type_style_index_0_id_5b247e95_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_0_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_sass_loader_dist_cjs_js_ref_7_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_Zoom_vue_vue_type_style_index_0_id_5b247e95_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ })

};;
//# sourceMappingURL=zoom.js.map