фикс
This commit is contained in:
parent
df7166891c
commit
3e15bcfba5
@ -52,7 +52,6 @@
|
|||||||
@touchstart="index === 0 ? startTouch($event) : null"
|
@touchstart="index === 0 ? startTouch($event) : null"
|
||||||
@touchmove="index === 0 ? moveTouch($event) : null"
|
@touchmove="index === 0 ? moveTouch($event) : null"
|
||||||
@touchend="index === 0 ? endTouch($event) : null"
|
@touchend="index === 0 ? endTouch($event) : null"
|
||||||
@mousedown="index === 0 ? startDrag($event) : null"
|
|
||||||
>
|
>
|
||||||
<!-- Photo Section -->
|
<!-- Photo Section -->
|
||||||
<div class="card-photo-section">
|
<div class="card-photo-section">
|
||||||
@ -291,6 +290,8 @@ const prevPhoto = (userId) => {
|
|||||||
|
|
||||||
// Обработчики touch событий
|
// Обработчики touch событий
|
||||||
const startTouch = (event) => {
|
const startTouch = (event) => {
|
||||||
|
// Проверяем, что это действительно touch-событие, а не эмуляция мыши
|
||||||
|
if (event.touches && event.touches.length === 1) {
|
||||||
isPanning.value = true;
|
isPanning.value = true;
|
||||||
touchStartX.value = event.touches[0].clientX;
|
touchStartX.value = event.touches[0].clientX;
|
||||||
touchStartY.value = event.touches[0].clientY;
|
touchStartY.value = event.touches[0].clientY;
|
||||||
@ -298,10 +299,11 @@ const startTouch = (event) => {
|
|||||||
// Сбросить конечные точки
|
// Сбросить конечные точки
|
||||||
touchEndX.value = 0;
|
touchEndX.value = 0;
|
||||||
touchEndY.value = 0;
|
touchEndY.value = 0;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const moveTouch = (event) => {
|
const moveTouch = (event) => {
|
||||||
if (!isPanning.value || !touchStartX.value) return;
|
if (!isPanning.value || !touchStartX.value || !event.touches || event.touches.length !== 1) return;
|
||||||
|
|
||||||
const currentX = event.touches[0].clientX;
|
const currentX = event.touches[0].clientX;
|
||||||
const currentY = event.touches[0].clientY;
|
const currentY = event.touches[0].clientY;
|
||||||
@ -313,8 +315,8 @@ const moveTouch = (event) => {
|
|||||||
const diffX = currentX - touchStartX.value;
|
const diffX = currentX - touchStartX.value;
|
||||||
const diffY = currentY - touchStartY.value;
|
const diffY = currentY - touchStartY.value;
|
||||||
|
|
||||||
// Определяем направление свайпа для индикаторов
|
// Определяем направление свайпа для индикаторов только при значительном движении
|
||||||
if (Math.abs(diffX) > Math.abs(diffY)) {
|
if (Math.abs(diffX) > 10 && Math.abs(diffX) > Math.abs(diffY)) {
|
||||||
if (diffX > 20) {
|
if (diffX > 20) {
|
||||||
swipeDirection.value = 'right';
|
swipeDirection.value = 'right';
|
||||||
} else if (diffX < -20) {
|
} else if (diffX < -20) {
|
||||||
@ -341,6 +343,21 @@ const endTouch = (event) => {
|
|||||||
if (!isPanning.value) return;
|
if (!isPanning.value) return;
|
||||||
isPanning.value = false;
|
isPanning.value = false;
|
||||||
|
|
||||||
|
// Проверяем, что у нас есть валидные координаты
|
||||||
|
if (!touchEndX.value || !touchStartX.value) {
|
||||||
|
// Если координаты отсутствуют, просто сбрасываем состояние
|
||||||
|
cardStyle.value = {
|
||||||
|
transform: 'none',
|
||||||
|
transition: 'transform 0.3s ease'
|
||||||
|
};
|
||||||
|
swipeDirection.value = null;
|
||||||
|
touchStartX.value = 0;
|
||||||
|
touchStartY.value = 0;
|
||||||
|
touchEndX.value = 0;
|
||||||
|
touchEndY.value = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const diffX = touchEndX.value - touchStartX.value;
|
const diffX = touchEndX.value - touchStartX.value;
|
||||||
|
|
||||||
// Проверяем, достаточно ли было смещение для действия
|
// Проверяем, достаточно ли было смещение для действия
|
||||||
|
Loading…
x
Reference in New Issue
Block a user