Commit 1f5a8997632a2fc582c490cbbec8105c4bde0d62
1 parent
4353fecc
购好物,首页,“折扣专区”和“积分商城”轮训在切换页面时不要再次设置轮训,优化~
Showing
1 changed file
with
33 additions
and
23 deletions
src/pages/optimization2/optimization2.vue
| ... | ... | @@ -363,7 +363,8 @@ |
| 363 | 363 | discountData: { |
| 364 | 364 | now: [], // 当前折扣专区数据(用于动画展示) |
| 365 | 365 | next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据) |
| 366 | - index: 0 // 下一个需要展示的位置下标(折扣专区now数据) | |
| 366 | + index: 0, // 下一个需要展示的位置下标(折扣专区now数据) | |
| 367 | + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了 | |
| 367 | 368 | }, |
| 368 | 369 | quality: null, // 品质优选 |
| 369 | 370 | salesOptions: null, // 热销排行选项 |
| ... | ... | @@ -377,7 +378,8 @@ |
| 377 | 378 | pointsData: { |
| 378 | 379 | now: [], // 当前积分商城数据(用于动画展示) |
| 379 | 380 | next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据) |
| 380 | - index: 0 // 下一个需要展示的位置下标(积分商城now数据) | |
| 381 | + index: 0, // 下一个需要展示的位置下标(积分商城now数据) | |
| 382 | + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了 | |
| 381 | 383 | }, |
| 382 | 384 | likeLists: null, // 猜你喜欢列表 |
| 383 | 385 | likeNum: 0, // 猜你喜欢二维数组当前显示的下标 |
| ... | ... | @@ -674,15 +676,19 @@ |
| 674 | 676 | // 设置折扣专区计时器,每3秒切换一次数据 |
| 675 | 677 | this.$nextTick(() => { |
| 676 | 678 | |
| 677 | - // 判断数据数量是否 > 2 ,如果是,执行切换轮训 | |
| 678 | - if (this.discountData.now.length < this.discountLists.length) { | |
| 679 | + // 判断是否已有轮训对象 | |
| 680 | + if (!this.discountData.interval) { | |
| 679 | 681 | |
| 680 | - // 轮训计时器 | |
| 681 | - setInterval(() => { | |
| 682 | - | |
| 683 | - // 切换折扣专区数据 | |
| 684 | - this.fade(this.discountData, this.discountLists); | |
| 685 | - }, 3000); | |
| 682 | + // 判断数据数量是否 > 2 ,如果是,执行切换轮训 | |
| 683 | + if (this.discountData.now.length < this.discountLists.length) { | |
| 684 | + | |
| 685 | + // 轮训计时器 | |
| 686 | + this.discountData.interval = setInterval(() => { | |
| 687 | + | |
| 688 | + // 切换折扣专区数据 | |
| 689 | + this.fade(this.discountData, this.discountLists); | |
| 690 | + }, 3000); | |
| 691 | + } | |
| 686 | 692 | } |
| 687 | 693 | }); |
| 688 | 694 | } |
| ... | ... | @@ -703,22 +709,26 @@ |
| 703 | 709 | // 设置积分商城计时器,每3秒切换一次数据 |
| 704 | 710 | this.$nextTick(() => { |
| 705 | 711 | |
| 706 | - // 判断数据数量是否 > 2 ,如果是,执行切换轮训 | |
| 707 | - if (this.pointsData.now.length < this.pointsLists.length) { | |
| 712 | + // 判断是否已有轮训对象 | |
| 713 | + if (!this.pointsData.interval) { | |
| 708 | 714 | |
| 709 | - // 和折扣专区岔开,延时1秒执行 | |
| 710 | - setTimeout(() => { | |
| 711 | - | |
| 712 | - // 随机生成轮训时间 | |
| 713 | - let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000); | |
| 715 | + // 判断数据数量是否 > 2 ,如果是,执行切换轮训 | |
| 716 | + if (this.pointsData.now.length < this.pointsLists.length) { | |
| 714 | 717 | |
| 715 | - // 轮训计时器 | |
| 716 | - setInterval(() => { | |
| 718 | + // 和折扣专区岔开,延时1秒执行 | |
| 719 | + setTimeout(() => { | |
| 717 | 720 | |
| 718 | - // 切换折扣专区数据 | |
| 719 | - this.fade(this.pointsData, this.pointsLists); | |
| 720 | - }, timer || 3000); | |
| 721 | - }, 1000); | |
| 721 | + // 随机生成轮训时间 | |
| 722 | + let timer = (parseInt(Math.random() * (500 + 1) + 3000, 10) || 3000); | |
| 723 | + | |
| 724 | + // 轮训计时器 | |
| 725 | + this.pointsData.interval = setInterval(() => { | |
| 726 | + | |
| 727 | + // 切换折扣专区数据 | |
| 728 | + this.fade(this.pointsData, this.pointsLists); | |
| 729 | + }, timer || 3000); | |
| 730 | + }, 1000); | |
| 731 | + } | |
| 722 | 732 | } |
| 723 | 733 | }); |
| 724 | 734 | } else { | ... | ... |