resize-img

2021-11-08 10:31:39 浏览数 (2)

代码语言:javascript复制
<template>
  <div id="app">
    <Check
      @click.native="toggleCheck"
      :check="ischeck"
      :text="ischeck.toString()"
    ></Check>

    <div id="div1">
      <img src="https://img.lookcss.com/ipv6.jpg" style="width:100%;height:100%" />
      <div id="resize-rb" @mousedown="dragToChangeImg"></div>
      
       <div class="sizetip" v-show="showtip">{{width.replace('px','')}} x {{height.replace('px','')}}</div>
    </div>
   
  </div>
</template>

<script>
import Check from "./components/Check.vue";

export default {
  name: "App",

  data() {
    return {
      ischeck: false,
      width:'111',
      height:'122',
      showtip:false
    };
  },
  components: {
    Check,
  },
  watch: {},
  mounted() {},
  methods: {
    toggleCheck: function () {
      this.ischeck = !this.ischeck;
      this.$refs.check = this.ischeck;
      console.log(this.ischeck);
    },
    dragToChangeImg: function (ev) {
      var that=this;
      var oDiv = document.getElementById("div1");
      var oDiv2 = document.getElementById("resize-rb");   
      var disX = ev.clientX - oDiv2.offsetLeft;
      var disY = ev.clientY - oDiv2.offsetTop;
      document.onmousemove = function (ev) {      
        oDiv.style.width = ev.clientX - disX   oDiv2.offsetWidth - 5   "px";
        oDiv.style.height = ev.clientY - disY   oDiv2.offsetHeight - 5  "px";
  
         that.width=oDiv.style.width;
         that.height=oDiv.style.height;
         that.showtip=true;
         
      };
      document.onmouseup = function () {
         that.showtip=false;
        document.onmousemove  = document.onmouseup  = null;
        document.onmousedown = null;
      };
    },
  },
};
</script>

<style>
#div1 {
  width: 200px;
  height: 200px;
  border:1px dashed #ddd;
  position: relative;
 
}
.sizetip{position: absolute;background: #2c3e50;color:#fff;border-radius: 4px;left:0;bottom:0;padding:2px 5px;font-size: 12px;}
#resize-rb{
  width: 10px;
  height: 10px;
  background-color: #fff;
  position: absolute;
  right:-5px;
  bottom:-5px;
  cursor: nwse-resize;
  border:1px solid #aaa;
  border-radius: 10px;
}
 
#div2 {
  width: 10px;
  height: 10px;
  background-color: #fff;
  position: absolute;
  right:-5px;
  bottom:-5px;
  cursor: nwse-resize;
  border:1px solid #aaa;
  border-radius: 10px;
}
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

0 人点赞