UniApp 中制作一个横向滚动工具栏
前言
最近在用 UniApp 开发项目时,需要一个横向滑动的工具栏。常见的工具栏一般都是竖着的,但横向滑动的工具栏不仅能展示更多内容,还能让界面看起来更加丰富。不过很多朋友可能会发现,如何让内容“横着”展示又不变形、能流畅滚动、并且能自适应多种屏幕宽度,还是有点麻烦的。
这篇文章我会带大家一步步用 UniApp 实现一个横向滚动的工具栏,并讲解其中的一些关键点。话不多说,咱们直接上代码!
实现思路
横向工具栏的核心其实不复杂,大致可以分成以下几步:
- 用
scroll-view
组件实现横向滚动。 - 使用
flex
布局,将每个工具项(如图标和文字)在tool-item
中垂直排列。 - 优化
scroll-view
和tool-item
的样式,让它们看起来整齐美观。
主要组件和样式
在 UniApp 中,scroll-view
是一个可以支持滚动的容器。在横向工具栏中,我们设置 scroll-view
的 scroll-x
为 true
,这样它就可以左右滑动了。此外,我们还会使用 flex
布局来控制工具栏中的每个图标和文字的排列方式。
页面布局
首先,让我们来写一个基本的页面布局,先不涉及复杂的样式。我们将横向工具栏放在一个 scroll-view
中,每个工具项都放在一个 view
里。这样,可以确保每个工具项是独立的,而且整个工具栏可以横向滚动。
代码实现
1. 初始化项目和页面
首先,创建一个新的 UniApp 项目(可以直接使用 HBuilderX,选择 uni-app
模板)。在项目中创建一个新页面,比如叫 toolbar
。然后在页面的 .vue
文件中,编写 HTML 结构。
<template><scroll-view style="flex: 1"><view class="container"><!-- 轮播图部分 --><view> <swiper class="swiper" :indicator-dots="true"><swiper-item class="swiper-item"><image class="swiper-image" :src="swiperImage[0]" mode="aspectFill"></image></swiper-item><swiper-item class="swiper-item"><image class="swiper-image" :src="swiperImage[1]" mode="aspectFill"></image></swiper-item><swiper-item class="swiper-item"><image class="swiper-image" :src="swiperImage[2]" mode="aspectFill"></image></swiper-item></swiper></view><!-- 横向滑动工具栏 --><scroll-view scroll-x="true" class="tool-bar"><view class="tool-item" v-for="(tool, index) in tools" :key="index"><image :src="tool.icon" class="tool-icon"></image><text class="tool-text">{{ tool.name }}</text></view></scroll-view><!-- 工具分类卡片(两列布局) --><view class="card-container"><view class="card" style="background-color: #4fc3f7"><text class="card-title">日常工具\n</text><text class="card-description">聚合一些最热门,最常用的工具</text></view><view class="card" style="background-color: #f48fb1"><text class="card-title">计算工具\n</text><text class="card-description">计算器、温度、压力、单位换算工具…</text></view><view class="card" style="background-color: #f06292"><text class="card-title">查询工具\n</text><text class="card-description">各种文字、专用信息、资源查询…</text></view><view class="card" style="background-color: #4db6ac"><text class="card-title">图片工具\n</text><text class="card-description">图片水印、压缩、取色、壁纸大全…</text></view><view class="card" style="background-color: #81c784"><text class="card-title">文字工具\n</text><text class="card-description">暗语翻译器、特殊文本、编码工具…</text></view><view class="card" style="background-color: #42a5f5"><text class="card-title">开发工具\n</text><text class="card-description">各种代码工具、网页转应用…</text></view><view class="card" style="background-color: #64b5f6"><text class="card-title">提取工具\n</text><text class="card-description">视频提取、图片提取、网页提取…</text></view><view class="card" style="background-color: #26a69a"><text class="card-title">系统工具\n</text><text class="card-description">应用管理、WiFi密码查看、壁纸工具…</text></view></view></view></scroll-view>
</template>
2. 数据初始化
接下来,给页面添加数据属性。这里包括 swiperImage
数组(轮播图图片的路径)和 tools
数组(工具栏的图标和名称)。在 <script>
部分中,我们将这些数据初始化:
<script>
export default {data() {return {swiperImage: ['/static/image/swiper/img1.jpeg','/static/image/swiper/img2.jpeg','/static/image/swiper/img3.jpeg'],tools: [{ name: '工具1', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具2', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具3', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具4', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具5', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具5', icon: '/static/image/swiper/img1.jpeg' },{ name: '工具5', icon: '/static/image/swiper/img1.jpeg' },]}}
}
</script>
3. 样式设置
接下来是样式的编写,这一步会影响整个工具栏的展示效果。我们为工具栏、轮播图和卡片分别设置样式,特别是 scroll-view
和 tool-item
这些关键元素。
<style>
.container {font-size: 14px;line-height: 24px;background-color: #f5f5f5;padding-bottom: 60px; /* 留出底部导航栏的位置 */
}/* 轮播图样式 */
.swiper {height: 150px;margin-bottom: 20px;border-radius: 10px;overflow: hidden;margin: 0 10px;
}
.swiper-item {height: 150px;width: 100%;background-color: #ff5e62;
}
.swiper-image {width: 100%;
}/* 横向滑动工具栏样式 */
.tool-bar {display: flex;flex-direction: row;padding: 10px;border-radius: 10px;margin: 15px 10px 0px 10px;background-color: #ffffff;overflow-x: auto; /* 允许水平滚动 */white-space: nowrap;width: 100%;
}
.tool-item {width: 80px;margin-right: 10px;text-align: center;display: flex;flex-direction: column; /* 垂直排列图标和文字 */align-items: center;
}
.tool-icon {width: 50px;height: 50px;border-radius: 10px;margin-bottom: 5px;
}
.tool-text {font-size: 12px;color: #333;
}
</style>
tool-bar
是整个工具栏的容器,我们设置了flex-direction
为row
,表示工具项在水平排列。tool-item
中,我们设置了flex-direction
为column
,让图标和文字垂直排列。scroll-view
本身设置了overflow-x: auto
,使其可以横向滚动。
4. 工具栏的细节优化
现在我们已经有了一个基本的横向工具栏,但为了让它更具吸引力,我们可以进行一些样式优化,使其更美观,并且适配更多的场景。接下来会从样式细节、布局调整和一些动态效果出发,进一步美化这个工具栏。
4.1 增加圆角、阴影和过渡效果
圆角、阴影和过渡效果可以让工具栏看起来更加立体,给用户更好的视觉体验。我们可以在 .tool-item
和 .tool-icon
上增加这些效果。
.tool-bar {display: flex;flex-direction: row;padding: 10px;border-radius: 10px;margin: 15px 10px 0px 10px;background-color: #ffffff;overflow-x: auto;white-space: nowrap;width: 100%;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}.tool-item {width: 80px;margin-right: 10px;text-align: center;display: flex;flex-direction: column;align-items: center;border-radius: 8px; /* 圆角 */transition: transform 0.2s ease; /* 添加过渡效果 */
}.tool-item:hover {transform: scale(1.1); /* 鼠标悬浮放大效果 */
}.tool-icon {width: 50px;height: 50px;border-radius: 50%; /* 图标改为圆形 */margin-bottom: 5px;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* 图标阴影 */
}
4.2 动态效果
这里我们给 .tool-item
添加了 :hover
样式,在鼠标悬浮时稍微放大图标,形成一种“弹出”的效果。同时,tool-icon
的阴影让图标看起来不再是“贴”在页面上的,而是有了一些立体感。
4.3 文本颜色和字体
为了让工具栏的文字更具可读性,可以使用更亮眼的颜色和稍大的字体。也可以给文字加上一点渐变效果。
.tool-text {font-size: 14px;color: #333;font-weight: bold; /* 加粗字体 */background: linear-gradient(90deg, #ff7e5f, #feb47b); /* 渐变颜色 */-webkit-background-clip: text;color: transparent;
}
5. 响应式布局的实现
在开发移动应用时,响应式设计尤为重要,尤其是在横向滚动工具栏这种组件上。我们希望无论屏幕尺寸如何变化,工具栏的内容都能自适应调整,不会出现溢出或内容过小的问题。
5.1 使用 vw
和 vh
单位
vw
(视口宽度)和 vh
(视口高度)是 CSS 中非常实用的单位,可以使组件根据屏幕尺寸自动缩放。我们可以用 vw
来控制工具栏宽度,使其适应不同屏幕。
.tool-item {width: 20vw; /* 每个工具项的宽度占屏幕宽度的20% */max-width: 100px; /* 最大宽度设置 */
}
这种设置让每个工具项的宽度根据屏幕的宽度动态调整,但不超过 100px,这样就能适配各种设备。
5.2 媒体查询
如果想让工具栏在不同屏幕尺寸下的显示效果更加精细,可以使用 CSS 的媒体查询功能,在不同的屏幕宽度下调整工具栏的布局。
@media screen and (max-width: 600px) {.tool-item {width: 30vw; /* 在小屏幕上,每个工具项占30%屏幕宽度 */}
}@media screen and (min-width: 600px) {.tool-item {width: 15vw; /* 在大屏幕上,每个工具项占15%屏幕宽度 */}
}
通过这种方式,我们可以确保在屏幕较小的手机上,工具项不会因为太小而难以阅读;在屏幕较大的设备上,工具栏也不会显得拥挤。
6. 交互功能的实现
光有好看的外观还不够,我们可以为工具栏添加一些交互功能,使用户体验更好。例如,当用户点击某个工具项时,可以触发相应的页面跳转或显示详细信息。
6.1 点击事件
在 UniApp 中,可以直接为工具项绑定点击事件。在模板中的 <view>
标签上使用 @click
事件,并在 methods
中定义点击处理逻辑。
<view class="tool-item" v-for="(tool, index) in tools" :key="index" @click="handleToolClick(tool)"><image :src="tool.icon" class="tool-icon"></image><text class="tool-text">{{ tool.name }}</text>
</view>
methods: {handleToolClick(tool) {// 根据工具名称执行相应的操作,可以跳转到不同页面或展示内容uni.showToast({title: `点击了${tool.name}`,icon: 'none'});}
}
这样,用户点击某个工具项时,会显示提示信息。当然,你也可以根据需求进行页面跳转或执行其他操作,比如跳转到工具的详情页面:
uni.navigateTo({url: `/pages/${tool.pageName}/${tool.pageName}`
});
6.2 让工具栏记住滚动位置
如果希望工具栏在页面切换后能记住用户滚动的位置,可以利用 scroll-left
属性记录和恢复滚动位置。
<scroll-view scroll-x="true" class="tool-bar" :scroll-left="scrollLeft"><!-- 工具项 -->
</scroll-view>
data() {return {scrollLeft: 0, // 滚动位置};
},
methods: {// 页面离开时记录滚动位置saveScrollPosition(event) {this.scrollLeft = event.detail.scrollLeft;}
}
7. 优化性能
在移动端,性能优化是一个大话题,特别是在像工具栏这种涉及滚动和图片渲染的地方。以下是一些常见的优化措施:
7.1 图片懒加载
如果工具栏里有很多图片,可以启用懒加载,减少初始加载时间。UniApp 提供了 lazy-load
属性,可以在 <image>
标签中设置。
<image :src="tool.icon" class="tool-icon" lazy-load="true"></image>
这样,只有当图片即将出现在视口中时才会加载,避免一次性加载所有图片,节省资源。
7.2 减少渲染次数
对于动态数据的渲染,可以在页面初次加载时将数据保存到本地存储中,避免每次打开页面都重新获取数据。例如,如果工具栏内容来自接口,可以将结果缓存起来:
methods: {async fetchTools() {const cachedTools = uni.getStorageSync('tools');if (cachedTools) {this.tools = cachedTools;} else {const res = await uni.request({ url: 'API_URL' });this.tools = res.data;uni.setStorageSync('tools', this.tools);}}
}
8. 最终效果展示与总结
经过上述步骤,我们的 UniApp 横向工具栏已经实现得差不多了。这个工具栏具有以下特点:
- 支持横向滚动,使用
scroll-view
实现。 - 使用
flex
布局,将图标和文字垂直排列,并添加了悬浮效果。 - 自适应布局,确保在各种屏幕尺寸上都能良好展示。
- 点击事件处理,可以轻松跳转或展示信息。
- 性能优化,通过图片懒加载和本地缓存提高了加载速度。
总结
本文介绍了如何在 UniApp 中制作一个横向滚动工具栏,从基础实现到样式优化,再到响应式设计和交互添加,最后进行了性能优化。希望这篇文章能帮助大家更好地理解和掌握 UniApp 中横向工具栏的实现方法,并能在自己的项目中自由运用。
通过这种方式实现的工具栏不仅美观,还具有实用性,可以轻松满足大多数项目需求。祝大家在开发 UniApp 的旅程中一帆风顺!
相关文章:
UniApp 中制作一个横向滚动工具栏
前言 最近在用 UniApp 开发项目时,需要一个横向滑动的工具栏。常见的工具栏一般都是竖着的,但横向滑动的工具栏不仅能展示更多内容,还能让界面看起来更加丰富。不过很多朋友可能会发现,如何让内容“横着”展示又不变形、能流畅滚…...
Qt的QListWidget样式设置
以下是关于QListWidget样式设置的详细说明,包含常用样式配置和进阶技巧: 1. 基础列表样式 // 设置整体列表容器样式 listWidget->setStyleSheet("QListWidget {"" background-color: #f5f5f5;" // 背景颜色" borde…...
OpenCV 模板匹配
模板匹配算法是一种在目标图像中寻找与模板图像相似区域的方法,模板匹配就是拿一个模板图片在一张比模板图像要大的搜索图像上寻找与模板图像相似的区域,以此来得到目标在搜索图像上的位置,其核心是将模板图像在待搜索图像上从左到右、从上到下依次逐像素平移滑动,每次滑动…...
Vue 3 30天精进之旅:Day 25 - PWA支持
一、引言 在前面的24天中,我们已经深入探讨了Vue 3的许多核心概念和高级特性。今天,我们将进入一个全新的领域——PWA(Progressive Web App)。PWA是一种现代Web应用程序的开发模式,它结合了Web和原生应用的优点&#…...
arm linux下的中断处理过程。
本文基于ast2600 soc来阐述,内核版本为5.10 1.中断gic初始化 start_kernel() -> init_IRQ() -> irqchip_init() of_irq_init()主要是构建of_intc_desc. 489-514: 从__irqchip_of_table中找到dts node中匹配的of_table(匹配matches->compatible)…...
Linux上Elasticsearch 集群部署指南
Es 集群部署 Es 集群部署 Es 集群部署 准备好三台服务器。示例使用:110.0.5.141/142/143 1、es用户和用户组创建,使用root账号 groupadd esuseradd -g es es2、将es安装包和ik分词器上传到:/home/es/目录下(任意目录都行&#…...
SpringBoot+shardingsphere实现按月分表功能
SpringBootshardingsphere实现按月分表功能 文章目录 前言 ShardingSphere 是一套开源的分布式数据库中间件解决方案,旨在简化数据库分片、读写分离、分布式事务等复杂场景的管理。它由 Apache 软件基金会支持,广泛应用于需要处理大规模数据的系统中 一…...
如何设置 Nginx 连接超时并进行测试(Nginx优化)
🏡作者主页:点击! Nginx-从零开始的服务器之旅专栏:点击! 🐧Linux高级管理防护和群集专栏:点击! ⏰️创作时间:2025年2月15日14点22分 在高并发场景下,如…...
Python实现AWS Fargate自动化部署系统
一、背景介绍 在现代云原生应用开发中,自动化部署是提高开发效率和保证部署质量的关键。AWS Fargate作为一项无服务器计算引擎,可以让我们专注于应用程序开发而无需管理底层基础设施。本文将详细介绍如何使用Python实现AWS Fargate的完整自动化部署流程。 © ivwdcwso (ID…...
ubuntu20.04声音设置
step1:打开pavucontrol,设置Configuration和Output Devices, 注意需要有HDMI / DisplayPort (plugged in)这个图标。如果没有,就先选择Configuration -> Digital Stereo (HDMI 7) Output (unplugged) (unvailable),…...
AWS Database Migration Service
AWS Database Migration Service (DMS) 是亚马逊 Web 服务(AWS)提供的一项服务,旨在帮助用户将数据库迁移到 AWS 云环境中。无论是将现有的数据库迁移到 Amazon RDS(关系型数据库服务)、Amazon Aurora、Amazon Redshif…...
ROS学习
1.ROS工作空间 存放项目开发相关文件的文件夹; src:代码空间(Source Space)install:安装空间(Install Space)build:编译空间(Build Space)log:日志空间(Log Space) 2.c…...
【NLP 24、模型训练方式】
你的痛苦,我都心疼,想为你解决 —— 25.2.15 一、按学习范式分类 1. 监督学习(Supervised Learning) 核心思想:使用带有标签(已知输入-输出对)的数据训练模型。 常见任务:分类&…...
【算法】【区间和】acwing算法基础 802. 区间和 【有点复杂,但思路简单】
题目 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] …...
DeepSeek 从入门到精通学习指南,2025清华大学《DeepSeek从入门到精通》正式发布104页pdf版超全解析
DeepSeek 是一款强大的 AI 搜索引擎,广泛应用于企业级数据检索和分析。无论您是初学者还是有经验的用户,掌握 DeepSeek 的使用都能为您的工作带来极大的便利。本文将从入门到精通,详细介绍如何学习和使用 DeepSeek。 链接: https://pan.baid…...
PyQt6/PySide6 的自定义信号实现
一、信号与槽基础概念 核心机制:观察者模式的实现,支持对象间的松耦合通信原生信号:内置控件(如QPushButton)的clicked等预定义信号自定义优势:实现业务逻辑解耦,增强组件复用性 PyQt6/PySide…...
什么是FCC认证
联邦通信委员会(FCC)认证是美国一种强制性的认证,确保电子设备在上市前符合特定标准。 联邦通讯委员会(FCC)----管理进口和使用无线电频率装置,包括电脑、传真机、电子装置、无线电接收和传输设备、无线电…...
共享设备管理难?MDM助力Kiosk模式一键部署
目录 1. 简化设备部署与配置:实现一键式部署 2. 自动化应用更新与内容推送:确保设备始终保持最新状态 3. 权限控制与设备安全:防止滥用与数据泄露 4. 远程管理与故障诊断:保障设备长期稳定运行 5. 数据分析与报告:…...
RAMinit 程序编译运行考古记录
本科的时候浅浅研究了DOSBox,今天看到网上挺多关于雷军代码的新闻,我把雷军代码在web上编译出来了,但是我是业余选手,所以做得比较差,不过大家感兴趣可以关注我的dosplay项目,旨在利用js-dos实现汇编语言在…...
今日AI和商界事件(2025-02-15)
根据2025年2月15日的科技动态,以下是今日AI领域的重要事件及相关进展总结: 1. DeepSeek日活突破3000万,开源生态加速AI普惠 里程碑意义:开源大模型DeepSeek宣布日活跃用户数突破3000万,其R1模型凭借开源策略和低成本优…...
鸿蒙开发:熟知@BuilderParam装饰器
前言 本文代码案例基于Api13。 在实际的开发中,我们经常会遇到自定义组件的情况,比如通用的列表组件,选项卡组件等等,由于使用方的样式不一,子组件是动态变化的,针对这一情况,就不得不让使用方把…...
基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于和声搜索(Harmony Search, HS)的多中心点选址优化算法matlab仿真。可以设置多个不同的中心点。 2.测试软件版本以及运行结果展示 matlab2022a/matlab2024b版…...
word文档提取信息
目录 一、说明二、Aspose-words方式2.1、Aspose-words介绍2.2、Aspose-words使用说明2.3、Aspose-words解析核心代码一、说明 项目中遇到这样的一个需求问题:“一个docx文档,用户根据关键词能搜索定位到文档的哪一页”。docx文档主要有文本、表格、图片、附件这几类组合,为…...
单、双 链 表
数组模拟链表 ①单链表:邻接表{储存图和树} ②双链表:优化某些问题 单链表 // head 表示头结点的下标 // e[i] 表示节点i的值 // ne[i] 表示节点i的next指针是多少 // idx 存储当前已经用到了哪个点 e[i]和ne[i]用下标关联起来ÿ…...
SpringBoot整合easy-es
一、easy-es简介 EasyES是一款基于Elasticsearch官方提供的RestHighLevelClient开发的ORM框架,旨在简化开发流程并提高效率。 EasyES在保持RestHighLevelClient原有功能的基础上进行增强,而不做任何改变。它采用与Mybatis-Plus相似的语法,使得…...
2025年2月15日(ipython 换行-deepseek)
好的,用户现在想知道在IPython中如何换行而不运行代码。之前他们问过关于树莓派安装matplotlib的问题,现在转向IPython的使用,可能他们正在学习Python,并且可能在使用树莓派进行项目开发。需要确定用户的使用场景,可能…...
MyBatis:动态SQL高级标签使用方法指南
一、引言 目前互联网大厂在搭建后端Java服务时,常使用Springboot搭配Mybatis/Mybatis-plus的框架。Mybatis/Mybatis-plus之所以能成为当前国内主流的持久层框架,与其本身的优点有关:支持定制动态 SQL、存储过程及高级映射,简化数…...
Python常见面试题的详解5
1. re 模块中 search () 和 match () 的区别 要点:在 Python 的 re 模块中,re.match() 和 re.search() 是用于正则表达式匹配的两个重要函数,它们的主要区别在于匹配的起始位置:re.match():从字符串的开头开始匹配正则…...
python包的管理
管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包,诸如numpy,pandas,scikit-learn等等。 python的包都存放PyPI中,PyPI即Python Package Index,是python的软件仓库。所…...
性能测试流程、主流性能工具
性能测试流程 性能测试流程 测试测试需求分析 性能测试计划和方案 测什么: 测试背景 测试目的 测试范围 谁来测: 进度和分工 交付清单 怎么测: 测试策略 性能测试用例设计 性能测试测试执行 性能分析和调优 性能测试报告 测试报告是…...
Lua闭包的使用以及需要注意的问题
1. 闭包的基本概念 在 Lua 中,闭包是一个函数值,它包含了函数本身以及该函数所创建时的环境。闭包允许函数访问其外部函数作用域中的变量,即使外部函数已经执行完毕。 2.闭包的简单使用 代码:在下面的代码中,create…...
【个人开发】deepseed+Llama-factory 本地数据多卡Lora微调
文章目录 1.背景2.微调方式2.1 关键环境版本信息2.2 步骤2.2.1 下载llama-factory2.2.2 准备数据集2.2.3 微调模式2.2.4 微调脚本 2.3 踩坑经验2.3.1 问题一:ValueError: Undefined dataset xxxx in dataset_info.json.2.3.2 问题二: ValueError: Target…...
LabVIEW 天然气水合物电声联合探测
天然气水合物被认为是潜在的清洁能源,其储量丰富,预计将在未来能源格局中扮演重要角色。由于其独特的物理化学特性,天然气水合物的探测面临诸多挑战,涉及温度、压力、电学信号、声学信号等多个参数。传统的人工操作方式不仅效率低…...
VisualStudio 2012 fatal error C1083: 无法打开包括文件:“stdio.h 找不到 sdkddkver.h
今天安装了一个VC 2012 Express 学习版,提示找不不到stdio.h, 提示找不到sdkddkver.h 发现是没有安装windows8.0 SDK ,还有一个些VC头文件没有安装. 真是太奇怪了,可能版本太多,安装出问题. 我这里放一个备份文件,省得以后,不能安装的时候,没地方找这些头文件. 无法打开包…...
什么是access token和refresh token?
access token 验证身份有效时间相对refresh token 时间短一点 refresh token 用于辅助access token 过期,避免用户反复登录的问题当accesstoken过期直接拿refreshtoken去获取最新的token...
盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计
在通信、电子测量等领域,功率计是确保信号稳定、系统高效运行的关键设备。盛铂科技自主研发的 SCP4000 系列自带 USB 接口的袖珍式 CW 信号平均功率计,以其卓越的性能、高性价比和便捷的操作,在众多同类产品中脱颖而出,成为行业内…...
Unity 获取独立显卡数量
获取独立显卡数量 导入插件包打开Demo 运行看控制台日志 public class GetGraphicCountDemo : MonoBehaviour{public int count;// Start is called before the first frame updatevoid Start(){count this.GetIndependentGraphicsDeviceCount();}}...
wx061基于ssm+vue+uniapp的疫情期间学生请假与销假系统小程序
开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...
硕成C语言22【一些算法和数组的概念】
1.求水仙花数 #include <stdio.h>int main() {//求水仙花数:1.三位数 2.个位的立方十位的立方百位的立方该数int unit, tens, hundreds;for (int i 100; i < 1000; i)//i表示该水仙花数{unit i / 1 % 10;tens i / 10 % 10;hundreds i / 100 % 10;if (…...
最新国内 ChatGPT Plus/Pro 获取教程
最后更新版本:20250202 教程介绍: 本文将详细介绍如何快速获取一张虚拟信用卡,并通过该卡来获取ChatGPT Plus和ChatGPT Pro。 # 教程全程约15分钟开通ChatGPT Plus会员帐号前准备工作 一个尚未升级的ChatGPT帐号!一张虚拟信用卡…...
Django中实现简单易用的分页工具
如何在Django中实现简单易用的分页工具?📚 嗨,小伙伴们!今天我们来看看如何在 Django 中实现一个超简单的分页工具。无论你是在处理博客文章、产品列表,还是用户评论,当数据量一大时,分页显得尤…...
个人下载中国生物医学文献服务系统SinoMed文献的途径及操作方法
中国生物医学文献服务系统——SinoMed数据库介绍: 中国生物医学文献服务系统——SinoMed,由中国医学科学院医学信息研究所/图书馆研制,整合了中国生物医学文献数据库(CBM)、中国医学科普文献数据库(CPM&am…...
软件开发 | GitHub企业版常见问题解读
什么是GitHub企业版? GitHub企业版是一个企业级软件开发平台,专为现代化开发的复杂工作流程而设计。 作为可扩展的平台解决方案,GitHub企业版使组织能够无缝集成其他工具和功能,并根据特定需求定制开发环境,提高整体…...
【Bluedroid】BLE连接过程详解
在BLE通信中,广播(Advertising)和扫描(Scanning)是设备发现和建立连接的基本过程。根据蓝牙SPEC,当一个设备(称为Advertiser)在广播模式下发送广播包时,它遵循一定的时序和规则,以便其他设备(称为Observer或Scanner)可以检测到它,并在适当的时机发送连接请求。 B…...
清影2.0(AI视频生成)技术浅析(二):自然语言处理
清影2.0(AI视频生成)中的自然语言处理(NLP)技术是其核心组件之一,负责将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指导后续的视频生成过程。 一、基本原理 1. 目标 清影2.0的NLP技术旨在将用户输入的自然语言文本转化为机器可以理解的语义表示,从而指…...
Bob the Canadian
1:around the house Hi! Bob the Canadian here! Let’s learn English around the house. Come on in! Hi, Bob the Canadian here. Welcome to this video. If this is your first time here, don’t forget to click the subscribe button below, and give…...
DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析
在人工智能领域,DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型,各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析,帮助您更好地了解它们的特点和优势。…...
算法思考:非0整数除法
这是一道很简单的问题,但是我们可以有更多的思考 1.如何提升效率? 除法,很明显就是循环嘛,那么如何进一步提升效率?就是跳过多余的循环步骤比如15/2,原先是1111111再余1,现在尽量每次除2的最大…...
服务器租用:虚拟化技术都包含哪些内容?
服务器作为常见的网络设备,有着物理服务器、云服务器和虚拟服务器等多种类型,其中虚拟服务器主要是依靠虚拟化技术将物理服务器划分成多个虚拟机,以此来充分利用服务器资源,那虚拟化技术都包含了哪些内容呢? 硬件虚拟化…...
[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】
大家好,我是老师,看到一个不错的SpringBoot公益众筹爱心捐赠系统,分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前,当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及,本文旨在探讨公益事业…...