【问题标题】:On click scroll div horizontally in angular 6单击以角度 6 水平滚动 div
【发布时间】:2019-11-17 20:14:02
【问题描述】:

我正在使用 Angular 6 和 CSS 引导框架。我想在单击左/右按钮时水平滚动 div。

我想滚动下面的 div,章节名称可能包含一章或多于 1 章,即 1-10 章。如何实现左键和右键的水平滚动。

<div style="margin-top:52px;" *ngFor="let chapter of chapters; let i = index" >
<li style="display: inline-block;float: left; padding: 0px 30px 0px 0px;"> chapter.name </li>
</div>

作为参考,在下面的示例中,我们有带有图像的电影名称。我只使用文本,

我当前的用户界面如下所示,我需要实现点击事件滚动功能,

【问题讨论】:

  • 与您的问题无关,但您的 HTML 错误,您不能在 &lt;li&gt; 标签周围使用 &lt;div&gt;。另外:你试过什么?什么不起作用?
  • @cloned,实际上我是 Angular 新手,我必须在一行中显示章节名称列表。如果章节更多,则单击下一步按钮时应向右水平滚动,单击左箭头按钮时应向右水平滚动。不知道如何在 Angular 6 中实现这一点。我用图像更新了问题
  • @cloned,我用图片编辑了我的问题,以解释我面临的问题。请检查
  • @user3599302,你收到了我在 cmets 中的最后回复,反对答案

标签: css angular scroll angular6 scrollto


【解决方案1】:

您正在寻找的是一个旋转木马...它有箭头表示您所瞄准的滚动效果:

相关HTML

<div class='containerDiv'>
    <carousel [itemsPerSlide]="itemsPerSlide" [singleSlideOffset]="singleSlideOffset" [showIndicators]="false" [noWrap]="!noWrap"
     [interval]="false" [startFromIndex]="0" (slideRangeChange)="onSlideRangeChange($event)">
        <slide *ngFor="let slide of slides; let index=index">
            <img [src]="slide.image" alt="image slide" style="display: block; width: 100%;">
    <div class="carousel-caption">
      <p>some optional text {{index}}</p>
    </div>
  </slide>
</carousel>
</div>

相关TS

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

@Component({
  selector: 'demo-carousel-multilist',
  templateUrl: './multilist.html',
  styles: [`
  ::ng-deep a.carousel-control-prev, a.carousel-control-prev:hover {left:-7% !important;}
  ::ng-deep .carousel-control-next, .carousel-control-next:hover {right:-8% !important;}
  slide{margin:5px;}
  .carousel-caption{position:relative; text-align: center; padding: 15px 0 0 0; bottom: 0;}
  `]
})
export class DemoCarouselMultilistComponent {
  itemsPerSlide = 4;
  singleSlideOffset = false;
  noWrap = false;

  slidesChangeMessage = '';

  slides = [
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/1.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/2.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/3.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/4.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/5.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/6.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/7.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/8.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/1.jpg'},
    {image: 'https://valor-software.com/ngx-bootstrap/assets/images/nature/2.jpg'}
  ];

  onSlideRangeChange(indexes: number[]): void {
    this.slidesChangeMessage = `Slides have been switched: ${indexes}`;
  }
}

完成working stackblitz here

【讨论】:

  • 谢谢,是的,旋转木马,但我不想处理图像。我只想滚动像这样的章节名称i.stack.imgur.com/ZcJkU.png
  • 感谢 Akber,但是当我与我的代码集成时,我的意思是我的动态代码。它抛出错误:CarouselComponent.html:10 错误类型错误:无法在 CarouselComponent.move (ngx-bootstrap-carousel.js? f1ee:433)
  • 点击右导航箭头后,该错误正在抛出。我已经编写了在循环中添加值的代码: for (let v in this.chapters) { console.log(this.chapters[v].comicdetaileddata_episode); this.slides.push({ name: this.chapters[v].episode }) }
  • 好的,我会试试的。如果我使用相同的 stackblitz 代码并集成它就像一个魅力。但是,当我动态添加幻灯片 =[] 并单击导航时,我得到了那个错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多