DeepSeek 助力 Vue3 開發:打造絲滑的懸浮按鈕(Floating Action Button)

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 💕

共同探索軟件研發!敬請關注【寶碼香車】
關注描述

csdngif標識

目錄

  • DeepSeek 助力 Vue3 開發:打造絲滑的懸浮按鈕(Floating Action Button)
    • 📚前言
    • 📚頁面效果
    • 📚指令輸入
      • 屬性定義
        • 1. 外觀相關
        • 2. 位置相關
        • 3. 交互相關
        • 4. 動畫相關
      • 事件定義
      • 其他
    • 📚think
      • 📘組件代碼
    • 📚代碼測試
    • 📚測試代碼正常跑通,附其他基本代碼
      • 📘編寫路由 src\router\index.js
      • 📘編寫展示入口 src\App.vue
    • 📚頁面效果
    • 📚相關文章


📚📗📕📘📖🕮💡📝🗂???🛠?💻🚀🎉🏗?🌐🖼?🔗📊👉🔖??🌟🔐??·正文開始??·🎥😊🎓📩😺🌈🤝🤖📜📋🔍?🧰?📄📢📈 🙋0??1??2??3??4??5??6??7??8??9??🔟🆗*??#??

DeepSeek 助力 Vue3 開發:打造絲滑的懸浮按鈕(Floating Action Button)

📚前言

DeepSeek 作為大語言模型領域的杰出代表,憑借其獨特的技術優勢、廣泛的應用場景和卓越的市場表現,在人工智能發展歷程中留下了濃墨重彩的一筆。

從技術特點來看,DeepSeek 融合了自然語言處理、機器學習與深度學習等前沿技術,采用了創新的架構和訓練方法,如混合專家(MoE)架構和 FP8 混合精度訓練技術,在性能、成本等方面展現出了顯著的優勢。與其他大模型相比,DeepSeek 在多項評測中表現出色,性能可與頂級閉源模型媲美,同時訓練成本和推理成本大幅降低,為大語言模型的發展提供了新的思路和方向。

📚頁面效果

 DeepSeek 助力 Vue3 開發:打造絲滑的懸浮按鈕(Floating Action Button)頁面效果

📚指令輸入

已經創建好了一個基于Vue3的組合式API的項目(Composition API),并能正常運行起來,請幫我用 Vue3的組合式API(Composition API) 生成一個 懸浮按鈕(Floating Action Button) 的功能組件,所有代碼都保存在components/FloatingActionButton 下的文件夾中。功能組件的script標簽中只有setup屬性,使用普通 JavaScript 實現,不使用TypeScript。
功能要有,如下屬性:

屬性定義

1. 外觀相關
  • icon
    • 說明:設置懸浮按鈕上顯示的圖標,可以是圖標庫的類名或者 SVG 圖標代碼。
    • 類型:字符串
    • 默認值:空字符串
  • color
    • 說明:設置按鈕的背景顏色。
    • 類型:字符串(CSS 顏色值)
    • 默認值:常見的主題色,如 #007bff
  • textColor
    • 說明:設置按鈕內文字或圖標的顏色。
    • 類型:字符串(CSS 顏色值)
    • 默認值#fff
  • size
    • 說明:設置按鈕的大小,如小、中、大。
    • 類型:字符串,可選值為 smallmediumlarge
    • 默認值medium
  • shape
    • 說明:設置按鈕的形狀,如圓形、方形等。
    • 類型:字符串,可選值為 circlesquare
    • 默認值circle
2. 位置相關
  • position
    • 說明:設置按鈕的懸浮位置,如右下角、左下角等。
    • 類型:字符串,可選值為 bottom-rightbottom-lefttop-righttop-left
    • 默認值bottom-right
  • offsetX
    • 說明:按鈕相對于默認位置在 X 軸上的偏移量。
    • 類型:數字
    • 默認值:0
  • offsetY
    • 說明:按鈕相對于默認位置在 Y 軸上的偏移量。
    • 類型:數字
    • 默認值:0
3. 交互相關
  • disabled
    • 說明:設置按鈕是否禁用。
    • 類型:布爾值
    • 默認值false
  • tooltip
    • 說明:設置鼠標懸停在按鈕上時顯示的提示信息。
    • 類型:字符串
    • 默認值:空字符串
4. 動畫相關
  • animate
    • 說明:設置按鈕是否開啟動畫效果,如淡入淡出、縮放等。
    • 類型:布爾值
    • 默認值true
  • animationType
    • 說明:設置動畫的類型。
    • 類型:字符串,可選值為 fadescale
    • 默認值fade

事件定義

  • click
    • 說明:當按鈕被點擊時觸發該事件,可用于執行特定的操作,如打開模態框、提交表單等。
    • 參數:無
  • mouseenter
    • 說明:當鼠標進入按鈕區域時觸發該事件,可用于顯示提示信息或執行一些動畫效果。
    • 參數:無
  • mouseleave
    • 說明:當鼠標離開按鈕區域時觸發該事件,可用于隱藏提示信息或恢復動畫效果。
    • 參數:無

其他

  • 可訪問性:為按鈕添加 aria-label 屬性,確保屏幕閱讀器能夠正確識別按鈕的功能;同時,為按鈕添加適當的焦點樣式,方便鍵盤操作。
  • 響應式設計:考慮按鈕在不同屏幕尺寸下的顯示效果,例如在小屏幕上調整按鈕的大小和位置。
  • 動畫優化:合理設置動畫的時長和緩動函數,避免動畫過于生硬或影響性能。
  • 嵌套使用:支持在按鈕內部嵌套其他組件,如 Badge 組件,以顯示額外的信息。
  • 事件代理:如果有多個懸浮按鈕,可以考慮使用事件代理來處理點擊事件,提高性能。

你有更好的建議也可以添加,要注明。組件定義好后給出5個及以上的調用示例。
下面是現有目錄
vueAndDeepseek/
├── src/ # 源代碼目錄
│ ├── assets/ # 靜態資源
│ │ ├── base.css
│ │ ├── main.css
│ │ └── logo.svg
│ ├── components/ # 組件目錄
│ │ ├── HelloWorld.vue
│ │ ├── TheWelcome.vue
│ │ ├── WelcomeItem.vue
│ │ ├── Progress/
│ │ │ └── Progress.vue
│ │ ├── Accordion/
│ │ ├── BackToTop/
│ │ ├── Card/
│ │ ├── InfiniteScroll/
│ │ ├── Notification/
│ │ ├── Timeline/
│ │ ├── Switch/
│ │ ├── Tabs/
│ │ ├── Sidebar/
│ │ ├── Breadcrumbs/
│ │ ├── MasonryLayout/
│ │ ├── Rating/
│ │ ├── ColorPicker/
│ │ ├── RightClickMenu/
│ │ ├── RangePicker/
│ │ ├── Navbar/
│ │ ├── FormValidation/
│ │ ├── CopyToClipboard/
│ │ ├── ClickAnimations/
│ │ ├── ThumbnailList/
│ │ ├── KeyboardShortcuts/
│ │ ├── CommentSystem/
│ │ ├── QRCode/
│ │ ├── RadioButton/
│ │ ├── Slider/
│ │ ├── ScrollAnimations/
│ │ ├── TextInput/
│ │ ├── Divider/
│ │ ├── Checkbox/
│ │ ├── TagInput/
│ │ ├── DropdownSelect/
│ │ ├── List/
│ │ ├── Header/
│ │ ├── Footer/
│ │ ├── Pagination/
│ │ ├── FloatingActionButton/
│ │ ├── DatePicker/
│ │ └── icons/
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── stores/ # Pinia 狀態管理
│ │ └── counter.js
│ ├── views/ # 頁面組件
│ │ ├── ProgressView.vue
│ │ ├── TabsView.vue
│ │ ├── SwitchView.vue
│ │ ├── TimelineView.vue
│ │ ├── NotificationView.vue
│ │ ├── CardView.vue
│ │ ├── InfiniteScrollView.vue
│ │ ├── BackToTopView.vue
│ │ ├── AccordionView.vue
│ │ ├── SidebarView.vue
│ │ ├── BreadcrumbsView.vue
│ │ ├── MasonryLayoutView.vue
│ │ ├── RatingView.vue
│ │ ├── ColorPickerView.vue
│ │ ├── RightClickMenuView.vue
│ │ ├── RangePickerView.vue
│ │ ├── NavbarView.vue
│ │ ├── FormValidationView.vue
│ │ ├── CopyToClipboardView.vue
│ │ ├── ClickAnimationsView.vue
│ │ ├── ThumbnailListView.vue
│ │ ├── KeyboardShortcutsView.vue
│ │ ├── CommentSystemView.vue
│ │ ├── QRCodeView.vue
│ │ ├── RadioButtonView.vue
│ │ ├── SliderView.vue
│ │ ├── ScrollAnimationsView.vue
│ │ ├── TextInputView.vue
│ │ ├── DividerView.vue
│ │ ├── CheckboxView.vue
│ │ ├── TagInputView.vue
│ │ ├── DropdownSelectView.vue
│ │ ├── ListView.vue
│ │ ├── HeaderView.vue
│ │ ├── FooterView.vue
│ │ ├── PaginationView.vue
│ │ ├── FloatingActionButtonView.vue
│ │ ├── DatePickerView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根組件
│ └── main.js # 應用入口
├── public/ # 公共資源目錄
├── index.html # HTML 模板
├── package.json # 項目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依賴包目錄

📚think

📘組件代碼

以下是按照您的要求創建的懸浮按鈕組件:

<!-- src/components/FloatingActionButton/FloatingActionButton.vue -->
<template><buttonclass="fab":class="[sizeClass,shapeClass,positionClass,animationClass,{ 'fab--disabled': disabled }]":style="{backgroundColor: color,color: textColor,...positionStyles}":disabled="disabled":aria-label="ariaLabel"@click="handleClick"@mouseenter="handleMouseEnter"@mouseleave="handleMouseLeave"><!-- 圖標顯示 --><div v-if="isSvg" class="fab-icon" v-html="icon"></div><i v-else-if="icon" class="fab-icon" :class="icon"></i><!-- 默認插槽 --><slot></slot><!-- 工具提示 --><span v-if="tooltip" class="fab-tooltip">{{ tooltip }}</span></button>
</template><script setup>
import { computed } from 'vue';const props = defineProps({// 外觀相關icon: { type: String, default: '' },color: { type: String, default: '#007bff' },textColor: { type: String, default: '#fff' },size: { type: String, default: 'medium',validator: v => ['small', 'medium', 'large'].includes(v)},shape: {type: String,default: 'circle',validator: v => ['circle', 'square'].includes(v)},// 位置相關position: {type: String,default: 'bottom-right',validator: v => ['bottom-right', 'bottom-left', 'top-right', 'top-left'].includes(v)},offsetX: { type: Number, default: 0 },offsetY: { type: Number, default: 0 },// 交互相關disabled: { type: Boolean, default: false },tooltip: { type: String, default: '' },// 動畫相關animate: { type: Boolean, default: true },animationType: {type: String,default: 'fade',validator: v => ['fade', 'scale'].includes(v)}
});const emit = defineEmits(['click', 'mouseenter', 'mouseleave']);// 計算屬性
const isSvg = computed(() => props.icon.startsWith('<svg'));
const ariaLabel = computed(() => props.tooltip || 'Floating Action Button');// 樣式類計算
const sizeClass = computed(() => `fab--${props.size}`);
const shapeClass = computed(() => `fab--${props.shape}`);
const positionClass = computed(() => `fab--${props.position.replace('-', '_')}`);
const animationClass = computed(() => props.animate ? `fab--animate-${props.animationType}` : ''
);// 位置樣式計算
const positionStyles = computed(() => {const [vertical, horizontal] = props.position.split('-');return {[vertical]: `${props.offsetY}px`,[horizontal]: `${props.offsetX}px`};
});// 事件處理
const handleClick = (e) => {if (!props.disabled) emit('click', e);
};
const handleMouseEnter = (e) => emit('mouseenter', e);
const handleMouseLeave = (e) => emit('mouseleave', e);
</script><style scoped>
.fab {position: fixed;display: flex;align-items: center;justify-content: center;border: none;cursor: pointer;transition: all 0.3s ease;box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);z-index: 999;
}/* 尺寸 */
.fab--small {width: 40px;height: 40px;font-size: 16px;
}
.fab--medium {width: 56px;height: 56px;font-size: 24px;
}
.fab--large {width: 64px;height: 64px;font-size: 32px;
}/* 形狀 */
.fab--circle { border-radius: 50%; }
.fab--square { border-radius: 8px; }/* 位置 */
.fab--bottom_right { bottom: 0; right: 0; }
.fab--bottom_left { bottom: 0; left: 0; }
.fab--top_right { top: 0; right: 0; }
.fab--top_left { top: 0; left: 0; }/* 動畫 */
.fab--animate-fade { opacity: 0.9; }
.fab--animate-fade:hover { opacity: 1; }
.fab--animate-scale { transform: scale(1); }
.fab--animate-scale:hover { transform: scale(1.1); }/* 禁用狀態 */
.fab--disabled {opacity: 0.6;cursor: not-allowed;filter: grayscale(0.5);
}/* 工具提示 */
.fab-tooltip {position: absolute;background: rgba(0, 0, 0, 0.8);color: white;padding: 6px 12px;border-radius: 4px;font-size: 12px;white-space: nowrap;pointer-events: none;opacity: 0;transition: opacity 0.2s;
}
.fab:hover .fab-tooltip {opacity: 1;
}
.fab--bottom_right .fab-tooltip { right: 100%; top: 50%; transform: translateY(-50%); margin-right: 8px; }
.fab--bottom_left .fab-tooltip { left: 100%; top: 50%; transform: translateY(-50%); margin-left: 8px; }
.fab--top_right .fab-tooltip { right: 100%; bottom: 50%; transform: translateY(50%); margin-right: 8px; }
.fab--top_left .fab-tooltip { left: 100%; bottom: 50%; transform: translateY(50%); margin-left: 8px; }/* 響應式 */
@media (max-width: 768px) {.fab--medium {width: 48px;height: 48px;font-size: 20px;}
}
</style>

以下是5個調用示例:

<!-- 基本用法 -->
<FloatingActionButtonicon="fas fa-plus"@click="handleAdd"
/><!-- 自定義顏色和位置 -->
<FloatingActionButtonicon="fas fa-share"color="#4CAF50"textColor="#ffffff"position="top-right":offsetX="20":offsetY="20"
/><!-- 方形大號按鈕 -->
<FloatingActionButtonicon="fas fa-download"size="large"shape="square"tooltip="下載文件"
/><!-- 禁用狀態 -->
<FloatingActionButtonicon="fas fa-gear":disabled="true"animation-type="scale"
/><!-- SVG 圖標 -->
<FloatingActionButton:icon="'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\"><path fill=\"currentColor\" d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>'"color="#FF4081"position="bottom-left"
/>

改進建議:

  1. 添加鍵盤導航支持(通過添加tabindex和keydown事件處理)
  2. 增加漣漪點擊動畫效果
  3. 支持自定義陰影樣式
  4. 添加點擊波紋效果
  5. 支持更多動畫類型(如rotate)
  6. 添加拖拽位置調整功能(通過draggable prop控制)
  7. 支持響應式位置(在不同屏幕尺寸下使用不同的位置)

您可以根據實際需求選擇是否添加這些改進功能。

📚代碼測試

運行正常,需要自己添加一個svg。

📚測試代碼正常跑通,附其他基本代碼

  • 添加路由
  • 頁面展示入口

📘編寫路由 src\router\index.js

\router\index.js

import { createRouter, createWebHistory } from 'vue-router'
import RightClickMenuView from '../views/RightClickMenuView.vue'
import RangePickerView from '../views/RangePickerView.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',name: 'progress',component:  () => import('../views/ProgressView.vue'),},{path: '/tabs',name: 'tabs',// route level code-splitting// this generates a separate chunk (About.[hash].js) for this route// which is lazy-loaded when the route is visited.// 標簽頁(Tabs)component: () => import('../views/TabsView.vue'),},{path: '/accordion',name: 'accordion',// 折疊面板(Accordion)component: () => import('../views/AccordionView.vue'),},{path: '/timeline',name: 'timeline',// 時間線(Timeline)component: () => import('../views/TimelineView.vue'),},{path: '/backToTop',name: 'backToTop',component: () => import('../views/BackToTopView.vue')},{path: '/notification',name: 'notification',component: () => import('../views/NotificationView.vue')},{path: '/card',name: 'card',component: () => import('../views/CardView.vue')},{path: '/infiniteScroll',name: 'infiniteScroll',component: () => import('../views/InfiniteScrollView.vue')},{path: '/switch',name: 'switch',component: () => import('../views/SwitchView.vue')},{path: '/sidebar',name: 'sidebar',component: () => import('../views/SidebarView.vue')},{path: '/breadcrumbs',name: 'breadcrumbs',component: () => import('../views/BreadcrumbsView.vue')},{path: '/masonryLayout',name: 'masonryLayout',component: () => import('../views/MasonryLayoutView.vue')},{path: '/rating',name: 'rating',component: () => import('../views/RatingView.vue')},{path: '/datePicker',name: 'datePicker',component: () => import('../views/DatePickerView.vue')},{path: '/colorPicker',name: 'colorPicker',component: () => import('../views/ColorPickerView.vue')},{path: '/rightClickMenu',name: 'rightClickMenu',component: RightClickMenuView},{path: '/rangePicker',name: 'rangePicker',component: () => import('../views/RangePickerView.vue')},{path: '/navbar',name: 'navbar',component: () => import('../views/NavbarView.vue')},{path: '/formValidation',name: 'formValidation',component: () => import('../views/FormValidationView.vue')},{path: '/copyToClipboard',name: 'copyToClipboard',component: () => import('../views/CopyToClipboardView.vue')},{path: '/clickAnimations',name: 'clickAnimations',component: () => import('../views/ClickAnimationsView.vue')},{path: '/thumbnailList',name: 'thumbnailList',component: () => import('../views/ThumbnailListView.vue')},{path: '/keyboardShortcuts',name: 'keyboardShortcuts',component: () => import('../views/KeyboardShortcutsView.vue')},{path: '/commentSystem',name: 'commentSystem',component: () => import('../views/CommentSystemView.vue')},{path: '/qRCode',name: 'qRCode',component: () => import('../views/QRCodeView.vue')},{path: '/radioButton',name: 'radioButton',component: () => import('../views/RadioButtonView.vue')},{path: '/slider',name: 'slider',component: () => import('../views/SliderView.vue')},{path: '/scrollAnimations',name: 'scrollAnimations',component: () => import('../views/ScrollAnimationsView.vue')},{path: '/textInputView',name: 'textInputView',component: () => import('../views/TextInputView.vue')},{path: '/divider',name: 'divider',component: () => import('../views/DividerView.vue')},{path: '/checkbox',name: 'checkbox',component: () => import('../views/CheckboxView.vue')},{path: '/tagInput',name: 'tagInput',component: () => import('../views/TagInputView.vue')},{path: '/dropdownSelect',name: 'dropdownSelect',component: () => import('../views/DropdownSelectView.vue')},{path: '/list',name: 'list',component: () => import('../views/ListView.vue')},{path: '/header',name: 'header',component: () => import('../views/HeaderView.vue')},{path: '/footer',name: 'footer',component: () => import('../views/FooterView.vue')},{path: '/pagination',name: 'pagination',component: () => import('../views/PaginationView.vue')},{path: '/floatingActionButton',name: 'floatingActionButton',component: () => import('../views/FloatingActionButtonView.vue')}],
})export default router

📘編寫展示入口 src\App.vue

 src\App.vue

<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
</script><template><header><img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" /><div class="wrapper"><HelloWorld msg="You did it!" /><nav><RouterLink to="/">Progress</RouterLink><RouterLink to="/tabs">Tabs</RouterLink><RouterLink to="/accordion">Accordion</RouterLink><RouterLink to="/timeline">Timeline</RouterLink><RouterLink to="/backToTop">BackToTop</RouterLink><RouterLink to="/notification">Notification</RouterLink><RouterLink to="/card">Card</RouterLink><RouterLink to="/infiniteScroll">InfiniteScroll</RouterLink><RouterLink to="/switch">Switch</RouterLink><RouterLink to="/sidebar">Sidebar</RouterLink><RouterLink to="/breadcrumbs">Breadcrumbs</RouterLink><RouterLink to="/masonryLayout">MasonryLayout</RouterLink><RouterLink to="/rating">Rating</RouterLink><RouterLink to="/datePicker">DatePicker</RouterLink><RouterLink to="/colorPicker">ColorPicker</RouterLink><RouterLink to="/rightClickMenu">RightClickMenu</RouterLink><RouterLink to="/rangePicker">RangePicker</RouterLink><RouterLink to="/navbar">Navbar</RouterLink><RouterLink to="/formValidation">FormValidation</RouterLink><RouterLink to="/copyToClipboard">CopyToClipboard</RouterLink><RouterLink to="/clickAnimations">ClickAnimations</RouterLink><RouterLink to="/thumbnailList">ThumbnailList</RouterLink><RouterLink to="/keyboardShortcuts">KeyboardShortcuts</RouterLink><RouterLink to="/commentSystem">CommentSystem</RouterLink><RouterLink to="/qRCode">QRCode</RouterLink><RouterLink to="/radioButton">RadioButton</RouterLink><RouterLink to="/slider">Slider</RouterLink><RouterLink to="/scrollAnimations">ScrollAnimations</RouterLink><RouterLink to="/textInputView">TextInput</RouterLink><RouterLink to="/divider">Divider</RouterLink><RouterLink to="/checkbox">Checkbox</RouterLink><RouterLink to="/tagInput">TagInput</RouterLink><RouterLink to="/dropdownSelect">DropdownSelect</RouterLink><RouterLink to="/list">List</RouterLink><RouterLink to="/header">Header</RouterLink><RouterLink to="/footer">Footer</RouterLink><RouterLink to="/pagination">Pagination</RouterLink><RouterLink to="/floatingActionButton">FloatingActionButton</RouterLink></nav></div></header><RouterView />
</template><style scoped>
header {line-height: 1.5;max-height: 100vh;
}.logo {display: block;margin: 0 auto 2rem;
}nav {width: 100%;font-size: 12px;text-align: center;margin-top: 2rem;
}nav a.router-link-exact-active {color: var(--color-text);
}nav a.router-link-exact-active:hover {background-color: transparent;
}nav a {display: inline-block;padding: 0 1rem;border-left: 1px solid var(--color-border);
}nav a:first-of-type {border: 0;
}@media (min-width: 1024px) {header {display: flex;place-items: center;padding-right: calc(var(--section-gap) / 2);}.logo {margin: 0 2rem 0 0;}header .wrapper {display: flex;place-items: flex-start;flex-wrap: wrap;}nav {text-align: left;margin-left: -1rem;font-size: 1rem;padding: 1rem 0;margin-top: 1rem;}
}
</style>

📚頁面效果

 DeepSeek 助力 Vue3 開發:打造絲滑的懸浮按鈕(Floating Action Button)頁面效果

📚相關文章

?

———— 相 關 文 章 ————

?

  1. DeepSeek 助力 Vue 開發:打造絲滑的右鍵菜單(RightClickMenu)https://blog.csdn.net/qq_33650655/article/details/145706658

  2. DeepSeek 助力 Vue 開發:打造絲滑的范圍選擇器(Range Picker)https://blog.csdn.net/qq_33650655/article/details/145713572

  3. DeepSeek 助力 Vue 開發:打造絲滑的導航欄(Navbar)https://blog.csdn.net/qq_33650655/article/details/145732421

  4. DeepSeek 助力 Vue 開發:打造絲滑的表單驗證(Form Validation)https://blog.csdn.net/qq_33650655/article/details/145735582

  5. DeepSeek 助力 Vue 開發:打造絲滑的復制到剪貼板(Copy to Clipboard)https://blog.csdn.net/qq_33650655/article/details/145739569

  6. DeepSeek 助力 Vue 開發:打造絲滑的點擊動畫(Click Animations)https://blog.csdn.net/qq_33650655/article/details/145766184

  7. DeepSeek 助力 Vue 開發:打造絲滑的縮略圖列表(Thumbnail List)https://blog.csdn.net/qq_33650655/article/details/145776679

  8. DeepSeek 助力 Vue 開發:打造絲滑的 鍵盤快捷鍵(Keyboard Shortcuts) https://blog.csdn.net/qq_33650655/article/details/145780227

  9. DeepSeek 助力 Vue 開發:打造絲滑的評論系統(Comment System)https://blog.csdn.net/qq_33650655/article/details/145781104

  10. DeepSeek 助力 Vue 開發:打造絲滑的二維碼生成(QR Code)https://blog.csdn.net/qq_33650655/article/details/145797928

  11. DeepSeek 助力 Vue 開發:打造絲滑的單選按鈕(Radio Button)https://blog.csdn.net/qq_33650655/article/details/145810620

  12. DeepSeek 助力 Vue 開發:打造絲滑的滑塊(Slider)https://blog.csdn.net/qq_33650655/article/details/145817161

  13. DeepSeek 助力 Vue 開發:打造絲滑的滾動動畫(Scroll Animations)https://blog.csdn.net/qq_33650655/article/details/145818571

  14. DeepSeek 助力 Vue 開發:打造絲滑的文本輸入框(Text Input)https://blog.csdn.net/qq_33650655/article/details/145837003

  15. DeepSeek 助力 Vue 開發:打造絲滑的分割線(Divider)https://blog.csdn.net/qq_33650655/article/details/145849100

  16. DeepSeek 助力 Vue 開發:打造絲滑的 復選框(Checkbox)https://blog.csdn.net/qq_33650655/article/details/145855695

  17. DeepSeek 助力 Vue3 開發:打造絲滑的標簽輸入(Tag Input)https://blog.csdn.net/qq_33650655/article/details/145858574

  18. DeepSeek 助力 Vue3 開發:打造絲滑的下拉選擇框(Dropdown Select)https://blog.csdn.net/qq_33650655/article/details/145861882

  19. DeepSeek 助力 Vue3 開發:打造絲滑的列表(List)https://blog.csdn.net/qq_33650655/article/details/145866384

  20. DeepSeek 助力 Vue3 開發:打造絲滑的頁眉(Header)https://blog.csdn.net/qq_33650655/article/details/145885122

  21. DeepSeek 助力 Vue3 開發:打造絲滑的頁腳(Footer)https://blog.csdn.net/qq_33650655/article/details/145886306

  22. DeepSeek 助力 Vue3 開發:打造絲滑的分頁(Pagination)https://blog.csdn.net/qq_33650655/article/details/145886824

到此這篇文章就介紹到這了,更多精彩內容請關注本人以前的文章或繼續瀏覽下面的文章,創作不易,如果能幫助到大家,希望大家多多支持寶碼香車~💕,若轉載本文,一定注明本文鏈接。


整理不易,點贊關注寶碼香車

更多專欄訂閱推薦:
👍 html+css+js 絢麗效果
💕 vue
?? Electron
?? js
📝 字符串
?? 時間對象(Date())操作

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896782.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896782.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896782.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【前端場景題】如何應對頁面請求接口的大規模并發問題

如何應對頁面請求接口的大規模并發問題&#xff0c;尤其是前端方面的解決方案&#xff0c;并且需要給出詳細的代碼解釋。首先&#xff0c;我需要仔細閱讀我搜索到的資料&#xff0c;找出相關的信息&#xff0c;然后綜合這些信息來形成答案。 首先看&#xff0c;它提到前端優化策…

360個人版和企業版的區別

功能方面 管理能力 個人版&#xff1a;主要用于單臺設備的安全防護&#xff0c;只能在單獨的電腦上進行安裝使用&#xff0c;無集中管理和監控其他設備的功能。企業版&#xff1a;可批量管理大量電腦&#xff0c;如公司的十臺、百臺甚至千臺電腦。管理員能通過管理控制臺對所有…

蘋果與小米破冰合作:iPhone 16e全面支持Find My網絡,跨生態互通實現技術性突破

2025年2月28日&#xff0c;蘋果公司正式宣布其中國區特供機型iPhone 16e全面接入Find My網絡升級版&#xff0c;并與小米旗艦機型15 Ultra實現跨平臺互聯互通。 核心功能升級 1. Find My網絡能力擴展 iPhone 16e搭載的Find My 3.0網絡支持亞米級定位&#xff08;誤差<1米…

Spring MVC 程序開發(1)

目錄 1、什么是 SpringMVC2、返回數據2.1、返回 JSON 對象2.2、請求轉發2.3、請求重定向2.4、自定義返回的內容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分別是什么&#xff1f;有什么關系&#xff1f; Servlet 是 java 官方定義的 web 開發的標準規范&#xff1b;Tomcat 是…

一鍵安裝Mysql部署腳本之Linux在線安裝Mysql,腳本化自動化執行服務器部署(附執行腳本下載)

相關鏈接 一鍵安裝Redis部署腳本之Linux在線安裝Redis一鍵安裝Mysql部署腳本之Linux在線安裝Mysql一鍵安裝JAVA部署腳本之Linux在線安裝JDK一鍵安裝Nginx部署腳本之Linux在線安裝NginxNavicat最新版(17)詳細安裝教程Xshell客戶端免費版無需注冊XFtp客戶端免費版無需注冊 前言…

1.2.2 使用Maven方式構建Spring Boot項目

本次實戰通過Maven方式構建了一個Spring Boot項目&#xff0c;實現了簡單的Web應用。首先&#xff0c;創建了Maven項目并設置好項目名稱、位置、構建系統和JDK等。接著&#xff0c;添加了Spring Boot的父項目依賴和web、thymeleaf起步依賴。然后&#xff0c;創建了項目啟動類He…

【愚公系列】《Python網絡爬蟲從入門到精通》037-文件的存取

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。近期榮譽2022年度…

C++:vector的push_back時間復雜度分析

引導示例 #include <iostream> #include <vector>int main() {std::vector<int> v;std::cout << v.capacity() << " ";int last 0;for (int i 1; i < 10; i) {v.push_back(1);std::cout << v.capacity() << " …

LeetCode 202. 快樂數 java題解

https://leetcode.cn/problems/happy-number/description/ 哈希表 class Solution {public boolean isHappy(int n) {if(n1) return true;HashSet<Integer> setnew HashSet<>();while(n!1&&!(set.contains(n))){//沒找到結果&#xff1b;沒有重復出現過se…

11.24 SpringMVC(1)@RequestMapping、@RestController、@RequestParam

一.RequestMapping("/user")//HTTP 請求方法既支持get也支持post&#xff0c;可表示為類路徑與方法路徑 二.RequestMapping(value "/m7", method {RequestMethod.POST, RequestMethod.GET}) value這個參數指定了請求的 URL 路徑。method 參數指定了允許…

解決npm run dev報錯

解決&#xff1a;Node.js 版本更新后與 OpenSSL 不兼容導致的npm報錯“Error: error:0308010C:digital envelope routines::unsupported” 方法一&#xff1a;更改系統環境變量方法二&#xff1a;更改項目環境變量方法三&#xff1a;更換 Node.js 版本方法四&#xff1a;升級依…

Django模型管理器/QuerySet 常見的方法

模型管理器/QuerySet 常見的方法 get([**kwargs]) 方法 用途&#xff1a;獲取滿足條件的唯一對象。參數&#xff1a;關鍵字參數&#xff0c;指定查詢條件。返回值&#xff1a;模型對象。異常&#xff1a;如果找到多個對象或未找到對象&#xff0c;將分別拋出 MultipleObjects…

爬蟲系列之【數據解析之JSON】《三》

目錄 前置知識 一、 json.loads()&#xff1a;JSON 轉 Python 數據 二、json.dump()&#xff1a;python數據 轉 json 并寫入文件 三、json.loads() &#xff1a;json 轉 python數據 四、json.load() &#xff1a;json 轉 python數據&#xff08;在文件操作中更方便&#xf…

Python核心技術,Django學習基礎入門教程(附環境安裝包)

文章目錄 前言1. 環境準備1.1Python安裝1.2選擇Python開發環境1.3 創建虛擬環境1.4 安裝 Django 2. 創建 Django 項目3. Django項目結構介紹4. 啟動開發服務器5. 創建 Django 應用6. 應用結構介紹7. 編寫視圖函數8. 配置 URL 映射9. 運行項目并訪問視圖10. 數據庫配置與模型創建…

功能豐富的自動化任務軟件zTasker_2.1.0_綠色版_屏蔽強制更新閃退

&#x1f680; zTasker 一鍵式效率倍增器使用指南 &#x1f64f; 致謝 首先感謝開發者提供如此高效的工具&#xff01; 軟件本身功能強大&#xff0c;但部分機制需特別注意&#xff01; &#x1f4d6; 軟件概述 zTasker 是一款通過自動化腳本/任務流實現效率飛躍的生產力工…

MFC中CMutex類和CSingleLock類,配合使用疑惑

在使用CMutex過程中&#xff0c;看到別人使用了CSingleLock類&#xff0c;想著明明CMutex已經可以實現線程同步了&#xff0c;為什么還有使用CSingleLock類呢&#xff1f; 在MFC中&#xff0c;雖然CMutex類本身可以實現線程同步&#xff0c;但通常會與CSingleLock類一起使用&am…

【最大半連通子圖——tarjan求最大連通分量,拓撲排序,樹形DP】

題目 分析 最大連通分量肯定是滿足半連通分量的要求&#xff0c;因此tarjan。 同時為了簡化圖&#xff0c;我們進行縮點&#xff0c;圖一定變為拓撲圖。 我們很容易看出&#xff0c;只要是一條不分叉的鏈&#xff0c;是滿足條件的。 于是我們按照拓撲序不斷樹形DP 建邊注意…

LabVIEW正弦信號處理:FFT與最小二乘擬合的參數提取

問題一&#xff1a;LabVIEW能否對采集的正弦力信號進行快速傅里葉變換&#xff08;FFT&#xff09;&#xff0c;并得到幅值和相位結果&#xff1f; 答案&#xff1a; 可以。LabVIEW通過內置信號處理工具包提供完整的FFT分析功能&#xff0c;具體實現如下&#xff1a; FFT分析流…

Nginx+PHP+MYSQL-Ubuntu在線安裝

在 Ubuntu 上配置 Nginx、PHP 和 MySQL 的步驟如下&#xff1a; 1. 更新系統包 首先&#xff0c;確保系統包是最新的&#xff1a; sudo apt update sudo apt upgrade2. 安裝 Nginx 安裝 Nginx&#xff1a; sudo apt install nginx啟動并啟用 Nginx 服務&#xff1a; sudo…

第002文-kali虛擬機安全與網絡配置

1、kali系統介紹 kali是一個基于Linux kernel的操作系統&#xff0c;由BackTrack(簡稱BT)發展而來。BackTrack是2006年推出的一個用于滲透測試及黑客攻防的專用平臺&#xff0c;基于Knoppix(linux的一個發行版)開發。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …