Создайте привязку класса для координат, которая возвращает значение underlineClass
, если выполнены требования к радиусу:
<span :class="coordsClass">{{coordinates.x}},{{coordinates.y}}</span>
. Вычисленный проверяет, находятся ли текущие x
и y
в пределах границы радиуса и, если это так, возвращает имя класса (иначе имя класса не возвращается):
computed: {
coordsClass() {
const x = this.coordinates.x;
const y = this.coordinates.y;
const xO = this.origin.x;
const yO = this.origin.y;
if ( x >= xO - this.radius && x <= xO + this.radius
&& y >= yO - this.radius && y <= yO + this.radius ) {
return this.underlineClass;
}
}
Используйте radius
и origin
, объявленные в data
:
data() {
return {
... // Other data
origin: {
x: 0,
y: 0
},
radius: 20 // Size of radius in pixels
}
}
Рассчитайте origin
, когда компонент смонтирован:
mounted() {
this.origin.x = this.$el.clientWidth / 2;
this.origin.y = this.$el.clientHeight / 2;
}
Вот демоверсия