当前位置: 首页 > news >正文

uni-app项目实战笔记3--使用scroll-view实现每日推荐左右滑动效果

先来看效果:

实现过程:

1.在项目根目录下创建公共组件的目录components,在里边创建一个common-title组件,里边暂时先输入“每日推荐”4个字。在index.vue引入该组件;

2.在推荐的内容区使用scroll-view实现可滚动的视图容器实现左右滑动展示推荐的内容。

来看代码的具体实现:

<view class="select"><common-title></common-title><view class="content"><scroll-view scroll-x><view class="box" v-for="item in 8"><image src="/common/images/preview_small.webp" mode="aspectFill"></image></view></scroll-view></view>
</view>

 scroll-view 的 scroll-x 属性用于实现 横向滚动(水平滚动) 的容器

再来看SCSS的代码:

.select{padding-top: 30rpx;.content{width: 720rpx;margin-left: 30rpx;margin-top: 30rpx;scroll-view{white-space: nowrap;.box{width: 200rpx;height: 430rpx;display: inline-block;margin-right: 15rpx;image{width: 100%;height: 100%;border-radius: 10rpx;}}.box:last-child{margin-right: 30rpx;}}}}

1. 整体结构效果

外层容器 .select
.select {padding-top: 30rpx;  // 顶部内边距 30rpx
}
  • 作用:为整个选择器区域添加顶部间距,避免内容紧贴页面顶部。

内容区域 .content
.content {width: 720rpx;        // 固定宽度 720rpxmargin-left: 30rpx;   // 左外边距 30rpxmargin-top: 30rpx;    // 顶部外边距 30rpx
}
  • 效果

    • 内容区域宽度为 720rpx,左侧留白 30rpx(可能用于对齐其他元素)。

    • 与上方元素保持 30rpx 的间距。

2. 横向滚动区域 scroll-view

scroll-view {white-space: nowrap;  // 禁止子元素换行(关键属性)
}
  • 作用

    • white-space: nowrap 强制所有子元素(.box)在同一行排列,实现横向滚动。

    • 需配合 scroll-x="true" 使用(HTML 中需显式声明)。

3. 横向滚动子项 .box

.box {width: 200rpx;           // 固定宽度height: 430rpx;          // 固定高度display: inline-block;   // 横向排列关键属性margin-right: 15rpx;     // 右侧间距 15rpximage {width: 100%;           // 图片撑满容器height: 100%;          // 图片撑满容器border-radius: 10rpx;  // 圆角 10rpx}
}
.box:last-child {margin-right: 30rpx;     // 最后一个子项右侧间距增大
}
  • 效果

    • 每个 .box 是一个 固定尺寸(200×430rpx)的横向卡片,内部包含一张图片。

    • 图片完全填充卡片,并带有 10rpx 圆角。

    • 卡片之间通过 margin-right: 15rpx 保持间距,最后一个卡片右侧间距为 30rpx。

相关文章:

  • Arduino入门教程:1-1、先跑起来(点亮LED打印Helloworld)
  • 论文阅读:speculative decoding
  • Go语言同步原语与数据竞争:Mutex 与 RWMutex
  • Mac电脑-Office 2024 长期支持版 PPT、Excel、Word(Mac中文)
  • 基于Django的购物系统
  • 快速搭建运行Django第一个应用—投票
  • 从实验室到实践:无人机固件越权提取技术解析
  • 无人机接收机运行技术要点分析!
  • 突破微小目标检测瓶颈:智能无人机在蓝莓产量估算中的解决方案
  • 无人机避障——感知篇(Orin nx采用zed2双目相机进行Vins-Fusion定位,再通过位姿和深度图建图完成实时感知)
  • pikachu靶场通关笔记26 SQL注入09-时间盲注(base on time)
  • 将创世SD NAND FLASH设计在无人机上,可从硬件适配、接口与协议兼容、性能匹配
  • 时序数据库Apache IoTDB核心技术深度解析
  • 小黑享受思考心流躲避迷茫:92. 反转链表 II
  • FFmpeg 压缩视频文件
  • 中国第七次人口普查100m网格化人口数据集(Tif/分省/分市)
  • 在Windows平台上使用MinGW编译C/C++项目,常见的构建工具
  • 22、话题重名及解决方案
  • Python训练营---DAY52
  • nginx学习
  • 哪个网站可以做批发/营销公关
  • 青岛响应式网站建设/不受国内限制的浏览器
  • 崆峒区城乡建设局网站/百度开户多少钱
  • 汕头网站建设sthke/网页设计培训
  • 廊坊网站优化/百度100%秒收录
  • 重庆秀山网站建设价格/seo是什么职业岗位