vue+elementui实现英雄联盟道具城

news2024/11/20 18:43:32

目录

一、效果图

1.首页

 2.商品列表、分类

 二、实现重点讲解

1.首页轮播图

1.1技术实现:

 1.2.鼠标聚焦切换图片事件

 2.首页tab切换

3.商品列表实现

三、项目结构说明

 四、总结


一、效果图

1.首页

项目与官方效果没有太大差异:

 游戏导航:

 2.商品列表、分类

 动态切换分类

 二、实现重点讲解

1.首页轮播图

1.1技术实现:

使用element的走马灯:Element - The world's most popular Vue UI framework

 1.2.鼠标聚焦切换图片事件

mouseover事件:
 <!-- 首页广告 -->
        <div class="fl banner-slide">
          <div id="blk_index_main_focus" class="slide">
            <el-carousel height="372px" @change="changeBanner" ref="banner">
              <el-carousel-item v-for="(item,index) in banners" :key="index">
                <el-image :src="item" style="height: 372px;cursor: pointer;"></el-image>
              </el-carousel-item>
            </el-carousel>
            <div class="dot">
              <a :class="bannerIndex===0?'curr':''" @mouseover="selBanner(0)" style="width:191px;">DRX冠军皮肤</a>
              <a :class="bannerIndex===1?'curr':''" @mouseover="selBanner(1)" style="width:191px;">季中冠军赛通行证</a>
              <a :class="bannerIndex===2?'curr':''" @mouseover="selBanner(2)" style="width:191px;">英雄联盟神秘商店</a>
              <a :class="bannerIndex===3?'curr':''" @mouseover="selBanner(3)" style="width:191px;">净雪之月2023</a>
            </div>
          </div>
        </div>

通过element事件指定图片切换显示:

selBanner(index){//切换轮播图
        this.$refs.banner.setActiveItem(index);
      },

 2.首页tab切换

首先准备两套数据:

newProducts:[//新品上架
          {name:'太空律动 “电音酒桶” 古拉加斯',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156045.jpg')},
          {name:'太空律动 “噪音女王” 丽桑卓',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156063.jpg')},
          {name:'太空律动 “魔音海妖” 娜美',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156029.jpg')},
          {name:'太空律动 “律动队长” 提莫',price:'109.00',cover:require('../../../public/img/N-lol-1-100000-156018.jpg')},
          {name:'太空律动 “万能舞王” 崔斯特',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156053.jpg')},
          {name:'太空律动 “爱乐之子” 塔里克',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156071.jpg')},
          {name:'太空律动 “创乐之神” 奥恩',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-156039.jpg')},
          {name:'巅峰之星 布里茨',price:'89.00',cover:require('../../../public/img/N-lol-1-100000-155390.jpg')}
        ],
        recommendProducts:[//热门推荐
          {name:'光明哨兵 格雷福斯',price:'99.00',cover:require('../../../public/img/N-lol-1-100000-149090.jpg')},
          {name:'K/DA 卡莎',price:'79.00',cover:require('../../../public/img/2-145014-9.jpg')},
          {name:'K/DA ALL OUT 卡莎',price:'79.00',cover:require('../../../public/img/N-lol-1-100000-147358.jpg')},
          {name:'玉剑传说 无极',price:'79.00',cover:require('../../../public/img/pkg-9336.jpg')},
          {name:'战斗学院 孙悟空',price:'79.00',cover:require('../../../public/img/N-lol-1-100000-148255.jpg')},
          {name:'K/DA 阿狸',price:'79.00',cover:require('../../../public/img/N-lol-1-100000-118936.jpg')}
        ],

点击tab切换,动态更新数据显示:

<ul class="plate-tit clearfix">
            <li @click="selTab(1)" :class="tabIndex === 1?'current':''">
              <a class="plate-link">新品上架</a>
            </li>
            <li @click="selTab(2)" :class="tabIndex === 2?'current':''">
              <a class="plate-link">热门推荐</a>
            </li>
          </ul>
selTab(index){//新品上架、热门推荐 tab数据切换
        if(this.tabIndex === index){
          return;
        }
        if(index === 1){
          this.tabData = this.newProducts;
        }else if(index === 2){
          this.tabData = this.recommendProducts;
        }
        this.tabIndex = index;
      },

3.商品列表实现

 

分类定义:

menus:[
          {id:1,name:'全部分类'},
          {id:2,name:'英雄'},
          {id:3,name:'炫彩皮肤'},
          {id:4,name:'表情'},
          {id:5,name:'海克斯及其他'},
          {id:6,name:'云顶之弈'},
          {id:7,name:'皮肤'},
          {id:8,name:'道具'},
          {id:9,name:'守卫眼皮肤'}
        ],

首页点击分类菜单,路由通过query属性携带参数(分类id):

selMenu(item){//切换菜单
        this.$router.push({
          path: '/productList',
          query: {
            id: item.id
          }
        })
      }

商品列表页面接收获取参数(分类id):

mounted() {
      //获取分类id 参数
      if(this.$route.query.id){
        this.menuId = parseInt(this.$route.query.id);
      }
      //获取商品列表
      this.getData();
    },

查询对应分类商品列表:

getData(){//获取分类对应商品
        if(this.menuId === 1){//所有分类
          this.data = this.productList;
        }else{
          this.data = [];
          this.productList.forEach(item=>{
            if(item.typeId === this.menuId){
              this.data.push(item);
            }
          })
        }
      }

其中,商品列表定义,typeId表示其所属分类的id:

productList:[//商品列表
          {typeId: 1,name:'熊猫 提莫',img:require('../../../public/img/N-lol-1-100000-122946.jpg'),price:69},
          {typeId: 1,name:'山海绘卷 克格莫',img:require('../../../public/img/N-lol-1-111869-165721.jpg'),price:89},
          {typeId: 1,name:'山海绘卷 塔姆',img:require('../../../public/img/N-lol-1-111869-165722.jpg'),price:89},
          {typeId: 1,name:'山海绘卷 巴德',img:require('../../../public/img/N-lol-1-111869-165723.jpg'),price:89},
          {typeId: 1,name:'山海绘卷 莉莉娅',img:require('../../../public/img/N-lol-1-111869-165720.jpg'),price:89},
          {typeId: 3,name:'山海绘卷 克格莫 靛青',img:require('../../../public/img/N-lol-1-111869-165735.jpg'),price:20},
          {typeId: 3,name:'山海绘卷 克格莫 赤金',img:require('../../../public/img/N-lol-1-111869-165734.jpg'),price:20},
          {typeId: 3,name:'山海绘卷 克格莫 葱青',img:require('../../../public/img/N-lol-1-111869-165736.jpg'),price:20},
          {typeId: 2,name:'明烛 米利欧',img:require('../../../public/img/N-lol-1-111869-164325.jpg'),price:45},
          {typeId: 2,name:'祖安怒兽 沃里克',img:require('../../../public/img/1-19-9.jpg'),price:10},
          {typeId: 2,name:'迅捷斥候 提莫',img:require('../../../public/img/1-17-9.jpg'),price:10},
          {typeId: 2,name:'符文法师 瑞兹',img:require('../../../public/img/1-13-9.jpg'),price:10},
          {typeId: 2,name:'正义天使 凯尔',img:require('../../../public/img/1-10-111.jpg'),price:10},
        ]

三、项目结构说明


项目以vue项目创建,前端某些元素使用element,项目启动执行的命令为:

  1. npm install
  2. npm run dev(当然命令可以修改为npm run serve,没啥区别)

注意:npm install 成功了再执行 npm run dev 启动项目
结构如下截图,项目已经集成和实现了需要请求后端接口的一切功能,所以无须花费精力去考虑前端如何去对接后端和接口,可以把一切精力放在实现前端界面设计上来。

这样不懂后端的伙伴也省心省力,接口请求只需按照模板去copy就好,无非就是get/post/delete/put等请求方式和参数传递的差别,当然不明白的可以细问作者。

项目结构还是分为:顶部+具体功能显示容器+底部,页面存放于src/page目录下,看目录命名就能明白其含义,具体功能页面在views目录下。

路由在router目录中。

路由权限也是很重要的一个功能,为permission.js,所有页面跳转都会经过其拦截,有人问,路由权限有什么用,好说,比如订单页面或个人中心页面吧,肯定是需要登录才能访问的,首页却是无需登录即可访问的,那么就可以在permission.js里面获取登录token,有token即表示已经登录,可以访问订单或个人中心页面,否则跳转登录页等。

 四、总结

后续不定期将不断完善和增加功能页面,敬请期待。

关注作者,及时了解更多好项目!

作者主页也有更多好项目分享!

获取源码或如需帮助,可通过博客后面名片+作者即可!

 其他作品集合:

  1. 《vue+elementui实现app布局小米商城,样式美观大方,功能完整》
  2. 《vue完美模拟pc版快手,实现短视频,含短视频详情播放》
  3. 《vue+element实现美观大方好看的音乐网站,仿照咪咕音乐网》     
  4. 《vue实现功能完整的购物商城,商品零食、电商通用商城》
  5. 《vue+element实现蔬菜、水果、电商商城》
  6. 《vue+element简单实现电商商城网站,模仿小米电商商城》
  7. 《vue实现美观大方的动漫、cos、帖子类型网站》
  8. 《vue实现好看的相册、图片网站》
  9. 《高度仿PC版《微信读书》,好看的小说、读书网站》
  10. 《vue+element实现非常好看的鲜花网站商城,页面完整,样式美观》
  11. 《vue+elementui+springboot前后端分离实现通用商城管理后台》
  12. 《微信小程序日记、微信小程序个人空间、个人日记》
  13. 《vue+element模仿腾讯视频电影网站》
  14. 《vue+element高度仿照QQ音乐,完美实现PC端QQ音乐》
  15. 《vue+element详细完整实现个人博客、个人网站》
  16. 《vue+elementui+springboot前后端分离实现学校帖子网站,学校大作业》
  17. 《vue+elementui实现U袋网-完整版》
  18. 《vue+element+electron仿微信实现》
  19. 《vue+element模仿电商商城,前后端分离实现,下单微信扫码支付》
  20. 《electron+vue+elementui实现类似QQ窗口靠边自动边缘隐藏》
  21. 《微信小程序仿唯聚时代,微信小程序商城》
  22. 《jquery+bootstrap完整丰富样式开发框架源码,各种现成样式简单易用》
  23. 《html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站》
  24. 《css+html各种动态、动画、3D相册等7件套》
  25. 《仿华为电商商城,官网,华为超级新品日demo,大屏霸气且简洁》
  26. 《vue+element简单实现商城网站首页,模仿电商商城》
  27. 《vue+elementui实现非常好看的博客、网站首页,网站模板》
  28. 《elementui+vue实现经典管理系统布局框架,拿来即用》
  29. 《简系统登录页模板html+vue+elementui》
  30. 《vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”》
  31. 《vue+elementui完美实现后台管理系统的左、右、顶部菜单布局》
  32. 《html5+css3实现3D正方体动画相册2种+3D旋转木马立体动画相册+表白文字加动画爱心+炫酷万花筒五件套含音乐》
  33. 《后端使用springboot+maven+shiro+mybatis+mysql,前端使用H-ui.admin_v3.1.3.1,快速实现管理后台功能》
  34. 《springboot+thymeleaf+maven+html+css实现精美大方好看官网模板完整源码》
  35. 《html+css实现好友列表,类似QQ群聊成员列表》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows上VMware虚拟机彻底卸载详细教程

VMware虚拟机彻底卸载 一、彻底卸载过程1.1 停止VMware服务1.2 结束vmware任务1.3 开始卸载VMware1.4 删除注册表信息1.5 删除安装目录 二、vmware 安装教程三、vmware 使用教程 回到目录   回到末尾 一、彻底卸载过程 卸载之前&#xff0c;需要先关闭VMware相关的后台服务…

高速公路智慧稽核常用技术及发展方向浅析

交通运输部数据显示&#xff0c;截至2021年末&#xff0c;全国收费公路里程达18.76万公里&#xff0c;其中高速公路16.12万公里&#xff0c;占比高达85.9%&#xff0c;高速公路费用收缴的重要性尤为凸显。 收费系统作为高速公路的三大机电系统之一&#xff0c;在高速费用的收取…

【Java面试题】框架篇——Spring

文章目录 什么是Spring框架&#xff1f;Spring框架有哪些主要模块&#xff1f;Spring有几种配置方式&#xff1f;Spring框架中的单例Beans是线程安全的么&#xff1f;Spring 框架中都用到了哪些设计模式&#xff1f;★★★Spring AOP在实际项目中的应用★★★阐述一下Bean的生命…

使用 Transformers 为多语种语音识别任务微调 Whisper 模型

本文提供了一个使用 Hugging Face &#x1f917; Transformers 在任意多语种语音识别 (ASR) 数据集上微调 Whisper 的分步指南。同时&#xff0c;我们还深入解释了 Whisper 模型、Common Voice 数据集以及微调等理论知识&#xff0c;并提供了数据准备和微调的相关代码。如果你想…

django-vue-admin 运行记录

django-vue-admin 运行记录 1. 安装 ubuntu-20.04.6 桌面版 ubuntu-20.04.6-desktop-amd64.iso 桌面版本 桌面版的目的是 有浏览器可以看 django vue 的localhost网页。 用server版&#xff0c;需要用别的机器看&#xff0c;别的机器在权限上可能有问题。 sudo apt install …

ChatGLM2-6B-Int4本地部署

原文链接&#xff1a;http://wangguo.site/posts/9d8c1768.html ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本 GitHub地址&#xff1a;https://github.com/THUDM/ChatGLM2-6B 1、先看效果 2、本地部署 部署环境 wsl2-ubuntu22.04 LTS-----------------------…

计网简答题

答案不保证正确性&#xff0c;仅供参考。 1.有如图所示的以太网&#xff0c;每个交换机的名字及接口号、主机的名字及MAC地址都标明在图中。网络初启动时&#xff0c;两个交换机的转发表都为空&#xff0c;接着先后进行以下MAC帧传输&#xff1a;H1→H5&#xff0c;H3→H2&…

PG系列5:PG体系结构

文章目录 一. PG体系结构1.1 PG的体系结构概述1.2 PostgreSQL进程概述 二. PG内存结构三. PostgreSQL进程3.1 后台进程3.2 后端进程(backend)或服务器进程3.3 用户进程或客户端进程3.4 数据库服务器启动流程 四. PG逻辑结构4.1 PostgreSQL cluster4.2 database和cluster的关系4…

DevExpress WPF Scheduler组件,快速构建性能优异的调度管理器!(上)

无论您在WPF项目中是需要Outlook样式的调度程序&#xff0c;还是需要时间表或议程视图来向最终用户展示信息&#xff0c;DevExpress WPF Scheduler都提供了数十个选项&#xff0c;如集成的日程对话框等&#xff0c;因此用户可以快速构建下一个伟大的调度管理器。 DevExpress W…

抖音本地生活团购服务商

抖音本地生活团购服务商市场前景非常广阔。随着移动互联网的普及和人们对本地生活服务需求的增加&#xff0c;本地生活团购行业已成为一个快速增长的市场。而抖音平台拥有庞大的用户基础和强大的社交媒体传播力&#xff0c;为本地生活团购服务商提供了巨大的发展机遇。 抖音…

刷题日记《链表02》

题目描述 给定两个 非空链表 l1和 l2 来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 可以假设除了数字 0 之外&#xff0c;这两个数字都不会以零开头。 解题思路 面对这种求和相加的题目&#xff0c;不知道…

windows 下安装 mysql-8.0.25 解压版

介绍 此文介绍 mysql-8.0.25-winx64 的 zip 解压版&#xff0c;在 windows 下的安装与配置过程。 官方下载 官网下载页&#xff1a; https://downloads.mysql.com/archives/community/ 进入官网&#xff0c;选择默认版本就行&#xff0c;不需要包含测试工具套件的版本 本地解…

C++ day40

1、思维导图 2、定义一个命名空间Myspace&#xff0c;包含以下函数&#xff1a;将一个字符串中的所有单词进行反转&#xff0c;并输出反转后的结果。例如&#xff0c;输入字符串为"Hello World"&#xff0c;输出结果为"olleH dlroW"&#xff0c;并在主函数…

0基础入门---第四章---误差反向传播法

&#x1f31e;欢迎来到深度学习的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff…

Java性能权威指南-总结19

Java性能权威指南-总结19 Java EE性能调优JVM线程调优调节线程栈大小偏向锁自旋锁线程优先级 小结 Java EE性能调优Web容器的基本性能 Java EE性能调优 JVM线程调优 JVM的某些调优策略可以影响线程和同步的性能。 调节线程栈大小 当空间非常珍贵时&#xff0c;可以调节线程…

Day6——Web安全基础

网络安全学习笔记Day6 Web安全基础 一.Web简介什么是Web&#xff1f;什么是因特网&#xff1f;互联网&#xff0c;因特网&#xff0c;万维网的关系万维网构想的诞生http协议URL 二.Web发展史Web1.0Web2.01.0与2.0的区别Web1.0的安全漏洞Web2.0的安全漏洞 三.杂项门户网站静态页…

戴尔笔记本如何用U盘重装Win10系统?

戴尔笔记本如何用U盘重装Win10系统&#xff1f;很多使用戴尔笔记本的用户&#xff0c;都想知道如何用U盘来重装Win10系统&#xff0c;用户首先要确认自己的戴尔笔记本电脑能不能联网&#xff0c;然后再准备一个8G以上的U盘&#xff0c;最后根据小编分享的戴尔笔记本用U盘重装Wi…

Springboot Mybatis 不存在插入数据,存在则更新数据

前言 是不是经常看到代码&#xff0c; 查一下数据库&#xff0c;如果存在数据&#xff0c;就做更新语句调用&#xff1b; 如果不存在&#xff0c;就插入。 今天该篇介绍的 是使用 INSERT INTO ON DUPLICATE KEY UPDATE 来实现我们上述的场景&#xff0c; 不需要…

不能真“生成代码”的“低代码”平台,不可能获得程序员的认可

目录 前言 思考 解决问题 基本现状 发现亮点 前言 >前几天我和一个好友聊天的时候&#xff0c;他是这么评价低代码平台的&#xff1a;“想证明程序员都是傻X&#xff0c;又想让程序员买单&#xff01;程序员本身心里就不爽... ” 那么&#xff0c;低代码发展势头迅猛的…

Live800:客服系统如何帮助企业优化服务流程

随着互联网的发展和社会进步&#xff0c;客服服务已经成为企业经营中不可或缺的一部分&#xff0c;然而&#xff0c;客服服务一直以来都备受诟病&#xff0c;用户对客服人员的不满情绪也随之而来。显然企业急需提升客户服务质量&#xff0c;这就离不开客服系统的帮助。 那么&am…