拼多多分类

最近看到很多人在网上找类似于拼多多左右联动的分类界面,和大家共有一下



麻烦大家拿了以后点歌关注再走 以后还会持续更新的


以下源码


<template>

<div>

<div class="swiper-container">

<!-- 商品 <-> 详情 -->

<ul class="swiper-container-ul">

</ul>

<!---->

<div class="swiper-wrapper">

<div class="content">

<!--左侧-->

<div class="left" id="left">

<ul>

<li v-for="(item1, k1) in items1" :key="k1" @click="left_click($event)">{{ item1.name }}</li>

</ul>

</div>

<!--右侧-->

<div class="right" id="right">

<ul>

<li v-for="(item2, k2) in items2" :key="k2" class="li_max">

{{ item2.name }}

<div class="class-top">

<!-- <img src="../assets/img/3.jpg" /> -->

</div>

<div class="class-title">{{ item2.class }}</div>

<div v-for="(item3, k3) in item2.list" :key="k3" style="display: inline-block;width: 30%;">

<div class="item" style="display: inline-block;">

<div class="item-left" style="display: inline-block;">

<div class="item-img" style="display: inline-block;">

</div>

</div>

<div class="item-right">

<div class="title">{{ item3.title }}</div>

</div>

</div>

</div>

</li>

</ul>

</div>

</div>

</div>

</div>

</div>

</template>

<script>

import BScroll from 'better-scroll';

import $ from 'jquery';

export default {

name: '',

data() {

return {

items1: [

{

name: '分类1'

},

{

name: '分类2'

},

{

name: '分类3'

},

{

name: '分类4'

},

{

name: '分类5'

},

{

name: '分类6'

},

{

name: '分类7'

},

{

name: '分类8'

}

],

items2: [

{

class: '分类1',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类2',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类3',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类4',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类5',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类6',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类7',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

},

{

class: '分类8',

list: [

{

title: '1'

},

{

title: '2'

},{

title: '3'

}

]

}

]

};

},

created() {

this.scroll_init();

},

methods: {

scroll_init: function() {

$('.content').css('height', $('#right').height);

$('.left ul li')

.eq(0)

.addClass('active');

$(window).scroll(function() {

// 这里在滚动的时候做监听,如果翻上去的部分超过150的时候,切换商品和左侧这里做绝对定位,然后右侧的margin-left设置成左侧的宽度

if ($(window).scrollTop() >= 150) {

$('.swiper-container-ul').css('position', 'fixed');

$('.left').css('position', 'fixed');

$('.right').css('margin-left', $('.left').width());

} else {

$('.swiper-container-ul').css('position', '');

$('.left').css('position', '');

$('.right').css('margin-left', '');

}

// 获取右侧当前li距离顶端的高度 - 右侧已经翻上去的高度 - head的高度

$('.right ul li').each(function() {

var target = parseInt($(this).offset().top - $(window).scrollTop() - 150);

// console.log($(this));

var i = $(this).index();

// if target<=0 清除所又li的active, 给当前li赋予active

if (target <= 0) {

$('.left ul li').removeClass('active');

$('.left ul li')

.eq(i)

.addClass('active');

}

});

});

// 点击左侧li通过下标找到相应li的位置,通过animate滚动到相应的位置

$('.left ul li').click(function() {

console.log("dsadsa")

var i = $(this).index('.left ul li');

$('body,html').animate({

scrollTop: $('.right ul li').eq(i).offset().top - 0

},1000);

});

},

left_click: function (e) {

//e.srcElement,,表示触发点击事件的当前盒子元素DOM

var i = $(e.srcElement).index('.left ul li');

$('body,html').animate({

scrollTop: $('.right ul li').eq(i).offset().top - 40

},1000);

}

}

};

</script>

<style>

* {

padding: 0;

margin: 0;

}

.right ul li:last-of-type{

padding-bottom: 90%;

}

.header {

width: 100%;

height: 150px;

background: #555;

}

.swiper-container-ul {

list-style: none;

overflow: hidden;

width: 100%;

background: #fff;

top: 0;

}

.swiper-container-ul-li {

width: 50%;

height: 40px;

line-height: 40px;

float: left;

text-align: center;

}

.actives {

border-bottom: 1px solid #3190e8;

color: #3190e8;

}

.content {

width: 100%;

overflow: hidden;

}

.left {

top: 41px;

float: left;

width: 25%;

height: 100%;

background: #eee;

}

.left ul {

list-style: none;

}

.left ul li {

padding: 15px 5px;

text-align: center;

}

.active {

background: #fff;

border-left: 2px solid #3190e8;

}

.right {

float: left;

width: 75%;

height: 100%;

}

.right ul {

list-style: none;

}

.class-title {

padding: 7px 10px;

}

.class-top{

box-sizing: border-box;

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

text-align: center;

height: 87px;

margin-top:5px;

margin: 5px 13px;

}

.class-top img{

width: 90%;

height: 100%;

}

.item {

overflow: hidden;

width: 90%;

padding: 10px;

background: #fff;

border-bottom: 1px solid #eee;

display: inline-block;

text-align: left;

}

.item-left {

width: 100%;

}

.item-right {

}

.item-img {

width: 100%;

height: 100px;

background: #eee;

display: inline-block;

}

.title {

width: 100%;

height: 20px;

margin-top: 10px;

background: #eee;

text-align: center;

}

.subtitle {

width: 70px;

height: 20px;

margin-top: 10px;

background: #eee;

}

.price {

width: 50px;

height: 20px;

margin-top: 10px;

background: #eee;

}

</style>



末了  大家记得安装依赖哦  不然是木得效果的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容