@AntonIvanov777

Как ограничить картинку в блоке, чтобы она не вылезала большее допустимых размеров?

Добрый день) У меня следующий вопрос. В блоке есть картинка, которая больше размеров блока, при передвижении картинки необходимо, чтобы границы картинки совпадали с границей блока и не появлялось пустых остступов.
Чтобы при прокрутке картинки она останавливалась до определенной границы. Не пойму как точно сделать это используя vue

611500d2d1fb3694933041.png
611500dfe6aba248901399.png
611500e9e6727134412882.png

Код следующий
<template lang="pug">
div
  div(
    ref="border1" 
    class="main-border"
    @mousedown="mousedown($event)"
    @mousemove="moveAt"
    @mouseup="mouseup"
    )
    img(
      ref="map"
      src="https://unsplash.it/500/300/?random&1"
    )
</template>

<script>



export default {
  name: 'Test',
  data() {
    return {
      left: 0,
      tp: 0,
      x: '',
      y: '',
      dragging: false
    }
  },
  methods: {
    mousedown (event) {
      event.preventDefault()
      this.x = event.pageX
      this.y = event.pageY
      this.dragging = true
      this.moveAt(event)  
    },
    moveAt (event) {
      if (this.dragging) {
        let block = this.$refs.map
        block.style.left = (this.left + event.pageX - this.x) + 'px'
        block.style.top = (this.tp + event.pageY - this.y) + 'px'
      }
    },
    mouseup () {
      this.dragging = false
      let block = this.$refs.map
      this.left = parseFloat(block.style.left)
      this.tp = parseFloat(block.style.top)
    }
  }
}
</script>

<style scoped lang="less">
.main-border {
  margin: auto;
  overflow: hidden;
  width: 500px;
  height: 300px;
  border: 1px solid #663333;
  position: relative;
}
.main-border img{
  height:  auto;
  width: 200%;
  position: absolute;
  left: 0;
  top: 0;
}
</style>
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы