优化me页面2
This commit is contained in:
parent
2407977d39
commit
12d2553225
@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="posters">
|
<div class="posters">
|
||||||
<div class="poster-item" v-for="i in list">
|
<div class="poster-item" v-for="i in list">
|
||||||
<img class="poster" src="../assets/img/poster/2.jpg" alt="">
|
<img class="poster" :src="i.src" alt="">
|
||||||
<div class="num">
|
<div class="num">
|
||||||
<img class="love" src="../assets/img/icon/love.svg" alt="">
|
<img class="love" src="../assets/img/icon/love.svg" alt="">
|
||||||
<span>123.2w</span>
|
<span>{{ likeNum(i.like) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -18,7 +18,16 @@ export default {
|
|||||||
list: {
|
list: {
|
||||||
type: [Array, Number],
|
type: [Array, Number],
|
||||||
default: () => {
|
default: () => {
|
||||||
return 5
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
likeNum(num) {
|
||||||
|
if (num < 1000) {
|
||||||
|
return num
|
||||||
|
} else {
|
||||||
|
return num / 10000 + 'w'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -205,8 +205,6 @@ export default {
|
|||||||
components: {Posters, Footer, Indicator},
|
components: {Posters, Footer, Indicator},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
serviceEl: {},
|
|
||||||
serviceHeight: 0,
|
|
||||||
contentIndex: 0,
|
contentIndex: 0,
|
||||||
baseActiveIndex: 0,
|
baseActiveIndex: 0,
|
||||||
desc: null,
|
desc: null,
|
||||||
|
|||||||
@ -2,22 +2,28 @@
|
|||||||
<div class="Me">
|
<div class="Me">
|
||||||
<SlideRowList style="width: 100vw;" v-model:active-index="baseActiveIndex">
|
<SlideRowList style="width: 100vw;" v-model:active-index="baseActiveIndex">
|
||||||
<SlideItem>
|
<SlideItem>
|
||||||
|
<div ref="float" class="float" :class="floatFixed?'fixed':''">
|
||||||
|
<div class="left" style="opacity: 0;">
|
||||||
|
<img src="../../assets/img/icon/next.svg" alt="">
|
||||||
|
<span>切换账号</span>
|
||||||
|
</div>
|
||||||
|
<transition name="fade">
|
||||||
|
<div class="center" v-if="floatShowName">
|
||||||
|
<p class="name f22 mt1r mb1r">ttentau</p>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
<div class="right">
|
||||||
|
<img :style="floatFixed?'opacity: 0;':''" src="../../assets/img/icon/me/finger-right.png" alt="">
|
||||||
|
<img src="../../assets/img/icon/me/menu.png" alt="" @click.stop="baseActiveIndex = 1">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="scroll"
|
<div class="scroll"
|
||||||
ref="scroll"
|
ref="scroll"
|
||||||
@touchstart="touchStart($event)"
|
@touchstart="touchStart($event)"
|
||||||
@touchmove="touchMove($event)"
|
@touchmove="touchMove($event)"
|
||||||
@touchend="touchEnd($event)">
|
@touchend="touchEnd($event)">
|
||||||
<div ref="desc" class="desc">
|
<div ref="desc" class="desc">
|
||||||
<header ref="header">
|
<header ref="header"></header>
|
||||||
<div class="left" style="opacity: 0;">
|
|
||||||
<img src="../../assets/img/icon/next.svg" alt="">
|
|
||||||
<span>切换账号</span>
|
|
||||||
</div>
|
|
||||||
<div class="right">
|
|
||||||
<img src="../../assets/img/icon/me/finger-right.png" alt="">
|
|
||||||
<img src="../../assets/img/icon/me/menu.png" alt="" @click.stop="baseActiveIndex = 1">
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
<img src="../../assets/img/icon/head-image.jpeg" class="head-image">
|
<img src="../../assets/img/icon/head-image.jpeg" class="head-image">
|
||||||
@ -66,35 +72,36 @@
|
|||||||
</Indicator>
|
</Indicator>
|
||||||
<SlideRowList
|
<SlideRowList
|
||||||
name="videoList"
|
name="videoList"
|
||||||
style="height: calc(100vh - 9.5rem);"
|
style="height: calc(100vh - 14rem);"
|
||||||
v-model:active-index="contentIndex">
|
v-model:active-index="contentIndex">
|
||||||
<SlideItem class="SlideItem"
|
<SlideItem class="SlideItem"
|
||||||
@touchmove="move"
|
@touchmove="move"
|
||||||
:style="isScroll?'overflow: auto;':''">
|
:style="isScroll?'overflow: auto;':''">
|
||||||
<Posters :list="25"></Posters>
|
<Posters :list="res.my"></Posters>
|
||||||
<div class="no-more">暂时没有更多了</div>
|
<div class="no-more">暂时没有更多了</div>
|
||||||
</SlideItem>
|
</SlideItem>
|
||||||
<SlideItem class="SlideItem"
|
<SlideItem class="SlideItem"
|
||||||
@touchmove="move"
|
@touchmove="move"
|
||||||
:style="isScroll?'overflow: auto;':''">
|
:style="isScroll?'overflow: auto;':''">
|
||||||
<Posters :list="5"></Posters>
|
<Posters :list="res.private"></Posters>
|
||||||
<div class="no-more">暂时没有更多了</div>
|
<div class="no-more">暂时没有更多了</div>
|
||||||
</SlideItem>
|
</SlideItem>
|
||||||
<SlideItem class="SlideItem"
|
<SlideItem class="SlideItem"
|
||||||
@touchmove="move"
|
@touchmove="move"
|
||||||
:style="isScroll?'overflow: auto;':''">
|
:style="isScroll?'overflow: auto;':''">
|
||||||
<Posters :list="5"></Posters>
|
<Posters :list="res.like"></Posters>
|
||||||
<div class="no-more">暂时没有更多了</div>
|
<div class="no-more">暂时没有更多了</div>
|
||||||
</SlideItem>
|
</SlideItem>
|
||||||
<SlideItem class="SlideItem"
|
<SlideItem class="SlideItem"
|
||||||
@touchmove="move"
|
@touchmove="move"
|
||||||
:style="isScroll?'overflow: auto;':''">
|
:style="isScroll?'overflow: auto;':''">
|
||||||
<Posters :list="5"></Posters>
|
<Posters :list="res.collect"></Posters>
|
||||||
<div class="no-more">暂时没有更多了</div>
|
<div class="no-more">暂时没有更多了</div>
|
||||||
</SlideItem>
|
</SlideItem>
|
||||||
</SlideRowList>
|
</SlideRowList>
|
||||||
</div>
|
</div>
|
||||||
<Indicator
|
<Indicator
|
||||||
|
style="margin-top: 4.6rem;"
|
||||||
v-if="indicatorFixed"
|
v-if="indicatorFixed"
|
||||||
name="videoList"
|
name="videoList"
|
||||||
:fixed="true"
|
:fixed="true"
|
||||||
@ -105,7 +112,7 @@
|
|||||||
<Footer v-bind:init-tab="5"/>
|
<Footer v-bind:init-tab="5"/>
|
||||||
</SlideItem>
|
</SlideItem>
|
||||||
<SlideItem style="min-width: 70vw; overflow:auto;">
|
<SlideItem style="min-width: 70vw; overflow:auto;">
|
||||||
<transition name="fade">
|
<transition name="fade1">
|
||||||
<div class="ul" v-if="!isMoreFunction">
|
<div class="ul" v-if="!isMoreFunction">
|
||||||
<div class="li" @click="$nav('/my-card')">
|
<div class="li" @click="$nav('/my-card')">
|
||||||
<img src="../../assets/img/icon/newicon/left_menu/shopping.png" alt="">
|
<img src="../../assets/img/icon/newicon/left_menu/shopping.png" alt="">
|
||||||
@ -217,25 +224,32 @@ export default {
|
|||||||
components: {Posters, Footer, Indicator},
|
components: {Posters, Footer, Indicator},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
serviceEl: {},
|
|
||||||
serviceHeight: 0,
|
|
||||||
contentIndex: 0,
|
contentIndex: 0,
|
||||||
baseActiveIndex: 0,
|
baseActiveIndex: 0,
|
||||||
desc: null,
|
desc: null,
|
||||||
tabContents: [],
|
tabContents: [],
|
||||||
indicatorHeight: 42,
|
indicatorHeight: 42,
|
||||||
indicatorFixed: false,
|
indicatorFixed: false,
|
||||||
|
floatFixed: false,
|
||||||
|
floatShowName: false,
|
||||||
isScroll: false,
|
isScroll: false,
|
||||||
|
isMoreFunction: false,
|
||||||
refs: {
|
refs: {
|
||||||
header: null,
|
header: null,
|
||||||
headerHeight: 0,
|
headerHeight: 0,
|
||||||
descHeight: 0,
|
descHeight: 0,
|
||||||
},
|
},
|
||||||
isMoreFunction: false,
|
|
||||||
startLocationY: 0,
|
startLocationY: 0,
|
||||||
fixedLocationY: 0,
|
fixedLocationY: 0,
|
||||||
moveYDistance: 0,
|
moveYDistance: 0,
|
||||||
startTime: 0,
|
startTime: 0,
|
||||||
|
floatHeight: 46,
|
||||||
|
res: {
|
||||||
|
my: [],
|
||||||
|
private: [],
|
||||||
|
like: [],
|
||||||
|
collect: []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -250,8 +264,37 @@ export default {
|
|||||||
this.refs.descHeight = this.$refs.desc.offsetHeight
|
this.refs.descHeight = this.$refs.desc.offsetHeight
|
||||||
this.changeIndex(0, null)
|
this.changeIndex(0, null)
|
||||||
})
|
})
|
||||||
|
// this.getData()
|
||||||
|
// res.my
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getData() {
|
||||||
|
// for (let i = 0; i < this.$randomNum(15, 30); i++) {
|
||||||
|
// this.res.my.push({
|
||||||
|
// src: require(`../../assets/img/poster/${this.$randomNum(11)}.jpg`),
|
||||||
|
// like: this.$randomNum(99) * 10000
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// for (let i = 0; i < this.$randomNum(0, 5); i++) {
|
||||||
|
// this.res.private.push({
|
||||||
|
// src: require(`../../assets/img/poster/${this.$randomNum(11)}.jpg`),
|
||||||
|
// like: this.$randomNum(99) * 10000
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// for (let i = 0; i < this.$randomNum(200); i++) {
|
||||||
|
// this.res.like.push({
|
||||||
|
// src: require(`../../assets/img/poster/${this.$randomNum(11)}.jpg`),
|
||||||
|
// like: this.$randomNum(99) * 10000
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// for (let i = 0; i < this.$randomNum(10); i++) {
|
||||||
|
// this.res.collect.push({
|
||||||
|
// src: require(`../../assets/img/poster/${this.$randomNum(11)}.jpg`),
|
||||||
|
// like: this.$randomNum(99) * 10000
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
console.log(this.res)
|
||||||
|
},
|
||||||
changeIndex() {
|
changeIndex() {
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -269,6 +312,7 @@ export default {
|
|||||||
let moveYDistance = e.touches[0].pageY - this.startLocationY
|
let moveYDistance = e.touches[0].pageY - this.startLocationY
|
||||||
let distance = this.moveYDistance + moveYDistance * 1.2
|
let distance = this.moveYDistance + moveYDistance * 1.2
|
||||||
// console.log('distance', distance)
|
// console.log('distance', distance)
|
||||||
|
//往上划
|
||||||
if (distance > 0) {
|
if (distance > 0) {
|
||||||
if (distance < 400) {
|
if (distance < 400) {
|
||||||
// if (this.baseActiveIndex !== 0) return
|
// if (this.baseActiveIndex !== 0) return
|
||||||
@ -290,37 +334,44 @@ export default {
|
|||||||
// console.log(tt.scrollTop)
|
// console.log(tt.scrollTop)
|
||||||
if (!this.isScroll) {
|
if (!this.isScroll) {
|
||||||
SlideItem.style.overflow = 'auto'
|
SlideItem.style.overflow = 'auto'
|
||||||
SlideItem.scrollTop = Math.abs(distance) - this.refs.descHeight
|
SlideItem.scrollTop = Math.abs(distance) - this.refs.descHeight + this.floatHeight
|
||||||
}
|
}
|
||||||
if (SlideItem.scrollTop === 0 && (e.touches[0].pageY - this.fixedLocationY) > 0) {
|
if (SlideItem.scrollTop === 0 && (e.touches[0].pageY - this.fixedLocationY) > 0) {
|
||||||
this.isScroll = this.indicatorFixed = false
|
this.isScroll = this.indicatorFixed = false
|
||||||
SlideItem.style.overflow = 'hidden'
|
SlideItem.style.overflow = 'hidden'
|
||||||
this.startLocationY = e.touches[0].pageY
|
this.startLocationY = e.touches[0].pageY
|
||||||
this.moveYDistance = -this.refs.descHeight
|
this.moveYDistance = -this.refs.descHeight + this.floatHeight
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.indicatorFixed = Math.abs(distance) > this.refs.descHeight
|
this.indicatorFixed = Math.abs(distance) > this.refs.descHeight - this.floatHeight
|
||||||
|
this.floatFixed = Math.abs(distance) > 100
|
||||||
|
this.floatShowName = Math.abs(distance) > 150
|
||||||
if (this.indicatorFixed) {
|
if (this.indicatorFixed) {
|
||||||
this.fixedLocationY = e.touches[0].pageY
|
this.fixedLocationY = e.touches[0].pageY
|
||||||
}
|
}
|
||||||
this.$refs.scroll.style.transform = `translate3d(0,${distance}px,0)`
|
this.$refs.scroll.style.transform = `translate3d(0,${distance}px,0)`
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
touchEnd(e) {
|
touchEnd(e) {
|
||||||
console.log('this.startLocationY', this.startLocationY)
|
// console.log('this.startLocationY', this.startLocationY)
|
||||||
let moveYDistance = e.changedTouches[0].pageY - this.startLocationY
|
let moveYDistance = e.changedTouches[0].pageY - this.startLocationY
|
||||||
this.moveYDistance = this.moveYDistance + moveYDistance * 1.2//乘以1.2倍,加速滚动,不然看起来很慢
|
this.moveYDistance = this.moveYDistance + moveYDistance * 1.2//乘以1.2倍,加速滚动,不然看起来很慢
|
||||||
|
|
||||||
// console.log('end-moveYDistance', this.moveYDistance)
|
// console.log('end-moveYDistance', this.moveYDistance)
|
||||||
|
|
||||||
|
|
||||||
//往上划,恢复header
|
//往上划,恢复header
|
||||||
if (this.moveYDistance > 0) {
|
if (this.moveYDistance > 0) {
|
||||||
// if (this.baseActiveIndex !== 0) return
|
// if (this.baseActiveIndex !== 0) return
|
||||||
this.refs.header.style.transition = 'all .3s'
|
this.refs.header.style.transition = 'all .3s'
|
||||||
this.refs.header.style.height = this.refs.headerHeight + 'px'
|
this.refs.header.style.height = this.refs.headerHeight + 'px'
|
||||||
this.moveYDistance = 0
|
this.moveYDistance = 0
|
||||||
|
this.floatShowName = this.floatFixed = this.isScroll = false
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log('header-height',this.refs.descHeight - this.floatHeight)
|
||||||
|
// this.isScroll = Math.abs(this.moveYDistance) > this.refs.descHeight - this.floatHeight
|
||||||
//原谅我判断太多
|
//原谅我判断太多
|
||||||
//如果没固定,则可以滚动到顶和底
|
//如果没固定,则可以滚动到顶和底
|
||||||
if (!this.indicatorFixed) {
|
if (!this.indicatorFixed) {
|
||||||
@ -339,13 +390,12 @@ export default {
|
|||||||
//往上划
|
//往上划
|
||||||
if (distance > 0) {
|
if (distance > 0) {
|
||||||
//时间短,滑动距离长,则应该快速滚动到顶部
|
//时间短,滑动距离长,则应该快速滚动到顶部
|
||||||
|
gapTime = endTime - this.startTime
|
||||||
if (gapTime < 100 && Math.abs(distance) > 100) {
|
if (gapTime < 100 && Math.abs(distance) > 100) {
|
||||||
//用cancelAnimationFrame快速滚动到顶部,要比transition = 'all .3s'快
|
//用cancelAnimationFrame快速滚动到顶部,要比transition = 'all .3s'快
|
||||||
this.$refs.scroll.style.transition = 'none'
|
this.$refs.scroll.style.transition = 'none'
|
||||||
let transform = this.$refs.scroll.style.transform
|
let transformY = this.getTransform(this.$refs.scroll)
|
||||||
let transformY = transform.substring(transform.indexOf('0px') + 5, transform.lastIndexOf('0px') - 4)
|
|
||||||
//当前的transformY
|
//当前的transformY
|
||||||
transformY = parseInt(transformY)
|
|
||||||
// console.log('transformY', transformY)
|
// console.log('transformY', transformY)
|
||||||
let timer
|
let timer
|
||||||
cancelAnimationFrame(timer);
|
cancelAnimationFrame(timer);
|
||||||
@ -382,15 +432,25 @@ export default {
|
|||||||
this.$refs.scroll.style.transform = `translate3d(0,${distance > 0 ? 0 : -this.refs.descHeight}px,0)`
|
this.$refs.scroll.style.transform = `translate3d(0,${distance > 0 ? 0 : -this.refs.descHeight}px,0)`
|
||||||
this.moveYDistance = distance > 0 ? 0 : -this.refs.descHeight
|
this.moveYDistance = distance > 0 ? 0 : -this.refs.descHeight
|
||||||
}
|
}
|
||||||
|
this.floatShowName = this.floatFixed = this.isScroll = false
|
||||||
} else {
|
} else {
|
||||||
//往下划
|
//往下划
|
||||||
this.$refs.scroll.style.transition = 'all .3s'
|
this.$refs.scroll.style.transition = 'all .3s'
|
||||||
this.$refs.scroll.style.transform = `translate3d(0,${distance > 0 ? 0 : -this.refs.descHeight}px,0)`
|
this.$refs.scroll.style.transform = `translate3d(0,${distance > 0 ? 0 : -this.refs.descHeight + this.floatHeight}px,0)`
|
||||||
this.moveYDistance = distance > 0 ? 0 : -this.refs.descHeight
|
this.moveYDistance = distance > 0 ? 0 : -this.refs.descHeight + this.floatHeight
|
||||||
|
this.floatShowName = this.floatFixed = this.isScroll = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.isScroll = Math.abs(this.moveYDistance) > this.refs.descHeight
|
// console.log('end-isScroll', this.isScroll)
|
||||||
|
|
||||||
|
},
|
||||||
|
getTransform(el) {
|
||||||
|
let transform = el.style.transform
|
||||||
|
let transformY = transform.substring(transform.indexOf('0px') + 5, transform.lastIndexOf('0px') - 4)
|
||||||
|
//当前的transformY
|
||||||
|
transformY = parseInt(transformY)
|
||||||
|
return transformY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -399,13 +459,13 @@ export default {
|
|||||||
<style scoped lang='scss'>
|
<style scoped lang='scss'>
|
||||||
@import "../../assets/scss/index";
|
@import "../../assets/scss/index";
|
||||||
|
|
||||||
.fade-enter-active,
|
.fade1-enter-active,
|
||||||
.fade-leave-active {
|
.fade1-leave-active {
|
||||||
transition: all 0.3s ease;
|
transition: all 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fade-enter-from,
|
.fade1-enter-from,
|
||||||
.fade-leave-to {
|
.fade1-leave-to {
|
||||||
transform: translateY(10px);
|
transform: translateY(10px);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
@ -422,20 +482,31 @@ export default {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.desc {
|
.float {
|
||||||
header {
|
position: fixed;
|
||||||
color: white;
|
top: 0;
|
||||||
height: 12rem;
|
left: 0;
|
||||||
background-image: url('../../assets/img/header-bg.png');
|
right: 0;
|
||||||
//background-image: url('data:image/jpeg;base64,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');
|
z-index: 2;
|
||||||
background-size: cover;
|
|
||||||
background-position: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
/*background: url("../../assets/img/icon/top-bg.jpg");*/
|
align-items: center;
|
||||||
padding: 2rem;
|
height: 4.6rem;
|
||||||
box-sizing: border-box;
|
padding: 0 1.5rem;
|
||||||
|
background: transparent;
|
||||||
|
transition: all .2s;
|
||||||
|
|
||||||
|
.center {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.fixed {
|
||||||
|
background: $main-bg;
|
||||||
|
|
||||||
|
img {
|
||||||
|
background: $main-bg !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
@ -462,22 +533,19 @@ export default {
|
|||||||
width: 1.8rem;
|
width: 1.8rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.bound-anim {
|
|
||||||
animation: anim .6s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes anim {
|
.desc {
|
||||||
0% {
|
header {
|
||||||
height: 15rem;
|
color: white;
|
||||||
}
|
height: 12rem;
|
||||||
25% {
|
background-image: url('../../assets/img/header-bg.png');
|
||||||
height: 30rem;
|
//background-image: url('data:image/jpeg;base64,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');
|
||||||
}
|
background-size: cover;
|
||||||
100% {
|
background-position: center;
|
||||||
height: 15rem;
|
background-repeat: no-repeat;
|
||||||
}
|
|
||||||
}
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.detail {
|
.detail {
|
||||||
|
|||||||
@ -151,6 +151,19 @@ export default {
|
|||||||
$console(v) {
|
$console(v) {
|
||||||
return console.log(JSON.stringify(v, null, 4))
|
return console.log(JSON.stringify(v, null, 4))
|
||||||
},
|
},
|
||||||
|
$randomNum(minNum,maxNum){
|
||||||
|
switch(arguments.length){
|
||||||
|
case 1:
|
||||||
|
return parseInt(Math.random()*minNum+1,10);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
$duration(v) {
|
$duration(v) {
|
||||||
let m = Math.floor(v / 60)
|
let m = Math.floor(v / 60)
|
||||||
// let s = v % 60
|
// let s = v % 60
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user