Back to Top 按钮

Back to Top 按钮,具有 Neumorphic 设计、单色配色方案和深色模式支持。使用 Tailwind CSS。

预览

HTML 代码

<template>
  <button
    :class="[
      'fixed bottom-6 right-6 p-4 rounded-full shadow-lg transition-all duration-300',
      'bg-gray-200 text-gray-700',
      'dark:bg-gray-700 dark:text-gray-200 dark:shadow-lg-dark',
      'hover:shadow-xl hover:-translate-y-1',
      'dark:hover:shadow-xl-dark dark:hover:-translate-y-1',
    ]"
    @click="scrollToTop"
    v-show="isVisible"
  >
    <svg
      xmlns="http://www.w3.org/2000/svg"
      class="h-6 w-6"
      fill="none"
      viewBox="0 0 24 24"
      stroke="currentColor"
    >
      <path
        stroke-linecap="round"
        stroke-linejoin="round"
        stroke-width="2"
        d="M5 10l7-7m0 0l7 7m-7-7v18"
      />
    </svg>
  </button>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue';

const isVisible = ref(false);

const scrollToTop = () => {
  window.scrollTo({ top: 0, behavior: 'smooth' });
};

const handleScroll = () => {
  isVisible.value = window.scrollY > 100;
};

onMounted(() => {
  window.addEventListener('scroll', handleScroll);
});

onUnmounted(() => {
  window.removeEventListener('scroll', handleScroll);
});
</script>

<style scoped>
.shadow-lg {
  box-shadow: 7px 7px 14px #cbced1, -7px -7px 14px #ffffff;
}

.shadow-xl {
  box-shadow: 9px 9px 18px #cbced1, -9px -9px 18px #ffffff;
}

.dark .shadow-lg-dark {
  box-shadow: 7px 7px 14px #4a4a4a, -7px -7px 14px #626262;
}

.dark .shadow-xl-dark {
  box-shadow: 9px 9px 18px #4a4a4a, -9px -9px 18px #626262;
}
</style>

相关组件

Back to Top 按钮

一个简单而优雅的返回顶部按钮,固定在屏幕的右下角。具有微妙的柔和配色方案和平滑的悬停/聚焦微交互。该按钮包括响应式设计,内置深色模式支持。悬停时,该按钮会轻轻放大并更改背景颜色以提供视觉反馈。该组件仅使用 Tailwind CSS 类,无需 JavaScript。

打开

粗犷主义返回顶部按钮

返回顶部按钮组件,采用粗犷主义风格,三原色方案,并具有复杂的复杂性。响应式设计支持黑暗主题。不使用JavaScript。

打开

简约生动的返回顶部按钮

一个极简和平面设计的返回顶部按钮组件,色彩鲜艳,适合作品集网站。包含响应式设计和使用Tailwind CSS的暗模式支持。

打开