账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    swiper的轮播图在angular 5里面无法拖到第三张图片
    57
    0

    轮播图里面的sliders是不确定的,数据是从api接口取回来的,但是数据取回来有时延,我用setTimeout模拟了调取api, 再用setTimeout来做swiper实例的更新。
    问题:轮播图无法正常拖动,只能拖到第二张,然后就拖不动了,请问怎么解决这个问题?
    链接:https://stackblitz.com/edit/a...

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤雁横空 普通会员 1楼

      在Angular 5中,Swiper组件默认的滚动顺序是上、下、左、右四个方向的,你可以通过设置轮播图的 direction 属性来指定滚动的方向。默认情况下,Swiper会按照 leftrightupdown 这四个方向的顺序进行轮播。

      如果你想要将Swiper的轮播图拖动到第三张图片,你可以按照以下步骤操作:

      1. 在你的Angular 5项目中,创建一个包含Swiper组件的app.component.html文件。

      ```html <swiper direction="horizontal" [onEnd]="endHandler" [start]="startHandler" [slidesPerView]="5" [slides]="yourSlidesArray"

      {{slide.content}}
      ```

      在这个示例中,我们创建了一个swiper元素,设置了其direction属性为horizontal,表示轮播图将以水平方向滑动。[onEnd][start][slidesPerView][slides] 属性分别对应Swiper的初始化、结束滑动、每张图片的展示数量和你的图片数组。

      1. 在你的Angular 5项目中,创建一个包含Swiper组件的app.component.ts文件。

      ```typescript import { Component } from '@angular/core';

      @Component({ selector: 'app-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { yourSlidesArray = [ { content: 'Slide 1' }, { content: 'Slide 2' }, { content: 'Slide 3' }, { content: 'Slide 4' } ];

      startHandler = () => { this.swiper.slideTo(1); };

      endHandler = () => { this.swiper.slideTo(3); }; } ```

      在这个示例中,我们定义了一个startHandlerendHandler方法,分别用于启动和结束Swiper的滑动。当endHandler方法被调用时,Swiper会从第3张图片开始滑动。

      1. 在你的Angular 5项目中,创建一个包含Swiper组件的app.component.css文件,以样式表示你的Swiper元素。

      ```css .swiper { direction: horizontal; position: relative; overflow: hidden; }

      .swiper__item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: transform 0.5s; }

      .swiper__item:hover { transform: translateX(-100%); }

      .swiper__item.active { transform: translateX(0); }

      .swiper__item.active.active { transform: translateX(0); transition: transform 0.5s; } ```

      在这个示例中,我们使用了CSS类来表示每个Swiper项的样式。position: absolute 用于设置Swiper项的定位方式为绝对定位,top: 0; left: 0; width: 100%; height: 100%; 设置了Swiper项的宽度和高度,transition: transform 0.5s; 设置了Swiper项的动画效果。当鼠标悬停在Swiper项上时,transform: translateX(-100%) 会使Swiper项向右移动100%,从而将Swiper项拖动到第3张图片。

      注意,这个示例假设你的Swiper组件和图片数组已经存在于app.component.htmlapp.component.ts文件中,并且app.component.css文件中包含了样式。如果你没有这些文件,你需要在创建组件和加载项目时添加相应的依赖和样式文件。例如,如果你的Swiper组件位于app.component.ts文件中,并且图片数组位于app.component.html文件中,你需要在app.component.ts文件中添加以下依赖:

      ```typescript import { Component } from '@angular/core'; import { Swiper } from '@swimlane/ngx-swiper';

      @Component({ selector: 'app-app', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { yourSlidesArray = [ { content: 'Slide 1' }, { content: 'Slide 2' }, { content: 'Slide 3' }, { content: 'Slide 4' } ];

      constructor(private swiper: Swiper) {} } ```

      然后,在app.component.html文件中引入Swiper组件和图片数组,并在样式文件中应用这些样式:

      ```html <swiper direction="horizontal" [onEnd]="endHandler" [start]="startHandler" [slidesPerView]="5" [slides]="yourSlidesArray"

      {{slide.content}}
      ```

      这样,当你点击或悬停在Swiper项上时,Swiper将自动滑动到第3张图片。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部