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,7 +363,8 @@ | ||
| 363 | discountData: { | 363 | discountData: { |
| 364 | now: [], // 当前折扣专区数据(用于动画展示) | 364 | now: [], // 当前折扣专区数据(用于动画展示) |
| 365 | next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据) | 365 | next: 0, // 下一个需要展示的折扣专区数组下标(折扣专区总数据) |
| 366 | - index: 0 // 下一个需要展示的位置下标(折扣专区now数据) | 366 | + index: 0, // 下一个需要展示的位置下标(折扣专区now数据) |
| 367 | + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了 | ||
| 367 | }, | 368 | }, |
| 368 | quality: null, // 品质优选 | 369 | quality: null, // 品质优选 |
| 369 | salesOptions: null, // 热销排行选项 | 370 | salesOptions: null, // 热销排行选项 |
| @@ -377,7 +378,8 @@ | @@ -377,7 +378,8 @@ | ||
| 377 | pointsData: { | 378 | pointsData: { |
| 378 | now: [], // 当前积分商城数据(用于动画展示) | 379 | now: [], // 当前积分商城数据(用于动画展示) |
| 379 | next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据) | 380 | next: 0, // 下一个需要展示的积分商城数组下标(积分商城总数据) |
| 380 | - index: 0 // 下一个需要展示的位置下标(积分商城now数据) | 381 | + index: 0, // 下一个需要展示的位置下标(积分商城now数据) |
| 382 | + interval: null // 轮训对象,用于判断如果有轮训对象就不再重新设置轮训了 | ||
| 381 | }, | 383 | }, |
| 382 | likeLists: null, // 猜你喜欢列表 | 384 | likeLists: null, // 猜你喜欢列表 |
| 383 | likeNum: 0, // 猜你喜欢二维数组当前显示的下标 | 385 | likeNum: 0, // 猜你喜欢二维数组当前显示的下标 |
| @@ -674,15 +676,19 @@ | @@ -674,15 +676,19 @@ | ||
| 674 | // 设置折扣专区计时器,每3秒切换一次数据 | 676 | // 设置折扣专区计时器,每3秒切换一次数据 |
| 675 | this.$nextTick(() => { | 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,22 +709,26 @@ | ||
| 703 | // 设置积分商城计时器,每3秒切换一次数据 | 709 | // 设置积分商城计时器,每3秒切换一次数据 |
| 704 | this.$nextTick(() => { | 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 | } else { | 734 | } else { |