我正在使用Angular 17和ngx-owl-carousel-0:17.0.0包.

我将我的定制选项设置为:

customOptions: OwlOptions = {
  loop: true,
  mouseDrag: false,
  touchDrag: false,
  pullDrag: false,
  dots: false,
  navSpeed: 700,
  margin:10,
  navText: ["<", ">"],
  responsive: {
    0: {
      items: 1
    },
    400: {
      items: 2
    },
    760: {
      items: 3
    },
    1000: {
      items: 4
    }
  },
  nav: true
}

目前,在我的页面中,我有默认模板:

<owl-carousel-o [options]="customOptions">
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/92c952" alt="img 1" />
    </div>
  </ng-template>
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/771796" alt="img 2" />
    </div>
  </ng-template>
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/24f355" alt="img 3" />
    </div>
  </ng-template>
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/d32776" alt="img 4" />
    </div>
  </ng-template>
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/f66b97" alt="img 5" />
    </div>
  </ng-template>
  <ng-template carouselSlide>
    <div class="slide">
      <img src="https://via.placeholder.com/600/56a8c2" alt="img 6" />
    </div>
  </ng-template>
</owl-carousel-o>

这是我的输出.您可以看到 carousel 底部的导航按钮,虽然不是世界末日,但我似乎无法将它们放在 carousel 本身的左右位置.

enter image description here

在我的Angular.json文件中,我有:

"styles": [
  "src/styles.css",
  "node_modules/bootstrap/dist/css/bootstrap.min.css",
  "node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.carousel.min.css",
  "node_modules/ngx-owl-carousel-o/lib/styles/prebuilt-themes/owl.theme.default.min.css"
],
"scripts": [
  "node_modules/jquery/dist/jquery.min.js"
]

推荐答案

我们可以使用下面的CSS来实现您想要的,我用position: absolute将导航覆盖在幻灯片上以获得想要的效果!

  ::ng-deep .owl-carousel  {
    position: relative !important;
  }
  ::ng-deep .owl-nav {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    right: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

如果您不喜欢::ng-deep,您可以将样式移动到全局样式并将它们包装在一个类中,以便根据类有条件地应用它们!

完整代码:完整代码:

import { Component } from '@angular/core';
import { bootstrapApplication } from '@angular/platform-browser';
import { CarouselModule, OwlOptions } from 'ngx-owl-carousel-o';
import 'zone.js';

@Component({
  selector: 'app-root',
  styles: [
    `
      ::ng-deep .owl-carousel  {
        position: relative !important;
      }
      ::ng-deep .owl-nav {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        right: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
      }
    `,
  ],
  standalone: true,
  imports: [CarouselModule],
  template: `
    <owl-carousel-o [options]="customOptions">
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/92c952" alt="img 1" />
        </div>
      </ng-template>
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/771796" alt="img 2" />
        </div>
      </ng-template>
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/24f355" alt="img 3" />
        </div>
      </ng-template>
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/d32776" alt="img 4" />
        </div>
      </ng-template>
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/f66b97" alt="img 5" />
        </div>
      </ng-template>
      <ng-template carouselSlide>
        <div class="slide">
          <img src="https://via.placeholder.com/600/56a8c2" alt="img 6" />
        </div>
      </ng-template>
    </owl-carousel-o>
  `,
})
export class App {
  customOptions: OwlOptions = {
    loop: true,
    mouseDrag: false,
    touchDrag: false,
    pullDrag: false,
    dots: false,
    navSpeed: 700,
    margin: 10,
    navText: ['<', '>'],
    responsive: {
      0: {
        items: 1,
      },
      400: {
        items: 2,
      },
      760: {
        items: 3,
      },
      1000: {
        items: 4,
      },
    },
    nav: true,
  };
}

bootstrapApplication(App);

Stackblitz Demo

Angular相关问答推荐

Angular 和PrimeNg文件Uploader:渲染元件时如何显示选定文件的列表?

判断哪个Angular 信号导致了影响

独立Angular 零部件不在辅零部件或共享零部件中工作

类是一个独立的组件,不能在Angular中的`@NgModule.bootstrap`数组中使用

Angular 16模块中未使用的组件是否从Bundle 包中删除(树摇动)?

除非将 signal.set 作为间隔的一部分调用,否则Angular 信号效果不会执行

PrimeNG 避免在同一位置使用不同键的 cogo toast 重叠

没有调用订阅的原因是什么?

MatTooltip 显示在 html 原生对话框下方

Nz 树 Select .如何在子 node 中显示父 node 名称?

Angular JWT Token 被添加到lazyUpdate 而不是 HttpHeaders 中的标头

在 Angular 14 中找不到命名空间google

不再需要 core-js 了吗?

Angular 2.0 中 $scope 的替代品

如何每隔一段时间发出 HTTP 请求?

Angular2延迟加载模块错误'找不到模块'

BrowserAnimationsModule 和 NoopAnimationsModule 有什么区别?

在 Angular 2 中使用逗号作为列表分隔符

ng build 时超出调用重试次数异常

如何在 Angular 2 中跟踪路由?