본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Ripple 물결 효과 지시자

원문 보기 위키 갱신

클릭 뒤에 물결 효과가 퍼지는 애니메이션을 만들어 주는 ripple 지시자예요.

출처: 문서

본문

물결 효과 지시자예요. 클릭한 뒤 물결이 퍼지는 동효과를 만들어 줘요.

언제 사용하나요?

v-ripple 지시자는 클릭 뒤에 물결 효과가 퍼지는 동효과를 만들고, 모든 블록 레벨 요소에 적용할 수 있어요.

주의: 블록 레벨 요소에만 적용할 수 있어요

기본 사용법

:::demo 사용자는 컴포넌트나 HTML 요소 어디에서든 v-ripple 지시자를 사용할 수 있어요. 기본적인 v-ripple 지시자 사용 예시로, v-ripple은 객체 하나를 받아요

<template>
  <d-row :gutter="50">
    <d-col :span="12">
      <div class="ripple-button">
        <div class="ripple-html-element" v-ripple="{ color: '#5e7ce0',duration: 300, delay: 300 }">HTML元素 中使用 v-ripple</div>
      </div>
    </d-col>
    <d-col :span="12">
      <div class="ripple-button">
        <div class="ripple-html-element" v-ripple="{ duration: 800 }">HTML元素 中使用 v-ripple</div>
      </div>
    </d-col>
  </d-row>
</template>
<style scoped>
.ripple-button {
  display: flex;
}
</style>

:::

색상 커스터마이즈

:::demo

<template>
  <ul class="demo-ripple">
    <li
      v-for="item in [
        { color: '#409EFF', text: '这是一条 Primary 涟漪' },
        { color: '#67C23A', text: '这是一条 Success 涟漪' },
        { color: '#E6A23C', text: '这是一条 Warning 涟漪' },
        { color: '#F56C6C', text: '这是一条 Danger 涟漪' },
        { color: '#909399', text: '这是一条 Info 涟漪' }
      ]"
      :style="{ color: item.color }"
    >
      <div class="ripple-change-text-color" v-ripple="{ duration: 300 }">
        {{ item.text }}
      </div>
    </li>
  </ul>
</template>
<style>
  .demo-ripple {
    list-style: none;
    padding-left: 0;
  }
</style>

:::

다른 컴포넌트에 적용하기

Button 컴포넌트

:::demo

<template>
  <div class="demo-spacing">
    <d-button variant="solid" v-ripple="{ duration: 300 }">Solid button</d-button>
    <d-button v-ripple="{ duration: 300 }">Secondary button</d-button>
    <d-button icon="add" title="Add" v-ripple="{ duration: 300 }"></d-button>
  </div>
</template>

:::

Card 컴포넌트

:::demo

<template>
  <d-card v-ripple="{ duration: 300 }" class="demo-card" :src="'https://devui.design/components/assets/image1.png'">
    <template #avatar>
      <d-avatar name="DevUI"></d-avatar>
    </template>
    <template #title>
      DEVUI Course
    </template>
    <template #subtitle class="icon">
      <d-icon name="company-member"></d-icon><span>DevUI</span>
    </template>
    <template #content>
      DEVUI is a free open-source and common solution for the front end of enterprise mid- and back-end products. Its design values are basedon...
    </template>
    <template #actions>
      <div class="card-block">
        <d-icon name="like"></d-icon ><span>12</span>
      </div>
      <div class="card-block">
        <d-icon name="star-o"></d-icon ><span>8</span>
      </div>
      <div class="card-block">
        <d-icon name="message"></d-icon ><span>8</span>
      </div>
    </template>
  </d-card>
</template>
<style lang="scss">
  .demo-card {
    width: 350px;
    cursor: pointer;
    transition:
      box-shadow .3s cubic-bezier(.645,.045,.355,1),
      transform .3s cubic-bezier(.645,.045,.355,1);
    
    &:hover {
      box-shadow: 0 4px 16px 0 rgba(0,0,0,.1);
      transform: translateY(-5px);
    }

    .card-block {
      margin-right: 16px;

      i {
        cursor: pointer;
        font-size: 16px;
        margin-right: 8px;
        vertical-align: middle;
      }

      i + span {
        vertical-align: middle;
      }
    }

    img {
      max-width: none;
    }

    .action-text {
      color: #8a8e99;
    }
  }
</style>

:::

Ripple 파라미터

파라미터 타입 기본값 설명
color string '#00000050' 선택, 기본값은 현재 텍스트 색
initial-opacity number 0.1 선택, 인터랙션 시작 시 투명도 크기
final-opacity number 0.1 선택, 인터랙션이 끝나기 전 길게 누를 때의 투명도 크기
duration number 400 선택, 지속 시간
easing string 'ease-out' 선택, 이징 애니메이션
delay number 75` 선택, debouceTime만큼 지연한 뒤 호출해요
disabled boolean false 선택, 물결 효과 비활성화

더 알아보기 (Learn more)

v-ripple은 컴포넌트를 새로 만들지 않고도 클릭 피드백을 얹을 수 있는 가벼운 지시자예요. 버튼·카드 같은 블록 레벨 요소에 duration과 color만 조정해서 붙이면 사용성이 한층 살아 있어 보여요.