swiper商品缩略图和大图点击时联动

<div class="imgshow" > 

                    <swiper  :options="swiperOption" ref="swiperTop" class="swiper-no-swiping" >

                        <!-- <div class="swiper-wrapper"> -->

                            <swiper-slide class="swiper-slide" v-for="(item,index) in imgList" :key="index">

                                    <!-- <img :src="item.url" style="width:435px;" /> -->

                                    <div style="width:435px;height:268px;">{{item.name}}</div>

                                    <!-- <div class="floatdiv">

                                        <img :src="tu720" />

                                        <div class="fontcolor">720°实景看地</div>

                                    </div> -->

                            </swiper-slide>

                            

                        <!-- </div> -->

 

                        

                    </swiper>

                </div>

                <div class="left_bottom">

                    <swiper  :options="thumbsSwiper" ref="swiperThumbs">

                        <!-- <div class="swiper-wrapper"> -->

                            <swiper-slide  v-for="(item,index) in imgList" :key="index">

                                <!-- <img :src="item.url" style="width:137px;"  /> -->

                                <div style="height:100px;width:137px;background:pink">{{item.name}}</div>

                            </swiper-slide>

                            <div class="swiper-pagination swiper-pagination-white"></div>

                            <div class="swiper-button-prev swiper-button-white" slot="button-prev" @click="prev"></div>

                            <div class="swiper-button-next swiper-button-white" slot="button-next" @click="next"></div>

                        <!-- </div> -->

                    </swiper>

                </div>

            </div>

 

在data中进行定义

thumbsSwiper:{

                spaceBetween: 10,

                slidesPerView: 3,

                freeMode: true,

                watchSlidesVisibility: true,

                watchSlidesProgress: true,

                navigation: {

                    nextEl: '.swiper-button-next',//下一页dom节点

                    prevEl: '.swiper-button-prev'//前一页dom节点

                },

                on:{

                    click:()=>{

                        let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.clickedIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

 

                    }

                }

            },

             swiperOption: {

                spaceBetween: 10,

                thumbs: {

                    swiper: this.thumbsSwiper

                }

             },

 

向前向后按钮事件

prev() {

            this.$refs.swiperThumbs.$swiper.slidePrev()

            let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.activeIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

        },

        next() {

            this.$refs.swiperThumbs.$swiper.slideNext();

            let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        console.log(swiperThumbs);

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.activeIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

        },

 

整体页面

<template>

    <div class="con" id="con">

        <div class="one">

            <div class="one_left">

                <div class="one_route">当前位置:</div>

                <el-breadcrumb separator-class="el-icon-arrow-right" class="one_route">

                    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>

                    <el-breadcrumb-item :to="{name:'trade-assignment'}">协议交易</el-breadcrumb-item>

                    <el-breadcrumb-item>详情</el-breadcrumb-item>

                </el-breadcrumb>

            </div>

        </div>

        <div class="two">

            <div class="two_left">

                <div class="class720">720°实景看地</div>

                <div class="imgshow" > 

                    <swiper  :options="swiperOption" ref="swiperTop" class="swiper-no-swiping" >

                        <!-- <div class="swiper-wrapper"> -->

                            <swiper-slide class="swiper-slide" v-for="(item,index) in imgList" :key="index">

                                    <!-- <img :src="item.url" style="width:435px;" /> -->

                                    <div style="width:435px;height:268px;">{{item.name}}</div>

                                    <!-- <div class="floatdiv">

                                        <img :src="tu720" />

                                        <div class="fontcolor">720°实景看地</div>

                                    </div> -->

                            </swiper-slide>

                            

                        <!-- </div> -->

 

                        

                    </swiper>

                </div>

                <div class="left_bottom">

                    <swiper  :options="thumbsSwiper" ref="swiperThumbs">

                        <!-- <div class="swiper-wrapper"> -->

                            <swiper-slide  v-for="(item,index) in imgList" :key="index">

                                <!-- <img :src="item.url" style="width:137px;"  /> -->

                                <div style="height:100px;width:137px;background:pink">{{item.name}}</div>

                            </swiper-slide>

                            <div class="swiper-pagination swiper-pagination-white"></div>

                            <div class="swiper-button-prev swiper-button-white" slot="button-prev" @click="prev"></div>

                            <div class="swiper-button-next swiper-button-white" slot="button-next" @click="next"></div>

                        <!-- </div> -->

                    </swiper>

                </div>

            </div>

            <div class="two_right">

                <div class="two_top">

                    <div>合同编号:1954858086</div>

                    <div><span style="color:#FE7232">44</span>次浏览</div>

                </div>

                <div class="two_two">

                    <div class="two_two_status">交易中</div>

                    <div class="two_two_title">吉林市开发区工业用地出租</div>

                    <div class="pricediv">

                        <div class="two_two_line">|</div>

                        <div class="two_two_price">合同价格:</div>

                        <div class="two_two_money"><span style="font-size:24px;">¥9909.02</span><span style="font-size:14px;margin-left:10px;">万元</span></div>

                    </div>

                </div>

                <div class="list-right-list-data-two">

                    <div class="list-title-last-img">

                        <img src="../../../static/image/index/g4.png" />

                        <div class="list-title-three-font">吉林省&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;吉林市&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;开发区</div>

                    </div>

                    <!-- <div class="list-title-last-img">

                        <img src="../../../static/image/index/g3.png" />

                        <div class="list-title-three-font">发布时间:2021-07-21  19:21:22</div>

                    </div> -->

                </div>

                <div class="three">

                    <div class="three_block" style="border-right:1px solid #E6E6E6">

                        <div>协议交易</div>

                        <div class="price">交易方式</div>

                    </div>

                    <div class="three_block" style="border-right:1px solid #E6E6E6">

                        <div>出租</div>

                        <div class="price">流转类型</div>

                    </div>

                    <div class="three_block">

                        <div>商服用地/批发零售用地</div>

                        <div class="price">土地用途</div>

                    </div>

                </div>

                <div class="three">

                    <div class="three_block" style="border-right:1px solid #E6E6E6">

                        <div>192048.04平方米</div>

                        <div class="price">出租面积</div>

                    </div>

                    <div class="three_block" style="border-right:1px solid #E6E6E6">

                        <div>28个月</div>

                        <div class="price">出租年限</div>

                    </div>

                    <div class="three_block">

                        <div>2020年12月1日</div>

                        <div class="price">成交时间</div>

                    </div>

                </div>

                <div class="five_left">

                    <div class="list-title-last-img">

                        <img src="../../../static/image/supplyinformation/person.png" />

                        <div class="five_font">转让方:</div>

                        <div class="five_font">吉林市****有限公司</div>

                    </div>

                    <div class="list-title-last-img" style="margin-left:30px;">

                        <img src="../../../static/image/supplyinformation/phone.png" />

                        <div class="five_font">受让方:</div>

                        <div class="five_font">吉林市****有限公司</div>

                    </div>

                    <div class="five_font" style="margin-left:40px;">登录后查看具体信息</div>

                    <div class="list-title-last-img" style="margin-left:10px;">

                        <img src="../../../static/image/supplyinformation/right.png" />

                        <div class="five_font_login">立即登录</div>

                    </div>

                </div>

            </div>

        </div>

        <div class="landinformation" id="landinformation_id">

            <div class="infomation_title">

                <div class="infomation_title_color"></div>

                <div class="infomation_title_font">地块信息</div>

            </div>

            <div class="information_table">

                <div class="information_table_row">

                    <div class="information_table_label">权证号</div>

                    <div class="information_table_content">吉(2004)第K0114号</div>

                    <div class="information_table_label">土地性质</div>

                    <div class="information_table_content">国有建设用地使用权</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">土地类型</div>

                    <div class="information_table_content">企业用地</div>

                    <div class="information_table_label">所属行政区</div>

                    <div class="information_table_content">吉林省/吉林市/开发区</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">土地用途</div>

                    <div class="information_table_content">商服用地/批发零售用地</div>

                    <div class="information_table_label">转让面积</div>

                    <div class="information_table_content">112396.21平方米</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">转让建筑面积</div>

                    <div class="information_table_content">112396.21平方米</div>

                    <div class="information_table_label">使用权截止日期</div>

                    <div class="information_table_content">2065-1-12</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">剩余使用年限</div>

                    <div class="information_table_content">44年</div>

                    <div class="information_table_label">土地坐落</div>

                    <div class="information_table_content">吉林市开发区人民路</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">是否连同地上建筑物、其他附着物</div>

                    <div class="information_table_content">有</div>

                    <div class="information_table_label">建筑结构</div>

                    <div class="information_table_content">钢混</div>

                </div>

                <div class="information_table_row">

                    <div class="information_table_label">建筑限高</div>

                    <div class="information_table_content">80米</div>

                    <div class="information_table_label">容积率</div>

                    <div class="information_table_content">-</div>

                </div>

            </div>

        </div>

        <div class="landinformation" id="video_pic">

            <div class="infomation_title">

                <div class="infomation_title_color"></div>

                <div class="infomation_title_font">地块照片视频</div>

            </div>

            <div>

                <div class="video">视频</div>

                <div class="video_show">

                    <img src="../../../static/image/supplyinformation/1.png" />

                    <img src="../../../static/image/supplyinformation/1.png" />

                    <img src="../../../static/image/supplyinformation/1.png" />

                </div>

                <div class="video">图片</div>

                <div class="video_show">

                    <!-- <img src="../../../static/image/supplyinformation/1.png" @click="clickImg($event)" /> -->

                    <el-image   :src="ditu" :preview-src-list="srcList"></el-image>

                    <img src="../../../static/image/supplyinformation/1.png"   />

                    <img src="../../../static/image/supplyinformation/1.png" />

                </div>

            </div>

        </div>

        <div class="last" id="mapposition">

            <div class="infomation_title">

                <div class="infomation_title_color"></div>

                <div class="infomation_title_font">地图位置</div>

            </div>

            <div id="container" style="margin-top:20px;height:460px;">

 

            </div>

        </div>

        <div class="scrollposition">

            <div class="scrollshow" @click="scrollPosition(0)">

                <div>地块</div>

                <div>信息</div>

            </div>

            <div class="scrollshow" @click="scrollPosition(1)">

                <div>图片</div>

                <div>视频</div>

            </div>

            <div class="scrollshow" @click="scrollPosition(2)">

                <div>地图</div>

                <div>位置</div>

            </div>

            <div class="scrollshow" @click="scrollPosition(3)">

                <div>返回</div>

                <div>顶部</div>

            </div>

        </div>

        

    </div>

</template>

 

<script>

import { Swiper, SwiperSlide } from 'vue-awesome-swiper';

import BigImg from '../../common/BigImg.vue';

export default {

    data(){

        return{

            tu720:require('../../../static/image/trade/golad.png'),

            ditu:require('../../../static/image/supplyinformation/1.png'),

            price:'',

            form:{

                name:'',

                phone:'',

                date:''

            },

            dialogFormVisible: false,

            formLabelWidth: '60px',

            thumbsSwiper:{

                spaceBetween: 10,

                slidesPerView: 3,

                freeMode: true,

                watchSlidesVisibility: true,

                watchSlidesProgress: true,

                navigation: {

                    nextEl: '.swiper-button-next',//下一页dom节点

                    prevEl: '.swiper-button-prev'//前一页dom节点

                },

                on:{

                    click:()=>{

                        let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.clickedIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

 

                    }

                }

            },

             swiperOption: {

                spaceBetween: 10,

                thumbs: {

                    swiper: this.thumbsSwiper

                }

             },

             srcList:[

                 require('../../../static/image/supplyinformation/1.png')

             ],

             imgList:[

                 {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'aaa'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'bbb'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'ccc'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'ddd'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'eee'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'fff'

                },

                {

                     url:require('../../../static/image/supplyinformation/1.png'),

                     name:'ggg'

                },

             ],

             showImg:false,

             imgSrc:''

        }

    },

    components: {

      Swiper,

      SwiperSlide,

      'big-img':BigImg,

    },

    mounted(){

        

    //     this.$nextTick(() => {

    //     const swiperTop = this.$refs.swiperTop.$swiper

    //     const swiperThumbs = this.$refs.swiperThumbs.$swiper

    //     swiperTop.controller.control = swiperThumbs

    //     swiperThumbs.controller.control = swiperTop

    //   })

        this.getMap();

    },

    methods:{

        prev() {

            this.$refs.swiperThumbs.$swiper.slidePrev()

            let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.activeIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

        },

        next() {

            this.$refs.swiperThumbs.$swiper.slideNext();

            let swiperTop = this.$refs.swiperTop.$swiper

                        let swiperThumbs = this.$refs.swiperThumbs.$swiper

                        console.log(swiperThumbs);

                        //swiperTop.activeIndex = swiperThumbs.clickedIndex

                        let activeIndex=swiperThumbs.activeIndex;

                        swiperTop.slideTo(activeIndex,1000,false);

        },

        getMap(){

            let mapCon=document.getElementById("container");

            if(mapCon){

                var map = new AMap.Map('container', {

                    zoom:11,//级别

                    center: [126.564543989, 43.8719883344],//中心点坐标

                    viewMode:'3D'//使用3D视图

                });

                console.log(map.getZoom());

                var infoWindow = new AMap.InfoWindow({ //创建信息窗体

                    isCustom: true,  //使用自定义窗体

                    content:'<div style="background-color:white;padding:10px;color:#667380;font-size:14px;">地址:吉林省吉林市</div>', //信息窗体的内容可以是任意html片段

                    offset: new AMap.Pixel(100, 10)

                });

                var onMarkerClick  =  function(e) {

                    infoWindow.open(map, e.target.getPosition());//打开信息窗体

                    //e.target就是被点击的Marker

                } 

                var marker = new AMap.Marker({

                    position:[126.564543989, 43.8719883344]//位置

                })

                console.log(map);

                map.add(marker);//添加到地图

                marker.on('click',onMarkerClick);//绑定click事件

            }

        },

        scrollPosition(index){

            if(index===0){

                document.querySelector("#landinformation_id").scrollIntoView(true);

            }else if(index===1){

                document.querySelector("#video_pic").scrollIntoView(true);

            }else if(index===2){

                document.querySelector("#mapposition").scrollIntoView(true);

            }else if(index===3){

                document.querySelector("#con").scrollIntoView(true);

            }

        },

        clickImg(e){

            this.showImg=true;

            this.imgSrc=e.currentTarget.src;

        },

        viewImg(){

            this.showImg=false;

        }

    }

}

</script>

 

<style scoped>

    .con{

        width:1280px;

        margin:0 auto;

    }

    .one{

        height:44px;

        line-height:44px;

        font-size:12px;

        color:#667380;

        display: flex;

        justify-content: space-between;

    }

    .one_route{

        display:inline-block;

    }

    .el-breadcrumb{

        font-size:12px;

        line-height:44px;

    }

    

    .one_left{

        display: flex;

        

    }

    .two{

        padding:20px;

        border:1px solid #E6E6E6;

        display:flex;

    }

    .class720{

        color:#0D1E43;

        font-size:14px;

        font-weight: 600;

        margin-bottom:10px;

    }

    .two_left{

        width:435px;

    }

    .two_right{

        width:785px;

        margin-left:10px;

    }

    .two_top{

        font-size: 12px;

        color:#0D1E43;

        display: flex;

        justify-content: space-between;

    }

    .two_two{

        margin-top:10px;

        height:80px;

        background-color:rgba(79, 136, 188, 0.15);

        opacity: 1;

        display: flex;

        align-items: center;

    }

    .two_two_status{

        width:52px;

        height:28px;

        line-height: 28px;

        text-align: center;

        background-color:rgba(254, 114, 50, 0.31);

        opacity: 1;

        border-radius: 4px;

        color:#FE7232;

        font-size:12px;

        margin-left:20px;

    }

    .two_two_title{

        color:#0D1E43;

        font-size:24px;

        font-weight: 600;

        margin-left:30px;

    }

    .two_two_landuse{

        width:76px;

        height:28px;

        line-height: 28px;

        text-align: center;

        background-color:rgba(180, 188, 196, 0.3);

        opacity: 1;

        border-radius: 4px;

        color:#667380;

        font-size:12px;

        margin-left:20px;

    }

    .two_two_line{

        color:#B4BCC4;

        margin:0px 10px 0px 10px;

    }

    .two_two_price{

        color:#667380;

        font-size:14px;

    }

   .two_two_money{

       color:#F5222D;

       font-weight: 600;

   }

    .list-right-list-data-two{

        display: flex;

        justify-content: space-between;

        margin-top:10px;

    }

    .list-title-last-img{

        display: flex;

        align-items: center;

    }

    .list-title-three-font{

        color:#667380;

        font-size:14px;

        margin-left:5px;

    }

    .three{

        border-top:1px solid #E6E6E6;

        border-bottom:1px dotted #E6E6E6;

        margin-top:10px;

        height:70px;

        display:flex;

    }

    .three_block{

        width:248px;

        text-align:center;

        font-size:14px;

        margin-top:10px;

        margin-bottom: 10px;

    }

    .price{

        font-size:12px;

        color:#B4BCC4;

        margin-top:10px;

    }

    

    /deep/ .el-input__inner{

        height:44px;

    }

    

    .five_left{

        display: flex;

        margin-top:40px;

        font-size:14px;

        color:#303D47;

    }

    .left_bottom{

        margin-top:15px;

    }

    .landinformation{

        /* height:504px; */

        border:1px solid #E6E6E6;

        margin-top:20px;

        padding:20px;

    }

    .infomation_title{

        height:44px;

        line-height:44px;

        border-bottom:1px solid #E6E6E6;

        display: flex;

        align-items: center;

    }

    .infomation_title_font{

        color:#0D1E43;

        font-size:16px;

        font-weight: 600;

    }

    .infomation_title_color{

        width:10px;

        height:22px;

        background-color:#1890FF;

        margin-right:10px;

    }

    .information_table{

        /* margin-top:10px; */

    }

    .information_table_row{

        height:40px;

        display: flex;

        margin-top:20px;

    }

    .information_table_label{

        border:1px solid #E6E6E6;

        line-height: 40px;

        text-align:center;

        width:230px;

        opacity:1;

        font-size:14px;

        color:#0D1E43;

        background-color:rgba(24, 144, 255, 0.1);

        opacity: 1;

    }

    .information_table_content{

        width:390px;

        line-height: 40px;

        text-align:center;

        border:1px solid #E6E6E6;

        font-size:14px;

        color:#0D1E43;

        opacity: 1;

    }

    .video{

        color:#0D1E43;

        font-size:14px;

        margin:20px 20px 20px 0px;

        font-weight: 600;

    }

    .video_show{

        display: flex;

        justify-content: space-between;

    }

    .last{

        margin-top:20px;

        border:1px solid #E6E6E6;

        margin-bottom:40px;

        padding:20px;

    }

    .scrollshow{

        border:1px solid #E6E6E6;

        border-radius:50%;

        width:50px;

        height:50px;

        color:#667380;

        font-size:12px;

        text-align:center;

        display: flex;

        flex-direction: column;

        align-items: center;

        justify-content: center;

        margin-bottom:10px;

    }

    .scrollshow:hover{

        color:#1890FF;

        cursor: pointer;

    }

    .scrollposition{

        position: fixed;

        top: 400px;

        right: 250px;

    }

    /deep/ .el-dialog{

        width:600px;

    }

    /deep/ .el-date-editor.el-input{

        width:440px;

    }

    /* /deep/ .el-input__inner{

        width:440px;

    } */

    /deep/ .el-form-item__content{

        margin-left:0px;

    }

    .pricediv{

        display: flex;

        align-items: center;

        justify-content: flex-end;

        width:370px;

    }

    .imgshow{

        position: relative;

    }

    .floatdiv{

        position:absolute;

        top:90px;

        left:160px;

        width:100px;

        text-align: center;

    }

    .fontcolor{

        color:white;

        font-size:16px;

        font-weight: 400;

    }

    .leftdivshow{

        width:24px;

        background-color: #000;

        opacity: 0.31;

    }

    .blockdiv{

        background-color: rgba(0, 0, 0, 0.5);

        opacity: 1;

        width:435px;

    }

 

</style>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值