javascript - 如何使用 Angular 6+ 激活 Igx 轮播的触摸滑块
问题描述
如何使用 Angular 6+ 激活 Igx 轮播的触摸滑块
实际上,我需要 igx 轮播来滑动图像,我从 stackblitz 中获取参考(https://stackblitz.com/edit/github-j6q6ad?file=src%2Fapp%2Fcarousel%2Fcarousel.component.html)它在 stackblitz 中非常有效,但是在我们的实时环境(Visual Studio Code)中,触摸滑块无法正常工作,所以请帮我激活触摸滑块的图像,并附上我的代码供您参考....
app.componet.html:
<div class="carousel-container">
<igx-carousel #carousel>
<igx-slide *ngFor="let slide of slides;">
<div class="image-container">
<img [src]="slide.src">
</div>
</igx-slide>
</igx-carousel>
</div>
app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'SampleCarouselThree';
public slides = [
{
src: "https://www.infragistics.com/angular-demos/assets/images/carousel/ignite-ui-angular-indigo-design.png"
},
{
src: "https://www.infragistics.com/angular-demos/assets/images/carousel/slider-image-chart.png"
},
{
src: "https://www.infragistics.com/angular-demos/assets/images/carousel/ignite-ui-angular-charts.png"
}
];
}
app.component.scss:
@import '~igniteui-angular/lib/core/styles/themes/index';
.carousel-container{
width: 70vw;
height: 80vh;
margin: 16px auto;
}
:host ::ng-deep{
.image-container{
max-width: 85%;
display: flex;
align-items: center;
justify-content: center;
}
.igx-carousel{
max-width: 100%;
width: unset;
}
.igx-nav-dot{
background: black;
box-shadow: none;
width: 15px;
height: 15px;
}
.igx-slide{
display: flex;
justify-content: center;
align-items: center;
max-width: 100%;
width: unset;
}
.igx-slide img{
object-fit: fill;
max-width: 90%;
}
}
app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from "@angular/forms";
import { IgxCarouselModule, IgxSliderModule } from "igniteui-angular";
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule,
IgxCarouselModule,
IgxSliderModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
style.scss:
// CSS Reset, comment out if not required or using a different module
// @import '~minireset.css/minireset';
@import '~igniteui-angular/lib/core/styles/themes/index';
@include igx-core();
@include igx-theme($default-palette, $legacy-support: true);
:root {
@include css-vars-from-palette($default-palette);
}
/* autoprefixer grid: on */
html,
body {
height: 100%;
overflow: hidden;
margin: 0;
}
.sample-wrapper {
width: inherit;
position: relative;
height: 100%;
margin: 0 auto;
background: transparent;
}
.sample-content {
display: flex;
flex-grow: 1;
flex-flow: row wrap;
justify-content: flex-start;
padding: 0;
-webkit-animation: fade-in .3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
-moz-animation: fade-in .3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
animation: fade-in .3s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
}
.sample-column {
display: flex;
flex-flow: column nowrap;
flex: 1 0 25%;
align-content: flex-start;
margin: 16px;
min-width: 280px;
}
.sample-title {
color: #0375be;
margin-bottom: 12px;
margin-top: 12px;
}
.sample-title .light {
font-weight: 400;
}
.sample-description {
font-size: 14px;
font-weight: normal;
color: #717171;
}
@-webkit-keyframes color-change-2x {
0% {
background: #fdf8f0;
}
100% {
background: #f6e7ec;
}
}
@keyframes color-change-2x {
0% {
background: #fdf8f0;
}
100% {
background: #f6e7ec;
}
}
@-webkit-keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.headerAlignSyle {
text-align: right !important;
}
$green-palette: igx-palette($primary: #09f,$secondary: #72da67, $surface: #333);
.fin-dark-theme {
@include igx-dark-theme($green-palette);
background: #333;
::-moz-placeholder {
opacity: 1;
}
}
.dark-theme {
background: #333;
color: #fff;
@include igx-dark-theme($green-palette, $legacy-support: true);
.grid-chart-contextmenu-wrapper{
@include igx-fluent-dark-theme($fluent-excel-palette);
}
}
解决方案
安装hammerjs
手势
npm install hammerjs
然后在 polyfills 中添加“hammerjs”
// polyfills.ts
import "hammerjs/hammer";
推荐阅读
- python - Telethon 脚本未向某些电话号码发送代码
- websocket - 自定义事件不会从 feathersjs 发送到 feathers-vuex
- python - 将一个类的属性调用到另一个类中
- sql-server-2008 - SQL-EX.RU (Exercise #137) -- 在第二个检查数据库上返回不正确的数据集
- python - Tensorflow 最多三个函数
- google-cloud-platform - 分区需要多少行才能在 BigQuery 中获得良好的性能?
- spring-boot - 反应堆按需通量或水槽
- reactjs - 单击时关闭反应组件
- angular - 显示跨字段自定义验证错误信息
- arrays - 将选定的单元格分配给变量