웹 프론트엔드 uni-app 유니앱에서 포커스를 잃지 않고 빈 공간을 클릭하는 문제에 대해 이야기해보겠습니다.

유니앱에서 포커스를 잃지 않고 빈 공간을 클릭하는 문제에 대해 이야기해보겠습니다.

Apr 23, 2023 am 09:09 AM

모바일 및 웹 터미널의 지속적인 개발로 인해 개발자의 사용 시나리오는 점점 더 다양해지고 있으며, 보다 효율적인 개발 도구 및 프레임워크를 지속적으로 찾고 있습니다. Uniapp은 여러 플랫폼을 통합하는 풀 스택 개발 도구입니다. 크로스 플랫폼 개발 분야에서의 역할. 개발 중에 우리는 종종 작은 문제에 직면하게 되는데, 예를 들어 유니앱 개발 시 포커스를 잃지 않고 빈 공간을 클릭하는 문제에 자주 직면하게 됩니다. 이 글에서는 이 문제를 해결하는 방법을 소개하겠습니다.

UniApp은 Vue.js 프레임워크를 기반으로 하는 크로스 플랫폼 개발 프레임워크로, DCloud(J. Lin)가 투자한 독립 개발팀에서 개발했으며, 코드 세트를 H5, iOS, Android 등으로 컴파일할 수 있습니다. 작은 프로그램, 앱, H5 등과 같은 다양한 애플리케이션 양식을 다시 작성하고 조정할 필요가 없습니다.

유니앱에서는 일반적으로 사용자 입력을 받기 위해 입력을 사용하는데, 기본적으로 입력 외부 영역을 클릭하면 입력이 포커스를 잃게 됩니다. 현재 클릭 이벤트는 입력 외부 요소에 직접 바인딩될 수 없습니다. 이벤트가 버블링되는 것을 방지하려면 vue에서 @click.stop 이벤트 수정자를 사용해야 합니다.

예를 들어 다음 코드는 포커스를 잃지 않고 빈 공간을 클릭하는 방법에 대한 간단한 예입니다.

<template>
  <div class="container">
    <input type="text" v-model="inputText" @blur="hideKeyboard" />
    <div class="content" @click.stop="hideKeyboard">点击空白区域</div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        inputText: '',
      };
    },
    methods: {
      hideKeyboard() {
        //模拟失去焦点操作
        document.activeElement.blur();
      },
    },
  };
</script>
로그인 후 복사

위 코드에서 @click.stop을 사용하면 이벤트가 버블링되는 것을 방지하여 입력이 중단되는 것을 방지할 수 있습니다. 빈 공간을 클릭하면 초점을 잃습니다.

hideKeyboard 메서드에서 초점이 맞지 않는 이벤트를 시뮬레이션해야 한다는 점에 유의해야 합니다. 이는 uniapp에서 입력 상자의 값을 업데이트하기 위해 흐림 이벤트를 사용하기 때문입니다. 실제로는 update:xxx 이벤트가 먼저 트리거되어 데이터를 업데이트한 다음, Blur 이벤트가 트리거되므로 목표를 달성하려면 out-of-focus 이벤트를 수동으로 시뮬레이션해야 합니다.

위는 유니앱을 이용하여 포커스를 잃지 않고 빈 공간을 클릭하는 방법입니다. 동시에 전체 페이지에서 터치 이벤트를 수신하여 다른 곳을 클릭할 때 초점을 잃을 수도 있습니다. 다음 코드는 터치 이벤트를 사용하여 이 기능을 구현하는 방법을 보여줍니다.

<template>
  <div class="container" @touchstart="handlePageTouchStart">
    <input type="text" v-model="inputText" @blur="hideKeyboard" />
    <div class="content" @click.stop="hideKeyboard">点击空白区域</div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        inputText: '',
      };
    },
    methods: {
      hideKeyboard() {
        //与之前方法相同,不再赘述
      },
      handlePageTouchStart(e) {
        if (document.activeElement.tagName == 'INPUT') {
          e.preventDefault();
          document.activeElement.blur();
        }
      },
    },
  };
</script>
로그인 후 복사

위 코드에서는 전체 페이지에 터치스타트 이벤트를 바인딩한 다음 현재 이벤트를 트리거하는 요소가 입력 요소인지 여부를 이벤트에서 확인합니다. 그렇다면 수동으로 해당 초점을 잃습니다.

요약

유니앱에서는 초점을 잃지 않고 빈 공간을 클릭하는 것이 일반적인 요구 사항입니다. @click.stop을 사용하고 터치 이벤트를 수신하면 이 문제를 쉽게 해결할 수 있습니다. 동시에 실제 개발에서는 더 나은 사용자 경험을 달성하기 위해 초점을 잃지 않고 빈 공간을 클릭하는 기능을 달성하기 위해 사용할 솔루션을 실제 상황에 따라 선택해야 합니다.

위 내용은 유니앱에서 포커스를 잃지 않고 빈 공간을 클릭하는 문제에 대해 이야기해보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

UNI-APP에서 로컬 스토리지를 어떻게 처리합니까? UNI-APP에서 로컬 스토리지를 어떻게 처리합니까? Mar 11, 2025 pm 07:12 PM

이 기사는 UNI-APP의 로컬 스토리지 API (uni.setStoragesYnc (), uni.getStoragesYnc () 및 해당 비동기 상대방)에 대해 자세히 설명하고 설명 키 사용, 데이터 크기 제한 및 JSON 구문 분석 처리와 같은 모범 사례를 강조합니다. 그것은 lo를 강조합니다

UniAPP 다운로드 파일 이름을 바꾸는 방법 UniAPP 다운로드 파일 이름을 바꾸는 방법 Mar 04, 2025 pm 03:43 PM

이 기사는 직접 API 지원이 부족하여 UniAPP에서 다운로드 된 파일을 바꾸기위한 해결 방법에 대해 자세히 설명합니다. Android/iOS에는 사후 다운로드 라이닝 용 기본 플러그인이 필요하고 H5 솔루션은 파일 이름을 제안하는 것으로 제한됩니다. 과정에는 시간이 포함됩니다

UnIAPP 다운로드로 파일 인코딩을 처리하는 방법 UnIAPP 다운로드로 파일 인코딩을 처리하는 방법 Mar 04, 2025 pm 03:32 PM

이 기사는 UniAPP 다운로드에서 파일 인코딩 문제를 다룹니다. 서버 측 컨텐츠 유형 헤더의 중요성과 이러한 헤더를 기반으로 클라이언트 측 디코딩에 JavaScript의 TextDecoder를 사용합니다. 공통 인코딩 프로브를위한 솔루션

Uni-App의 지리적 위치 API를 어떻게 사용합니까? Uni-App의 지리적 위치 API를 어떻게 사용합니까? Mar 11, 2025 pm 07:14 PM

이 기사는 Uni.getLocation ()에 중점을 둔 UNI-APP의 지리 위치 API에 대해 자세히 설명합니다. 잘못된 좌표 시스템 (GCJ02 vs. WGS84) 및 권한 문제와 같은 일반적인 함정을 다룹니다. 평균 판독 값 및 핸들링을 통해 위치 정확도 향상

UNI-APP에서 API 요청 및 데이터를 처리하려면 어떻게해야합니까? UNI-APP에서 API 요청 및 데이터를 처리하려면 어떻게해야합니까? Mar 11, 2025 pm 07:09 PM

이 기사는 UNI.Request 또는 Axios를 사용하여 UNI-APP 내에서 API 요청을 작성하고 보호합니다. JSON 응답 처리, 최상의 보안 관행 (HTTPS, 인증, 입력 검증), 문제 해결 장애 (네트워크 문제, CORS, S

Vuex 또는 Pinia를 사용하여 UNI-APP에서 상태를 어떻게 관리합니까? Vuex 또는 Pinia를 사용하여 UNI-APP에서 상태를 어떻게 관리합니까? Mar 11, 2025 pm 07:08 PM

이 기사는 UNI-APP의 국가 관리를 위해 Vuex와 Pinia를 비교합니다. Pinia의 단순성과 Vuex의 구조를 강조하는 기능, 구현 및 모범 사례를 자세히 설명합니다. 선택은 Pinia Suita와 함께 프로젝트 복잡성에 달려 있습니다

Uni-App의 소셜 공유 API를 어떻게 사용합니까? Uni-App의 소셜 공유 API를 어떻게 사용합니까? Mar 13, 2025 pm 06:30 PM

이 기사에는 Uni.share API를 사용하여 소셜 공유를 UNI-APP 프로젝트에 통합하는 방법에 대해 자세히 설명합니다. Share API, WeChat 및 Weibo와 같은 플랫폼에서 설정, 구성 및 테스트를 다룹니다.

자동 구성 요소 등록에 Uni-App의 EasyCom 기능을 어떻게 사용합니까? 자동 구성 요소 등록에 Uni-App의 EasyCom 기능을 어떻게 사용합니까? Mar 11, 2025 pm 07:11 PM

이 기사에서는 Uni-App의 Easycom 기능, 구성 요소 등록 자동화를 설명합니다. Autoscan 및 사용자 정의 구성 요소 매핑을 포함한 구성에 대해 자세히 설명하고, 보일러 플레이트 감소, 속도 향상 및 가독성 향상과 같은 이점을 강조 표시합니다.

See all articles