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())操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/969045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

deepseek大模型,本地搭建deepseek模型,springai调用本地deepseek模型,java调用deepseek大模型api

文档对应的视频地址&#xff1a; https://www.bilibili.com/video/BV1V8NBevEjk/?spm_id_from333.1387.homepage.video_card.click&vd_source14d27ec13a4737c281b7c79463687112SpringAI调用本地deepseek模型 一、 使用deepseek步骤 官网注册账号 地址&#xff1a; https…

大模型语言简介

大模型语言能做什么 信息提取 将长段文字中的信息抽取出来并且以结构化的方式输出。相比起传统NLP的方式&#xff0c;大模型在泛化能力上有非常大的提升&#xff0c;并且开发成本要低2个数量级。应用场景包括&#xff1a;论文论点论据提取、用户画像提取、舆情分析、病例结构…

计算机毕业设计Python旅游评论情感分析 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

FreeRtos实时系统: 十二.FreeRTOS的队列集

FreeRtos实时系统: 十二.FreeRTOS的队列集 一.队列集简介二.队列集相关API函数三.队列集操作实验 一.队列集简介 左边的接收任务会在没接收到队列时会阻塞&#xff0c;如果前面释放信号量这时该任务也获取不到信号量。 右边使用队列集如果获取到&#xff0c;判断句柄是谁&#…

vsftpd 编译安装流程

目录 vsftpd 编译安装流程1、下载源码包并上传致服务器解压2、进入源码目录后编译源码文件3、将对应文件安装到指定位置4、准备 vsftpd 的运行环境5、启动 vsftpd 服务进行测试6、编译安装说明 vsftpd 编译安装流程 1、下载源码包并上传致服务器解压 源码包下载地址&#xff1…

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装&#xff0c;会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码&#xff1a; android.injected.testOnlyfalse 最后点击“Sync now”&#xff0c;等待重新加载gradle资源即可 后面我们重新编译Debug安装…

计算机网络-八股-学习摘要

一&#xff1a;HTTP的基本概念 全称&#xff1a; 超文本传输协议 从三个方面介绍HTTP协议 1&#xff0c;超文本&#xff1a;我们先来理解「文本」&#xff0c;在互联网早期的时候只是简单的字符文字&#xff0c;但现在「文本」的涵义已经可以扩展为图片、视频、压缩包等&am…

八大排序——归并排序

目录 1.基本思想 2.动态图 3.分解的时候我们可以使用递归的方式进行 代码解释 1. main 方法 2. mergeSort 方法 3. merge 方法 示例运行过程 初始数组 每轮排序后的数组 代码总结 合并两个有序序列 1.基本思想 归并排序就是递归得将原始数组递归对半分隔&#xff0c…

C++ Primer 跳转语句

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

Elasticsearch:15 年来致力于索引一切,找到重要内容

作者&#xff1a;来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了&#xff01;回顾过去 15 年的索引和搜索&#xff0c;并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章&#xff08;带有标志性的…

后稀缺社会的经济模型:当技术突破资源边界时的范式革命

文章目录 引言:走出马尔萨斯陷阱一、技术基础:构建后稀缺社会的四大支柱1.1 自动化生产系统:边际成本趋零的物理基础1.2 能源基础设施:聚变-光伏-储能的黄金三角二、经济模型转变:从稀缺范式到丰裕范式2.1 传统经济模型的失效2.2 新价值方程的涌现三、后稀缺经济的三层架构…

macOS部署DeepSeek-r1

好奇&#xff0c;跟着网友们的操作试了一下 网上方案很多&#xff0c;主要参考的是这篇 DeepSeek 接入 PyCharm&#xff0c;轻松助力编程_pycharm deepseek-CSDN博客 方案是&#xff1a;PyCharm CodeGPT插件 DeepSeek-r1:1.5b 假设已经安装好了PyCharm PyCharm: the Pyth…

记录-rtsp 链接中账号密码包含有@的导致解析失败

问题&#xff1a; 在使用librtsp开源库的时候发现&#xff0c;当输入的rtsp流包含有多个的时候 (比如账号密码中包含,rtsp://admin:Pssw0rd192.168.31.xxx/Streaming/Channels/101)&#xff0c;会导致拉流失败。 问题处理&#xff1a; 一、这是因为librtsp中只对一个做了解析…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目&#xff0c;uniappnodemysql七牛云。 在如今快节奏的生活里&#xff0c;大家都忙忙碌碌&#xff0c;那些具有特殊意义的日子一不小心就容易被遗忘。今天&#xff0c;想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

JDK 14,15,17的一些新特性(部分常用)

1&#xff1a;instanceof&#xff08;后&#xff0c;使用不再需要墙转&#xff09; 2&#xff1a;switch语句增强 1&#xff1a;支持lmbda&#xff0c;自动防击穿&#xff0c;有返回值 2&#xff1a;支持case多个值&#xff0c;复杂逻辑结果支持yield返回 3&#xff1a;字符串…

Linux学习笔记之进程

进程 进程的定义 进程是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配的基本单位&#xff0c;也是操作系统结构的基础。   例如当QQ程序运行的时候&#xff0c;计算机会先从磁盘读取QQ程序到内存&#xff0c;然后OS管理这个程序&#xff0c;…

泛型 类 接口 方法 通配符

泛型 泛型类 what: 类型参数化 why use&#xff1a; 1. 输出时候是object类型 而不是真正类型转化麻烦 import java.util.ArrayList; import java.util.List;public class ObjectExample {public static void main(String[] args) {List<Object> list new ArrayLi…

打穿内网三重奏-红日7

靶机下载地址&#xff1a; 漏洞详情 (qiyuanxuetang.net) 攻击链路&#xff1a; DMZ区IP段为192.168.11.1/24 第二层网络环境IP段为192.168.52.1/24 第三层网络环境IP段为192.168.93.1/24 这里DMZ和攻击者我用的是192.168.11.1 这个网段&#xff0c;其他不变 这里我加了两张…

windows 10安装sqlyog详细步骤

sqlyog下载链接&#xff1a; 链接: https://pan.baidu.com/s/1D_iRna8V90omfHsKHyeBtg 提取码: bqht 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1. 下载完以后解压&#xff0c;双击SQLyog-12.0.9-0.x64 2. 如下图&#xff0c;选择Ok 3 . 如图&#xff0c;点…

OpenAI 放王炸,将发布整合多项技术的 GPT-5,并免费无限使用,该模型有哪些技术亮点

对于 ChatGPT 的免费用户&#xff0c;将可以无限制地访问 GPT-5&#xff0c;但仅限于标准的智能级别。该级别会设定滥用限制&#xff0c;以防止不当使用(意思就是你得付费嘛)。 OpenAI CEO Sam Altman 今天在 X 上透露了 GPT-4.5 和 GPT-5 的最新发展计划。 OpenAI 将发布代…