鸿蒙Next-Scroll滚动-控横向滚动

@Entry
@Component
struct ScrollerCase02 {
  @State message: string = 'Hello World';
  scroller: Scroller = new Scroller() // 在组件中声明一个scroller的实例
  build() {
    Row() {
      Column() {
        //只能有一个组件
        Scroll(this.scroller) { //默认纵向布局
          Row({ space: 20 }) {
            Movie()
            Movie()
            Movie()
            Movie()
            Movie()
            Movie()

          }
        }.scrollable(ScrollDirection.Horizontal) //设置滚动方向
        .height(200)
        .width('100%')
        .backgroundColor(Color.Orange)

        Row() {
          Button('最左侧')
            .onClick(() => {
              this.scroller.scrollEdge(Edge.Start)
            })
          Button('最右侧')
            .onClick(() => {
              this.scroller.scrollEdge(Edge.End)
            })
        }
      }
    }
    .width('100%')
    .height('100%')
    .backgroundColor(Color.Blue)
  }
}

@Component
struct Movie {
  build() {
    Row() {
      Text('xxx')
        .fontSize(Color.White)
    }
    .width(100)
    .height(180)
    .justifyContent(FlexAlign.Center)
    .backgroundColor(Color.Red)

  }
}

### 使用 `vue-seamless-scroll` 插件实现横向滚动效果 为了实现在 Vue.js 中使用 `vue-seamless-scroll` 组件来创建一个横向滚动效果,以下是具体的方法: #### 安装依赖包 首先需要安装该插件。可以通过 npm 或者 yarn 进行安装。 ```bash npm install vue-seamless-scroll --save ``` 或者 ```bash yarn add vue-seamless-scroll ``` #### 引入并注册组件 有两种方式可以引入此插件:作为全局组件或者是局部组件。 ##### 全局组件引入 如果希望在整个应用程序范围内都可以访问到这个无缝滚动功能,则可以在项目的入口文件(main.js)里这样写: ```javascript import scroll from 'vue-seamless-scroll' Vue.use(scroll) ``` ##### 局部组件引入 对于只需要在特定页面使用的场景下,可以选择只在这个页面内部导入和声明它。 ```javascript // 假设是在某个.vue 文件内 import vueSeamlessScroll from "vue-seamless-scroll"; export default { name: "YourComponentName", components: { vueSeamlessScroll }, } ``` #### 配置选项设置 为了让内容能够按照预期的方式水平移动起来,还需要调整一些属性值。比如指定方向为 horizontal (即横向),以及设定合适的步长(step) 和 时间间隔(limitTime) 参数等。 下面是一个简单的例子展示了如何配置这些参数以达到理想的视觉体验: ```html <template> <div class="scroll-wrapper"> <!-- 设置 options 对象 --> <vue-seamless-scroll :data="listData" class="seamless-warp" :class-option="classOption"> <ul> <li v-for="(item, index) in listData" :key="index">{{ item }}</li> </ul> </vue-seamless-scroll> </div> </template> <script> export default { data() { return { listData: ['Item 1', 'Item 2', 'Item 3'], // 要显示的数据列表 classOption: { direction: 0,// 0 表示从左向右;1表示从上往下; 默认是垂直向下(1),这里改为0代表横向 limitMoveNum: 5, singleHeight: 0, waitTime: 1000, speed: 60, hoverStop: true, openWatch: true, switchDelay: 3000, step: 1.5, limitTime: 80 } }; } }; </script> <style scoped lang="scss"> .scroll-wrapper{ width: 400px; height: 100px; overflow:hidden; } .seamless-warp ul li { float:left; margin-right:20px; } </style> ``` 上述代码片段中设置了 `direction` 为 0 ,这使得滚动的方向变为由左至右的横向模式[^1]。 同时也通过 CSS 制了容器大小及子项样式,确保它们能够在一行内排列开来形成连续不断的流动感。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值