angular 横向自滚动(滚动广告效果)

一、实际效果图

在这里插入图片描述

二、实现原理:

原理:每一次的滚动都是在其setInterval()定时器的作用下,每次将DOM.scrollLeft++

三、代码实现:

.html 代码如下:

<div class="Qbody">
    <div id="parent" class="parent">
        <div id="child1" class="child">
            <div *ngFor="let data of listOfDatas;index as i">
                <div [class]="'tabletBody'+i">{{data.title}}</div>
            </div>
        </div>
        <div id="child2" class="child"></div>
    </div>
</div>

.css 代码如下:

.Qbody {
  padding: 100px;
  //内容层
  .parent {
    width: 600px; //多宽出现滚动
    margin: auto 0;
    overflow-x: hidden;
    .child {
      /*设置的子盒子高度大于父盒子,产生溢出效果*/
      white-space: nowrap;
      div {
        display:inline;
        .tabletBody0 {
          background: #acf31e;
          font-size: 16px;
        }
        .tabletBody1 {
          background: #9e6e6e;
          font-size: 16px;
        }
        .tabletBody2 {
          background: #17df81;
          font-size: 16px;
        }
      }
    }
  }
}

.ts 代码如下:

ngOnInit(): void {
    var parent = document.getElementById('parent');
    var child1 = document.getElementById('child1');
    var child2 = document.getElementById('child2');
    child2.innerHTML = child1.innerHTML;
    this.mysetInterval = setInterval(function () {
      if (child2.offsetWidth - parent.scrollLeft <= 0) {
        parent.scrollLeft -= child1.offsetWidth;
      } else {
        parent.scrollLeft++;
      }
    }, 50);
  }
  mysetInterval
  ngOnDestroy() {//每当 Angular 每次销毁指令/组件之前调用并清扫
    clearInterval(this.mysetInterval)//关闭循环
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值