Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
group-buy-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
group-buy-ui
Commits
15f3c43f
Commit
15f3c43f
authored
Oct 01, 2021
by
Xuguangxing
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat/group-buy' of git.quantgroup.cn:ui/group-buy-ui into feat/group-buy
parents
400ace9a
511f11b9
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
79 additions
and
64 deletions
+79
-64
avatorSwiper.vue
src/components/avatorSwiper.vue
+69
-56
groupSwiper.vue
src/components/groupSwiper.vue
+0
-1
index.vue
src/views/goodsList/index.vue
+10
-7
No files found.
src/components/avatorSwiper.vue
View file @
15f3c43f
<
template
>
<
template
>
<div
class=
"avator-swiper"
>
<div
class=
"avator-swiper"
>
<div
v-if=
"isLoop"
ref=
"refLeft"
:class=
"
{ 'ani-left': isAddClass }" class="avator-swiper_left
">
<div
v-if=
"isLoop"
class=
"avator_left avator-swiper_item"
:class=
"
{ 'ani-left': isAddClass }
">
<
cr-image
class=
"avator-swiper_small"
:src=
"leftImgPath"
/>
<
img
:src=
"leftImgPath"
/>
</div>
</div>
<swiper
ref=
"mySwiper"
:options=
"swiperOptions"
class=
"avator-swiper_container"
>
<swiper
ref=
"mySwiper"
:options=
"swiperOptions"
class=
"avator-swiper_container"
>
<swiper-slide
<swiper-slide
...
@@ -10,20 +10,14 @@
...
@@ -10,20 +10,14 @@
:data-src=
"item"
:data-src=
"item"
:data-name=
"item"
:data-name=
"item"
class=
"avator-swiper_item"
class=
"avator-swiper_item"
@
set-translate=
"setTranslate"
>
>
<div
class=
"avator-swiper_item"
>
<div
class=
"avator-swiper_item"
>
<img
:src=
"item | Img2Thumb"
/>
<img
:src=
"item | Img2Thumb"
/>
</div>
</div>
</swiper-slide>
</swiper-slide>
</swiper>
</swiper>
<div
<div
v-if=
"isLoop"
class=
"avator_right avator-swiper_item"
:class=
"
{ 'ani-right': isAddClass }">
v-if=
"isLoop"
<img
:src=
"rightImgPath"
/>
ref=
"refRight"
:class=
"
{ 'ani-right': isAddClass }"
class="avator-swiper_right"
>
<cr-image
class=
"avator-swiper_small"
:src=
"rightImgPath"
/>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -53,6 +47,7 @@ export default {
...
@@ -53,6 +47,7 @@ export default {
const
isLoop
=
vm
.
avatorData
.
length
<
9
?
false
:
true
;
const
isLoop
=
vm
.
avatorData
.
length
<
9
?
false
:
true
;
const
autoplay
=
isLoop
?
{
delay
:
5000
}
:
false
;
const
autoplay
=
isLoop
?
{
delay
:
5000
}
:
false
;
return
{
return
{
timer
:
null
,
isLoop
,
isLoop
,
isAddClass
:
false
,
isAddClass
:
false
,
rightImgPath
:
''
,
rightImgPath
:
''
,
...
@@ -62,12 +57,15 @@ export default {
...
@@ -62,12 +57,15 @@ export default {
initialSlide
:
0
,
initialSlide
:
0
,
slidesPerView
:
9
,
slidesPerView
:
9
,
spaceBetween
:
4
,
spaceBetween
:
4
,
speed
:
9
00
,
speed
:
6
00
,
centeredSlides
:
isLoop
,
centeredSlides
:
true
,
watchSlidesProgress
:
false
,
watchSlidesProgress
:
false
,
allowTouchMove
:
false
,
allowTouchMove
:
false
,
autoplay
,
autoplay
,
on
:
{
on
:
{
slideChangeTransitionStart
:
function
()
{
vm
.
$store
.
dispatch
(
'
goods_avator_info
'
,
{
showInfo
:
false
});
},
transitionStart
:
function
()
{
transitionStart
:
function
()
{
const
activeIndex
=
this
.
activeIndex
;
const
activeIndex
=
this
.
activeIndex
;
const
slideLeft
=
this
.
slides
.
eq
(
activeIndex
-
5
);
const
slideLeft
=
this
.
slides
.
eq
(
activeIndex
-
5
);
...
@@ -78,10 +76,13 @@ export default {
...
@@ -78,10 +76,13 @@ export default {
slideRight
.
addClass
(
'
ani-opt
'
);
slideRight
.
addClass
(
'
ani-opt
'
);
slideLeft
.
addClass
(
'
ani-opt
'
);
slideLeft
.
addClass
(
'
ani-opt
'
);
vm
.
isAddClass
=
true
;
vm
.
isAddClass
=
true
;
vm
.
$store
.
dispatch
(
'
goods_avator_info
'
,
{
showInfo
:
false
});
clearTimeout
(
vm
.
timer
);
vm
.
timer
=
setTimeout
(()
=>
{
vm
.
$store
.
dispatch
(
'
goods_avator_info
'
,
{
...
vm
.
avatorItem
,
showInfo
:
true
});
clearTimeout
(
vm
.
timer
);
},
800
);
},
},
transitionEnd
:
function
()
{
transitionEnd
:
function
()
{
vm
.
$store
.
dispatch
(
'
goods_avator_info
'
,
{
...
vm
.
avatorItem
,
showInfo
:
true
});
vm
.
isAddClass
=
false
;
vm
.
isAddClass
=
false
;
for
(
let
i
=
0
;
i
<
this
.
slides
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
slides
.
length
;
i
++
)
{
let
slide
=
this
.
slides
.
eq
(
i
);
let
slide
=
this
.
slides
.
eq
(
i
);
...
@@ -98,14 +99,14 @@ export default {
...
@@ -98,14 +99,14 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
setTranslate
()
{
//
setTranslate() {
const
slides
=
this
.
swiper
.
slides
;
//
const slides = this.swiper.slides;
for
(
let
i
=
0
;
i
<
slides
.
length
;
i
++
)
{
//
for (let i = 0; i
<
slides
.
length
;
i
++
)
{
const
slide
=
slides
.
eq
(
i
);
//
const slide = slides.eq(i);
const
progress
=
slides
[
i
].
progress
;
//
const progress = slides[i].progress;
slide
.
css
(
'
transform
'
,
`scale(
${
1
-
Math
.
abs
(
progress
)
/
17
}
`
);
//
slide.css('transform', `scale(${1 - Math.abs(progress) / 17}`);
}
//
}
},
//
},
getAvatorItem
(
ele
)
{
getAvatorItem
(
ele
)
{
return
{
return
{
src
:
ele
.
data
(
'
src
'
),
src
:
ele
.
data
(
'
src
'
),
...
@@ -119,75 +120,87 @@ export default {
...
@@ -119,75 +120,87 @@ export default {
@keyframes bigToSamll {
@keyframes bigToSamll {
from {
from {
transform: scale(1);
transform: scale(1);
opacity: 1;
}
}
to {
to {
transform: scale(0);
transform: scale(0.3);
opacity: 0;
}
}
}
}
@keyframes samllToBig {
@keyframes samllToBig {
from {
from {
transform: scale(0);
transform: scale(0.3);
opacity: 0;
}
}
to {
to {
transform: scale(1);
transform: scale(1);
opacity: 1;
}
}
}
}
.ani-left {
.ani-left {
transform-origin: center;
transform-origin: center;
animation: bigToSamll 1s linear;
animation: bigToSamll 0.6s linear;
animation-fill-mode: forwards;
}
}
.ani-right {
.ani-right {
transform-origin: center;
transform-origin: center;
animation: samllToBig 1s linear;
animation: samllToBig 0.6s linear;
animation-fill-mode: forwards;
}
}
.ani-opt {
.ani-opt {
opacity: 0;
opacity: 0;
}
}
@keyframes scaleTo {
.avator_left,
to {
.avator_right {
opacity: 1;
backface-visibility: hidden;
}
perspective: 1000;
position: absolute;
top: 0;
}
.avator_right {
right: 0;
}
.avator_left {
left: 0;
}
}
.avator-swiper {
.avator-swiper {
position: relative;
position: relative;
width: 100%;
width: 100%;
margin: 0 auto !important;
&_item {
&_item {
transition: transform 0.2s linear;
height: 32px;
height: 32px;
padding-top: 2px;
display: flex;
align-items: center;
justify-content: center;
// transform: scale(1);
// transition: transform 0 0.2s linear;
img {
img {
height: 25px;
height: 25px;
width: 25px;
width: 25px;
border-radius: 50%;
border-radius: 50%;
}
}
&.active {
transform: scale(1.2);
}
}
}
}
}
.avator-swiper_left,
.avator-swiper_right {
.swiper-slide {
position: absolute;
text-align: center;
width: 18px;
height: 18px;
/* Center slide text vertically */
top: 50%;
display: -webkit-box;
margin-top: -9px;
display: -ms-flexbox;
border-radius: 50%;
display: -webkit-flex;
overflow: hidden;
display: flex;
img {
-webkit-box-pack: center;
width: 100%;
-ms-flex-pack: center;
height: 100%;
-webkit-justify-content: center;
}
justify-content: center;
}
-webkit-box-align: center;
.avator-swiper_left {
-ms-flex-align: center;
left: 3.5px;
-webkit-align-items: center;
align-items: center;
}
}
.avator-swiper_right {
right: 3.5px;
.swiper-slide-active {
transform: scale(1.2);
transition: transform 0.6s linear;
}
}
</
style
>
</
style
>
src/components/groupSwiper.vue
View file @
15f3c43f
...
@@ -155,7 +155,6 @@ export default {
...
@@ -155,7 +155,6 @@ export default {
position: absolute;
position: absolute;
top: 0;
top: 0;
right: -2px;
right: -2px;
background-color: #000;
z-index: 2;
z-index: 2;
}
}
.avator-swiper {
.avator-swiper {
...
...
src/views/goodsList/index.vue
View file @
15f3c43f
...
@@ -122,18 +122,21 @@ export default {
...
@@ -122,18 +122,21 @@ export default {
}
}
},
},
watch
:
{
watch
:
{
$route
(
to
)
{
//
$route(to) {
if
(
to
.
name
!==
'
groupBuyList
'
)
{
//
if (to.name !== 'groupBuyList') {
this
.
setTitleColor
();
//
this.setTitleColor();
return
;
//
return;
}
//
}
this
.
setTitleColor
(
this
.
goodsTemp
.
bgcolor
);
//
this.setTitleColor(this.goodsTemp.bgcolor);
}
//
}
},
},
created
()
{
created
()
{
this
.
showLoops
=
true
;
this
.
showLoops
=
true
;
this
.
reload
=
true
;
this
.
reload
=
true
;
},
},
beforeDestroy
()
{
this
.
setTitleColor
();
},
// deactivated() {
// deactivated() {
// this.showLoops = false;
// this.showLoops = false;
// },
// },
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment