|
@ -29,7 +29,7 @@ |
|
|
|
|
|
|
|
|
<div class="container"> |
|
|
<div class="container"> |
|
|
<p>第一行书</p> |
|
|
<p>第一行书</p> |
|
|
<div id="e" class="roll-wrap roll_row"> |
|
|
|
|
|
|
|
|
<!-- <div id="e" class="roll-wrap roll_row"> |
|
|
<ul class="roll__list" style="position: absolute; left: 0; top: 0;"> |
|
|
<ul class="roll__list" style="position: absolute; left: 0; top: 0;"> |
|
|
<li v-for="(item,index) in list" :key="index">{{ index }} |
|
|
<li v-for="(item,index) in list" :key="index">{{ index }} |
|
|
<div class="book-img"> |
|
|
<div class="book-img"> |
|
@ -37,9 +37,18 @@ |
|
|
</div> |
|
|
</div> |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
</ul> |
|
|
|
|
|
</div> --> |
|
|
|
|
|
<div class="swiper-container seamless01-swiper"> |
|
|
|
|
|
<div class="swiper-wrapper"> |
|
|
|
|
|
<div v-for="(item,index) in list" :key="index" class="swiper-slide">{{ index }} |
|
|
|
|
|
<div class="book-img"> |
|
|
|
|
|
<img :src="item.cover" :onerror="defaultImg"> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<p>第二行书</p> |
|
|
<p>第二行书</p> |
|
|
<div id="f" class="roll-wrap roll_row"> |
|
|
|
|
|
|
|
|
<!-- <div id="f" class="roll-wrap roll_row"> |
|
|
<ul class="roll__list" :style="{'position': 'absolute', 'right': 0,'top': 0, 'width': list.length*60 + 'px'} "> |
|
|
<ul class="roll__list" :style="{'position': 'absolute', 'right': 0,'top': 0, 'width': list.length*60 + 'px'} "> |
|
|
<li v-for="(item,index) in list" :key="index"> |
|
|
<li v-for="(item,index) in list" :key="index"> |
|
|
{{ index }} |
|
|
{{ index }} |
|
@ -48,11 +57,23 @@ |
|
|
</div> |
|
|
</div> |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
</ul> |
|
|
|
|
|
</div> --> |
|
|
|
|
|
<div class="swiper-container seamless02-swiper"> |
|
|
|
|
|
<div class="swiper-wrapper"> |
|
|
|
|
|
<div v-for="(item,index) in list" :key="index" class="swiper-slide">{{ index }} |
|
|
|
|
|
<div class="book-img"> |
|
|
|
|
|
<img :src="item.cover" :onerror="defaultImg"> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</swiper-slide> |
|
|
</swiper-slide> |
|
|
<swiper-slide class="slide"> |
|
|
<swiper-slide class="slide"> |
|
|
<Map /> |
|
|
|
|
|
|
|
|
<Map ref="mapRefs" /> |
|
|
|
|
|
</swiper-slide> |
|
|
|
|
|
<swiper-slide class="slide"> |
|
|
|
|
|
<div>第三屏</div> |
|
|
</swiper-slide> |
|
|
</swiper-slide> |
|
|
<div slot="pagination" class="swiper-pagination-home" /> |
|
|
<div slot="pagination" class="swiper-pagination-home" /> |
|
|
</swiper> |
|
|
</swiper> |
|
@ -76,21 +97,41 @@ export default { |
|
|
swiperSlide |
|
|
swiperSlide |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
|
|
|
|
const _self = this |
|
|
return { |
|
|
return { |
|
|
headerTitle: '祁阳图书馆', |
|
|
headerTitle: '祁阳图书馆', |
|
|
list: [], |
|
|
list: [], |
|
|
defaultImg: 'this.src="' + require('@/assets/images/default-img.png') + '"', |
|
|
defaultImg: 'this.src="' + require('@/assets/images/default-img.png') + '"', |
|
|
swiperOption: { |
|
|
swiperOption: { |
|
|
|
|
|
loop: true, |
|
|
initialSlide: 0, |
|
|
initialSlide: 0, |
|
|
notNextTick: false, |
|
|
notNextTick: false, |
|
|
observer: true, // 开启动态检查器 |
|
|
observer: true, // 开启动态检查器 |
|
|
autoplay: false, |
|
|
|
|
|
|
|
|
speed: 2000, |
|
|
|
|
|
autoplay: { |
|
|
|
|
|
delay: 10000, // 自动切换的时间间隔,单位ms |
|
|
|
|
|
stopOnLastSlide: true, // 当切换到最后一个slide时停止自动切换 |
|
|
|
|
|
disableOnInteraction: false // 用户操作swiper之后,是否禁止autoplay |
|
|
|
|
|
// reverseDirection: true // 开启反向自动轮播 |
|
|
|
|
|
// waitForTransition: true, //等待过渡完毕。自动切换会在slide过渡完毕后才开始计时 |
|
|
|
|
|
}, |
|
|
|
|
|
direction: 'vertical', |
|
|
// 显示分页 |
|
|
// 显示分页 |
|
|
pagination: { |
|
|
pagination: { |
|
|
el: '.swiper-pagination-home', |
|
|
el: '.swiper-pagination-home', |
|
|
type: 'fraction' |
|
|
type: 'fraction' |
|
|
|
|
|
}, |
|
|
|
|
|
on: { |
|
|
|
|
|
slideChangeTransitionEnd() { |
|
|
|
|
|
console.log(' this.activeIndex-index', this.activeIndex) |
|
|
|
|
|
$('#e').rollNoInterval().left() |
|
|
|
|
|
$('#f').rollNoInterval().right() |
|
|
|
|
|
_self.addAnimationClass(this.activeIndex) |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
mySwipera1: null, |
|
|
|
|
|
mySwipera2: null |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
@ -117,16 +158,78 @@ export default { |
|
|
keep: false, // 鼠标移出组件后是否继续随鼠标滚动, 取值: false, true(默认) 对应 减速至初速度滚动, 随鼠标滚动 |
|
|
keep: false, // 鼠标移出组件后是否继续随鼠标滚动, 取值: false, true(默认) 对应 减速至初速度滚动, 随鼠标滚动 |
|
|
multicolour: true // 彩色字体,颜色随机,取值:true(默认),false |
|
|
multicolour: true // 彩色字体,颜色随机,取值:true(默认),false |
|
|
}) |
|
|
}) |
|
|
$('#e').rollNoInterval().left() |
|
|
|
|
|
$('#f').rollNoInterval().right() |
|
|
|
|
|
|
|
|
// $('#e').rollNoInterval().left() |
|
|
|
|
|
// $('#f').rollNoInterval().right() |
|
|
|
|
|
// this.mySwipera1 = new Swiper('.seamless01-swiper', { |
|
|
|
|
|
// observer: true, // 开启动态检查器,监测swiper和slide |
|
|
|
|
|
// observeParents: true, // 监测Swiper 的祖/父元素 |
|
|
|
|
|
// speed: 4000, // 切换速度 |
|
|
|
|
|
// loop: true, // 循环 |
|
|
|
|
|
// slidesPerView: 4, // 显示数量 |
|
|
|
|
|
// spaceBetween: 10, // 间隔 |
|
|
|
|
|
// freeMode: true, // 自动贴合 |
|
|
|
|
|
// autoplay: { // 自动播放 |
|
|
|
|
|
// delay: 0, // 自动切换的时间间隔 |
|
|
|
|
|
// stopOnLastSlide: false, // 切换到最后一个slide时停止自动切换 |
|
|
|
|
|
// disableOnInteraction: false// 用户操作后是否停止 |
|
|
|
|
|
// }, |
|
|
|
|
|
// breakpoints: { |
|
|
|
|
|
// 750: { // 当屏幕宽度大于等于320 |
|
|
|
|
|
// slidesPerView: 3 |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
// }) |
|
|
|
|
|
// this.mySwipera2 = new Swiper('.seamless02-swiper', { |
|
|
|
|
|
// observer: true, // 开启动态检查器,监测swiper和slide |
|
|
|
|
|
// observeParents: true, // 监测Swiper 的祖/父元素 |
|
|
|
|
|
// speed: 4000, // 切换速度 |
|
|
|
|
|
// loop: true, // 循环 |
|
|
|
|
|
// slidesPerView: 4, // 显示数量 |
|
|
|
|
|
// spaceBetween: 10, // 间隔 |
|
|
|
|
|
// freeMode: true, // 自动贴合 |
|
|
|
|
|
// autoplay: { // 自动播放 |
|
|
|
|
|
// delay: 0, // 自动切换的时间间隔 |
|
|
|
|
|
// stopOnLastSlide: false, // 切换到最后一个slide时停止自动切换 |
|
|
|
|
|
// disableOnInteraction: false, // 用户操作后是否停止 |
|
|
|
|
|
// reverseDirection: true// 方向切换 |
|
|
|
|
|
// }, |
|
|
|
|
|
// breakpoints: { |
|
|
|
|
|
// 750: { // 当屏幕宽度大于等于320 |
|
|
|
|
|
// slidesPerView: 3 |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
// }) |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
addAnimationClass(activeIndex) { |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
const swiper = this.$refs.mySwiperHome.swiper |
|
|
|
|
|
if (swiper) { |
|
|
|
|
|
const slides = swiper.slides |
|
|
|
|
|
const nextSlide = slides.eq(2) |
|
|
|
|
|
if (activeIndex === 2) { |
|
|
|
|
|
nextSlide.find('.place-point').children().addClass('bouncePoint') |
|
|
|
|
|
this.$refs.mapRefs.isPage2 = true |
|
|
|
|
|
this.$refs.mapRefs.libIndex = 0 |
|
|
|
|
|
this.$refs.mapRefs.libCurrent = this.$refs.mapRefs.libInfoData[this.$refs.mapRefs.libIndex] |
|
|
|
|
|
this.$refs.mapRefs.init() |
|
|
|
|
|
this.$refs.mapRefs.updatePageWithData() |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$refs.mapRefs.isPage2 = false |
|
|
|
|
|
nextSlide.find('.place-point').children().removeClass('bouncePoint') |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style lang="scss"> |
|
|
<style lang="scss"> |
|
|
@import "~@/assets/styles/index.scss"; |
|
|
@import "~@/assets/styles/index.scss"; |
|
|
|
|
|
::v-deep .swiper-wrapper{ |
|
|
|
|
|
transition-timing-function: ease-in-out !important; |
|
|
|
|
|
} |
|
|
.tagcloud { |
|
|
.tagcloud { |
|
|
width: 5.5rem; |
|
|
width: 5.5rem; |
|
|
height: 5rem; |
|
|
height: 5rem; |
|
@ -149,20 +252,22 @@ a { |
|
|
margin-top: .2rem; |
|
|
margin-top: .2rem; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* seamlesswrap */ |
|
|
|
|
|
.seamlesswrap{width: 100%;box-sizing: border-box;padding: 200px;} |
|
|
|
|
|
.seamlesswrap img{width: 100%;display: block;} |
|
|
|
|
|
.seamlesswrap .swiper-container-free-mode>.swiper-wrapper{ |
|
|
|
|
|
-webkit-transition-timing-function:linear!important; |
|
|
|
|
|
-o-transition-timing-function:linear!important; |
|
|
|
|
|
transition-timing-function:linear!important; } |
|
|
|
|
|
.seamlesswrap .swiper-container{margin: 10px 0;} |
|
|
|
|
|
|
|
|
.roll-wrap{ |
|
|
.roll-wrap{ |
|
|
position: relative; |
|
|
position: relative; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
height: 100px; |
|
|
height: 100px; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
// .roll_row .roll__list::before, .roll_row .roll__list::after { |
|
|
|
|
|
// content: ""; |
|
|
|
|
|
// display: table; |
|
|
|
|
|
// line-height: 0; |
|
|
|
|
|
// } |
|
|
|
|
|
// .roll_row .roll__list::after { |
|
|
|
|
|
// clear: both; |
|
|
|
|
|
// } |
|
|
|
|
|
.roll_row .roll__list{ |
|
|
.roll_row .roll__list{ |
|
|
display: flex; |
|
|
display: flex; |
|
|
flex-wrap: nowrap; |
|
|
flex-wrap: nowrap; |
|
@ -172,13 +277,9 @@ a { |
|
|
display: block; |
|
|
display: block; |
|
|
margin-right: 20px; |
|
|
margin-right: 20px; |
|
|
width: .5rem; |
|
|
width: .5rem; |
|
|
// height: .5rem; |
|
|
|
|
|
// line-height: .5rem; |
|
|
|
|
|
font-weight: bold; |
|
|
font-weight: bold; |
|
|
font-size: .3rem; |
|
|
font-size: .3rem; |
|
|
text-align: center; |
|
|
text-align: center; |
|
|
// color: #fff; |
|
|
|
|
|
// background-color: #ff9900; |
|
|
|
|
|
} |
|
|
} |
|
|
.book-img{ |
|
|
.book-img{ |
|
|
width: .5rem; |
|
|
width: .5rem; |
|
@ -191,7 +292,6 @@ a { |
|
|
img{ |
|
|
img{ |
|
|
display: block; |
|
|
display: block; |
|
|
width: 100%; |
|
|
width: 100%; |
|
|
// height: 100%; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
.swiper-slide{ |
|
|
.swiper-slide{ |
|
|