vue代码
<template> <div> {{screenWidth}} {{screeHeight}} <div v-for="(item, index) in book" :key="index"> <!-- 当从后台获取数据的时候可以进行替换 --> <!-- <img class="image" :src="item.bookUrlRank" :usemap="'#'+item.id" :style="{width: screenWidth+'px', height:screeHeight+'px'}" > --> <img class="image" :src="item.bookUrlRank" :usemap="'#'+item.id" style="width:750px, height:421px" > <!-- //图片热区 --> <map :name="item.id"> <div v-for="(ite, index) in item.audioLinks" :key="index"> <!-- <area shape="rect" target="_blank" alt="" :coords="ite.coord.split(',')[0]*(screenWidth/421)+','+ite.coord.split(',')[1]*(screeHeight/750)+','+ite.coord.split(',')[2]*(screenWidth/1890)+','+ite.coord.split(',')[3]*(screeHeight/3360)" @click="play(ite,index)" border="0" />--> <area shape="rect" target="_blank" alt :coords="ite.coord" @click="play(ite,index)" border="0" > </div> </map> </div> </div> </template> <script> import axios from "axios"; export default { data() { return { screenWidth: 0, //宽屏幕尺寸 screeHeight: 0, book: [ { id: 25, levels: "level1-1", bookUrl: "", bookUrlType: 4, bookUrlRank: "http://lya.ntgyou.cn/m/11128-22060Q644557.jpg", audioLinks: [ { coord: "1,1,350,421" }, { coord: "350,421,750,1" } ] } ] }; }, methods: { //图片热区的点击事件 play(ite, index) { alert("图片区域坐标:" + ite.coord); } }, //图片热区 mounted() { //屏幕尺寸变化就重新赋值 (this.screenWidth = document.documentElement.clientWidth), (this.screeHeight = document.documentElement.clientHeight), (window.onresize = () => { return (() => { this.screenWidth = document.documentElement.clientWidth; this.screeHeight = document.documentElement.clientHeight; })(); }); } }; </script> <style scoped> </style>
实现效果
标签:map,vue,documentElement,area,screeHeight,screenWidth,document,热区 From: https://www.cnblogs.com/xbinbin/p/17155763.html