angular6 集成swiper, 并将swiper封装成公共组件

1. angular 引入 swiper

在引入swiper时,我首次是使用npm安装的,但是总是报swiper未定义, 在网上找的教程也没用,只好直接将swiper下载下来,直接将js, css文件引入到angular.json文件中:
这里写图片描述

2. 将swiper封装成组件, 新建一个swiper-slide compontent

html 代码

<div class="swiper-container">

  <div class="swiper-wrapper">
    <ng-content></ng-content>
  </div>

</div>

ts 代码

import { Component, OnInit, AfterViewInit } from '@angular/core';
declare let Swiper: any;

@Component({
  selector: 'app-swiper-slide',
  templateUrl: './swiper-slide.component.html',
  styleUrls: ['./swiper-slide.component.css']
})
export class SwiperSlideComponent implements OnInit, AfterViewInit {
  mySwiper: any;

  constructor() { }

  ngOnInit() {
    setTimeout(() => {
      this.initSwiper();
    }, 20);
  }

  ngAfterViewInit() {

  }

  initSwiper() {
    this.mySwiper = new Swiper('.swiper-container', {
      slidesPerView: 'auto',
      freeMode: true,
      observer:true,//修改swiper自己或子元素时,自动初始化swiper
      observeParents:true,//修改swiper的父元素时,自动初始化swiper

    });
  }



}

使用:

<app-swiper-slide >
    // self-slide 的内容是width:auto; heigth: auto; 因为我发现它滑动块的width, heigth 都是100%; 设置slidesPerView: 'auto'; 也没啥用
    <div class="swiper-slide self-slide"  >
      // 滑动块内的内容
      </div>
  </app-swiper-slide>

注: 这只是一个简单的封装,没有加

<!-- If we need pagination -->
    <div class="swiper-pagination"></div>

    <!-- If we need navigation buttons -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>

    <!-- If we need scrollbar -->
    <div class="swiper-scrollbar"></div>

如果需要加上就ok。
最后,这个封装并不是很理想,跟我想要的不太一样,如果有更好的封装方法,请留言指导, 不胜感激。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值