DeepSeek 助力 Vue 開發:打造絲滑的返回頂部按鈕(Back to Top)

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

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

csdngif標識

目錄

  • DeepSeek 助力 Vue 開發:打造絲滑的返回頂部按鈕(Back to Top)
    • 📚前言
    • 📚進入安裝好的DeepSeek
    • 📚頁面效果
    • 📚指令輸入
    • 📚think
      • 📘根據您的需求,我為您創建了一個BackToTop組件。以下是實現步驟和代碼:
      • 📘組件特性說明:
    • 📚代碼測試
    • 📚頁面效果
    • 📚自己部署 DeepSeek 安裝地址
    • 📚相關文章


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

DeepSeek 助力 Vue 開發:打造絲滑的返回頂部按鈕(Back to Top)

📚前言

2023 年 11 月 2 日:發布首個開源代碼大模型 DeepSeek Coder,支持多種編程語言的代碼生成、調試和數據分析任務。這一模型的發布,標志著 DeepSeek 在大語言模型領域邁出了重要的第一步。它為開發者提供了強大的代碼生成工具,能夠幫助開發者快速生成高質量的代碼,提高開發效率。同時,該模型的開源策略也吸引了眾多開發者的關注和參與,為 DeepSeek 在開源社區中積累了良好的口碑。

2024 年 5 月:發布第二代開源混合專家(MoE)模型 DeepSeek-V2,總參數達 2360 億,推理成本降至每百萬 token 僅 1 元人民幣。DeepSeek-V2 采用了創新的架構,例如注意力機制方面的 MLA(多頭潛在注意力)和前饋網絡方面的 DeepSeekMoE 架構等,以實現具有更高經濟性的訓練效果和更高效的推理。該模型的 API 定價僅為每百萬 tokens 輸入 1 元、輸出 2 元,價格僅為 GPT-4 Turbo 的百分之一,引發了中國 AI 大模型的價格戰。這一模型的發布,展示了 DeepSeek 在模型架構和成本控制方面的創新能力,使得大語言模型的應用成本大幅降低,為更多企業和開發者使用大語言模型提供了可能。

📚進入安裝好的DeepSeek

0基礎3步部署自己的DeepSeek安裝步驟

打開搭建好的DeepSeek應用。

DeepSeek應用

進入應用。

進入DeepSeek應用

📚頁面效果

頁面效果

📚指令輸入

功能要有
container(按鈕容器,支持輸入html,默認是一個↑箭頭,container居中顯示在按鈕中)
size(按鈕大小,類型是string,可選值是 small[20x20]px normal[40x40]px big[60x60]px)
right(控制其顯示位置,距離頁面右邊距, 類型 string,默認40px)
bottom(控制其顯示位置,距離頁面底部距離, 類型 string,默認40px)
下面是現有目錄
vueAndDeepseek/
├── src/ # 源代碼目錄
│ ├── assets/ # 靜態資源
│ │ ├── base.css
│ │ ├── main.css
│ │ └── logo.svg
│ ├── components/ # 組件目錄
│ │ ├── HelloWorld.vue
│ │ ├── TheWelcome.vue
│ │ ├── WelcomeItem.vue
│ │ ├── Progress/
│ │ │ └── Progress.vue
│ │ ├── Accordion/
│ │ ├── BackToTop/
│ │ ├── Timeline/
│ │ ├── Tabs/
│ │ └── icons/
│ ├── router/ # 路由配置
│ │ └── index.js
│ ├── stores/ # Pinia 狀態管理
│ │ └── counter.js
│ ├── views/ # 頁面組件
│ │ ├── ProgressView.vue
│ │ ├── TabsView.vue
│ │ ├── TimelineView.vue
│ │ ├── BackToTopView.vue
│ │ ├── AccordionView.vue
│ │ └── AboutView.vue
│ ├── App.vue # 根組件
│ └── main.js # 應用入口
├── public/ # 公共資源目錄
├── index.html # HTML 模板
├── package.json # 項目配置
├── vite.config.js # Vite 配置
└── node_modules/ # 依賴包目錄

📚think

好吧,我現在需要幫助用戶解決在他們的Vue項目中實現一個自定義按鈕容器的問題。根據用戶提供的信息,功能要求包括支持內聯HTML、默認顯示一個↑箭頭,并且容器要居中顯示在按鈕中。此外,還有size屬性來控制按鈕大小,分別是small、normal和big,對應的尺寸為20x20px、40x40px和60x60px。另外,right和bottom屬性可以控制按鈕距離頁面右邊和底部的距離,分別默認為40px。

首先,我需要明確用戶的項目結構,他們已經有一個 Vue 和 Nuxt 項目結構。主要關注點在components目錄下的自定義組件實現上。用戶可能已經有部分代碼,但需要補充或修正。

我應該從創建一個新的Vue組件開始,這個組件將是容器,名為ButtonContainer.vue。該組件需要接受 props,包括size、right、bottom和children(用于內聯的HTML內容)。

接下來,我會設計這個組件的模板結構。在模板中,我需要使用vue-iuion這個庫中的div作為容器,因為它可以在Flex布局中居中內容。設置類名,比如container,內部又有button-container來控制按鈕的位置。

然后,我需要處理size屬性,將其轉換為具體的px值,并應用到對應的樣式類上,比如使用sizes-classes:比如small對應 text-20、normal對應text-40,big對應text-60。同樣地,right和bottom屬性也要轉換成數值并作為CSS變量。

另外,我需要確保容器能夠居中顯示,所以可能會設置container的內邊距,并使用flexbox或grid布局來中心對齊內容。此外,還需處理不同size情況下的尺寸,比如small時,整個容器大小是20x20,而button-container則可能根據內容自動調整。

在樣式部分,我需要定義base.css和main.css,以支持這些樣式類。比如,設置button-container的內邊距,以及如何居中顯示。這可能涉及到position: absolute、right和bottom屬性的應用,并結合 viewport的位置來確定相對定位。

我還應該考慮在組件內部添加一些條件判斷,比如根據size的不同,選擇不同的文本大小。或者,更好的方式是將size映射到不同的類名,這樣可以避免在每個標簽上多次添加樣式。

最后,我需要確保用戶能夠正確地使用這個組件。比如,在其他Vue組件中導入并使用它,并傳遞所需的屬性。例如:

<TheWelcome>
<ButtonContainer :size="small" :right="40" :bottom="40">
<p>這是一個內聯的按鈕容器</p>
</ButtonContainer>
</TheWelcome>

可能需要注意的是,如果用戶沒有安裝vue-iuion庫,那么組件在運行時會報錯,因此我應該提醒他們確保安裝了必要的依賴。

總結一下,我需要創建一個組件,處理props,并通過樣式實現size、right和bottom的控制,同時確保內容居中顯示。接下來,我應該寫出詳細的步驟,并確保代碼部分正確無誤。

📘根據您的需求,我為您創建了一個BackToTop組件。以下是實現步驟和代碼:

  1. 創建組件文件
    components/BackToTop/BackToTop.vue 中添加:
<template><div class="back-to-top":style="positionStyle"@click="scrollToTop"><slot><div class="default-container"></div></slot></div>
</template><script setup>
import { computed } from 'vue';const props = defineProps({size: {type: String,default: 'normal',validator: (v) => ['small', 'normal', 'big'].includes(v)},right: {type: String,default: '40px'},bottom: {type: String,default: '40px'}
});const sizeMap = {small: '20px',normal: '40px',big: '60px'
};const positionStyle = computed(() => ({right: props.right,bottom: props.bottom,width: sizeMap[props.size],height: sizeMap[props.size]
}));const scrollToTop = () => {window.scrollTo({top: 0,behavior: 'smooth'});
};
</script><style scoped>
.back-to-top {position: fixed;display: flex;align-items: center;justify-content: center;cursor: pointer;background: #ffffff;border: 1px solid #e0e0e0;border-radius: 50%;box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);transition: transform 0.2s ease,box-shadow 0.2s ease;
}.back-to-top:hover {transform: translateY(-2px);box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}.default-container {font-size: 1.5em;font-weight: bold;user-select: none;
}
</style>
  1. 創建示例頁面
    views/BackToTopView.vue 中添加:
<template><div class="demo-container"><h1>返回頂部組件演示</h1><div class="scroll-content"><!-- 長內容用于滾動測試 --><div v-for="n in 100" :key="n">{{ n }}</div></div><!-- 默認樣式 --><BackToTop /><!-- 小尺寸 --><BackToTop size="small" bottom="100px" /><!-- 自定義位置和內容 --><BackToTop size="big"right="60px"bottom="120px"><div class="custom-content"><svg ...>自定義SVG圖標</svg></div></BackToTop></div>
</template><script setup>
import BackToTop from '@/components/BackToTop/BackToTop.vue';
</script><style scoped>
.scroll-content {height: 200vh;padding: 20px;background: linear-gradient(to bottom, #ffffff, #f0f0f0);
}.custom-content {display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;color: #2196f3;font-size: 24px;
}
</style>
  1. 配置路由
    router/index.js 中添加路由:
{path: '/back-to-top',name: 'BackToTop',component: () => import('@/views/BackToTopView.vue')
}

📘組件特性說明:

  1. 定位系統
  • 使用 position: fixed 實現固定定位
  • 通過 props 接收 right/bottom 值(支持所有CSS單位)
  1. 尺寸系統
  • 預設三種尺寸(small/normal/big)
  • 使用尺寸映射表實現快速配置
  1. 內容擴展
  • 使用默認插槽支持HTML內容
  • 默認顯示簡潔的箭頭符號
  • 支持通過插槽完全自定義內容
  1. 交互優化
  • 懸停浮動效果(transform + box-shadow)
  • 平滑滾動動畫(behavior: ‘smooth’)
  • 點擊狀態反饋(cursor: pointer)
  1. 視覺優化
  • 圓形邊框(border-radius: 50%)
  • 微投影設計(box-shadow)
  • 抗鋸齒處理(user-select: none)

使用建議:

  1. 基礎用法
<BackToTop />
  1. 自定義位置
<BackToTop right="5%" bottom="10%" />
  1. 自定義內容
<BackToTop><div class="custom"><img src="@/assets/arrow-up.svg"><span>TOP</span></div>
</BackToTop>
  1. 響應式適配
<BackToTop :right="isMobile ? '10px' : '40px'":bottom="isMobile ? '10px' : '40px'"
/>

該組件已實現您要求的所有功能,并額外添加了懸停動效和視覺優化。通過組合使用props和插槽,可以靈活適應各種使用場景。

📚代碼測試

示例代碼中有個svg 無路徑,換成了📘,其他正常

📚頁面效果

頁面效果

📚自己部署 DeepSeek 安裝地址

藍耘元生代智算云平臺地址:https://cloud.lanyun.net/#/registerPage?promoterCode=07100c37a0

📚相關文章

?

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

?

  1. 0基礎3步部署自己的DeepSeek安裝步驟

  2. DeepSeek 助力 Vue 開發:打造絲滑的步驟條

  3. DeepSeek 助力 Vue 開發:打造絲滑的進度條

  4. 自己部署 DeepSeek 助力 Vue 開發:打造絲滑的標簽頁(Tabs)

  5. 自己部署 DeepSeek 助力 Vue 開發:打造絲滑的折疊面板(Accordion)

  6. 自己部署 DeepSeek 助力 Vue 開發:打造絲滑的時間線(Timeline )

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


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

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

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

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

相關文章

C++中接口與繼承的區別(自我學習用)

繼承&#xff08;Inheritance&#xff09;和 接口&#xff08;Interface&#xff09;是面向對象編程&#xff08;OOP&#xff09;中的兩種不同概念&#xff0c;雖然在 C 中沒有像 Java 那樣的 interface 關鍵字&#xff0c;但可以通過 純虛函數 來實現接口的概念。讓我們詳細比…

epoll的原理

Epoll是Linux系統中高效的I/O多路復用機制&#xff0c;廣泛應用于高并發服務器&#xff08;如Nginx、Redis&#xff09;。其核心原理在于事件驅動模型和高效數據結構設計&#xff0c;解決了傳統select/poll的性能瓶頸。以下從數據結構、工作流程、觸發模式等維度展開分析&#…

epoll_ctl的概念和使用案例

epoll_ctl 是 Linux 系統中 I/O 多路復用機制 epoll 的核心函數之一&#xff0c;用于管理 epoll 實例監控的文件描述符&#xff08;File Descriptor, FD&#xff09;。它負責向 epoll 實例注冊、修改或刪除需要監控的 FD 及其事件類型&#xff0c;是實現高性能網絡編程&#xf…

Java練習(20)

ps:練習來自力扣 給你一個 非空 整數數組 nums &#xff0c;除了某個元素只出現一次以外&#xff0c;其余每個元素均出現兩次。找出那個只出現了一次的元素。 你必須設計并實現線性時間復雜度的算法來解決此問題&#xff0c;且該算法只使用常量額外空間。 class Solution {pu…

Tetragon:一款基于eBPF的運行時環境安全監控工具

關于Tetragon Tetragon是一款基于eBPF的運行時環境安全監控工具&#xff0c;該工具可以幫助廣大研究人員檢測并應對安全重大事件&#xff0c;例如流程執行事件、系統調用活動、I/O活動&#xff08;包括網絡和文件訪問等&#xff09;。 在 Kubernetes 環境中使用時&#xff0c;…

1046. 最后一塊石頭的重量

文章目錄 1.題目[1046. 最后一塊石頭的重量](https://leetcode.cn/problems/last-stone-weight/description/)2.思路3.代碼 1.題目 1046. 最后一塊石頭的重量 有一堆石頭&#xff0c;每塊石頭的重量都是正整數。 每一回合&#xff0c;從中選出兩塊** 最重的** 石頭&#xff…

Qt多線程技術【線程池】:QRunnable 和 QThreadPool

在現代軟件開發中&#xff0c;尤其是在處理大量并發任務時&#xff0c;線程池技術是一種高效的解決方案。線程池不僅能提高程序的性能&#xff0c;還能有效管理線程的生命周期&#xff0c;避免頻繁的線程創建和銷毀所帶來的性能損失。本文將以Qt中的 QThreadPool 和 QRunnable …

DOM讓JavaScript可以對文檔中的標簽、屬性、內容等進行 訪增刪改 操作

示例 HTML 文檔 首先&#xff0c;我們有一個簡單的 HTML 文件 index.html&#xff0c;內容如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widt…

218.子結構判斷

class Solution {/*** 判斷樹 B 是否是樹 A 的子結構* param A 樹 A 的根節點* param B 樹 B 的根節點* return 如果 B 是 A 的子結構&#xff0c;返回 true&#xff1b;否則返回 false*/public boolean isSubStructure(TreeNode A, TreeNode B) {// 如果樹 B 為空&#xff0c;…

【DuodooBMS】基于Odoo的開源制造執行系統——以開源之力,驅動智能制造

以用戶為中心的開放式智造平臺 DuodooMES的設計始終圍繞“用戶可編程、生態可生長”的核心思想&#xff0c;打破傳統工業軟件的封閉性&#xff0c;讓制造企業真正成為系統的“主人”&#xff1a; 1. 用戶可編程&#xff1a;生產流程由你定義 界面可配置&#xff1a;無需代碼即…

Unity使用iTextSharp導出PDF-02基礎結構及設置中文字體

基礎結構 1.創建一個Document對象 2.使用PdfWriter創建PDF文檔 3.打開文檔 4.添加內容&#xff0c;調用文檔Add方法添加內容時&#xff0c;內容寫入到輸出流中 5.關閉文檔 using UnityEngine; using iTextSharp.text; using System.IO; using iTextSharp.text.pdf; using Sys…

Navicat導入海量Excel數據到數據庫(簡易介紹)

目錄 前言正文 前言 此處主要作為科普帖進行記錄 原先Java處理海量數據的導入時&#xff0c;由于接口超時&#xff0c;數據處理不過來&#xff0c;后續轉為Navicat Navicat 是一款功能強大的數據庫管理工具&#xff0c;支持多種數據庫系統&#xff08;如 MySQL、PostgreSQL、…

文化財經t8優質短線期貨交易量化模型源碼

// 參數設置 BOLL_PERIOD : 20; // 布林帶周期 RSI_PERIOD : 14; // RSI 周期 OVERSOLD : 30; // 超賣線 OVERBOUGHT : 70; // 超買線 // 計算布林帶 MID : MA(CLOSE, BOLL_PERIOD); UPPER : MID 2 * STD(CLOSE, BOLL_PERIOD); LOWER : MID - 2 * STD(CLOSE,…

[AI]Mac本地部署Deepseek R1模型 — — 保姆級教程

[AI]Mac本地部署DeepSeek R1模型 — — 保姆級教程 DeepSeek R1是中國AI初創公司深度求索&#xff08;DeepSeek&#xff09;推出大模型DeepSeek-R1。 作為一款開源模型&#xff0c;R1在數學、代碼、自然語言推理等任務上的性能能夠比肩OpenAI o1模型正式版&#xff0c;并采用MI…

【UE5】PeerStream像素流部署

視頻教程 https://www.bilibili.com/video/BV1GhiuecEpK?spm_id_from333.788.videopod.sections&vd_source02dd8acc3a83a728e375ff61f1ebe725步驟 下載PeerStream代碼 代碼結構和項目如圖 github地址:https://github.com/inveta/PeerStreamEnterprise下載node node 對應…

老牌系統工具箱,現在還能打!

今天給大家分享一款超實用的電腦軟硬件檢測工具&#xff0c;雖然它是一款比較“資深”的軟件&#xff0c;但依然非常好用&#xff0c;完全能滿足我們的日常需求。 電腦軟硬件維護檢測工具 功能強大易用 這款軟件非常貼心&#xff0c;完全不需要安裝&#xff0c;直接打開就能用…

java商城解決方案

數字化時代&#xff0c;電子商務已成為企業拓展市場的重要渠道。對于想要建立在線商店的企業來說&#xff0c;選擇正確的技術堆棧至關重要。 Java作為一種成熟且廣泛使用的編程語言&#xff0c;為構建購物中心提供了強大的功能和靈活性。 商城Java源碼&#xff1a;商城開發的核…

軟件的生命周期和需求

什么是軟件的生命周期? 定義(描述) --> 創建 --> 使用 --> 銷毀 (這一整個過程就是事物的生命周期) 生命周期 那么軟件的生命周期又分為哪些呢? 一共分為十步: 可行性研究: 通過分析軟件開發要求,確定軟件項目的性質、目標和規模,得出可行性研究報告,如果可行性研…

QGIS如何下載高程數據

一、準備工作 安裝QGIS軟件 訪問QGIS官網下載最新版本,選擇適合操作系統的安裝包(如Windows 64位)完成安裝。建議使用3.28及以上版本以獲得完整功能支持。 注冊數據平臺賬號 NASA EarthData賬號:訪問EarthData登錄頁面注冊,用于SRTM數據下載。地理空間數據云賬號:訪問www…

【linux學習指南】線程同步與互斥

文章目錄 &#x1f4dd;線程互斥&#x1f320; 庫函數strncpy&#x1f309;進程線程間的互斥相關背景概念&#x1f309;互斥量mutex &#x1f320;線程同步&#x1f309;條件變量&#x1f309;同步概念與競態條件&#x1f309; 條件變量函數 &#x1f6a9;總結 &#x1f4dd;線…