这几天忙着毕业设计,其中一个页面需放上轮播图,遂听着音乐在网上寻(chao)找(xi)灵(an)感(li),猛地发现原来网易云音乐客户端的轮播图就非常好看,所以就尝试着模仿了一个,虽然十分简陋,但好在也迈出了第一步。

最终效果:


(为啥放上去的 gif 图片这么小呢?? )

给大家补张截图吧:


我是用 Vue 框架+less 写的这个轮播图,这里有一个难点就是左右两边图片的角度,因为是新手,所以捣鼓了一些时间,希望大神们不要见笑哈~

ok,废话不多说,来进入正题: 轮播图的原理大家应该都知道,那让我再重复一遍(23333),假设现在有6张图片,将6张图左浮动排列,并且被一个 list 容器包裹,所以这个 list 的 width 会很大,然后 list 有一个 div 父容器,div 的宽度只有一张图片那么大,同时设置它的 overflow 为 hidden,这里 div 的 position 是 relative,list 的 position 是 absolute,最后通过调节 list 的 left 值来实现图片的显示切换。

html ( template 模版) 代码:


初步的 less 代码:

.slider {position: relative;margin: 0 auto;width: 468px;height: 200px;overflow: hidden;ul {position: absolute;padding: 0;width: 2808px;li {float: left;list-style: none;z-index: 3;img {width: 468px;border-radius: 3px;}}}}

中间的轮播图样式写好后,开始写左右两边的图片,这里要借助 perspective 属性 和 transform 的 rotate () css函数。

perspective 用于设置元素被查看位置的视图,需要注意的是当元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身,所以我们需要在左右图片的父容器上定义 perspective 属性,另外目前浏览器都不支持 perspective 属性 ? ,不过 Chrome 和 Safari 支持替代的 -webkit-perspective 属性 ? ;然后在左右图片上设置 transform:rotate () 来制造一个2D 旋转,通过调节 perspective 和 rotate 里角度的值,就可以实现网易云音乐轮播图左右两侧图片的效果了。

左右图片的 less 代码:

.around {perspective: 200;-webkit-perspective: 200;cursor: pointer;.pre {position: absolute;height: 136px;top: 31px;left: 300px;border-top-left-radius: 3px;border-bottom-left-radius: 3px;transform: rotateY(7deg);}.next {position: absolute;height: 136px;top: 31px;left: 766px;border-top-right-radius: 3px;border-bottom-right-radius: 3px;transform: rotateY(-7deg);}}

最后在轮播图底下放上小圆点,以便用户点击跳到指定图片上:

.pointer {display: flex;justify-content: center;font-size: 20px;line-height: 20px;color: gray;cursor: pointer;:first-child {color: orange;}li {margin-right: 2px;}}

这样,轮播图的样式就写好了,接下来该写 js 来实现自动播放、左右切换以及点击圆点跳转。 这里的逻辑挺简单,就不一一叙述了,主要注意两个临界点,当前图片为第一张与最后一张这两种情况下左右图片的展示以及点击切换的逻辑。

js 代码:

created () {// 初始化小圆点的个数;this.pointer.length = 6// 设置定时器;setInterval(() => {this.replace(true)}, 3000)},methods: {replace (right, pointer) {// 每次调用 replace 方法时,将之前橙色的小圆点 color 改成灰色;this.$refs.pointer[this.index].style.color = 'gray'// 通过传进来的第一个参数判断是向左还是向右切换;this.index = right ? this.index  = 1 : this.index -= 1/**  如果有传第二个参数,即点击了小圆点,更改当前 index因为点击第一个小圆点时传进来的 pointer 为 0,会被判为 false,所以在点击圆点传参数时增加了 1,之后在赋值给 index 时需减去; **/if (pointer) this.index = pointer - 1// 实现主轮播图的 “无限循环”;if (this.index > 5) {this.index = 0} else if (this.index < 0) {this.index = 5}// 实现左右两侧图片的循环;if (this.index === 0) {this.$refs.pre.src = this.slider[5].srcthis.$refs.next.src = this.slider[this.index   1].src} else if (this.index === 5) {this.$refs.pre.src = this.slider[this.index - 1].srcthis.$refs.next.src = this.slider[0].src} else {this.$refs.pre.src = this.slider[this.index - 1].srcthis.$refs.next.src = this.slider[this.index   1].src}// 给当前图片对应的小圆点 “上色”;this.$refs.pointer[this.index].style.color = 'orange'// 移动 list 的位置,即更换当前显示图片;this.$refs.list.style.left = -(this.index * 468)   'px'}}

结语

到这里,一个简易版的网易轮播图就完成了,确实还存在一些不足,笔者也在尽力去完善它,一入前端深似海,咱们还有很长的路要走,望与君共勉~ 当然咯,如果这篇文章对你有一丁点启发的话,不妨点个喜欢或收藏,这将是我更大的动力? 。

更多专业前端知识,请上 【猿2048】www.mk2048.com

仿造网易云音乐轮播图相关推荐

  1. 微信小程序网易云音乐轮播图右侧留白

    效果图 这个效果需要用到swiper里面的一个方法next-margin 使用如下: <swiper class="topListSwiper" next-margin='5 ...

  2. element ui走马灯实现网易云音乐轮播图

    记录一下做项目过程中的问题: 官方文档给的卡片化走马灯 而我想要的效果: 话不多说直接上代码: <el-carousel :interval="4000" type=&quo ...

  3. 基于qt实现网易云界面轮播效果实现

    基于qt实现网易云音乐的轮播效果 网易云轮播效果 前言 其实主要是想做点记录吧,本人比较喜欢音乐,所以在上周决定在搭建一个网易云的界面框架,不做不知道,做了才发现qt还有很多的框架是自己不太熟悉的. ...

  4. 原神官网新闻资讯轮播图——html,css

    原神官网新闻资讯轮播图--html,css 通过使用swiper插件实现原神新闻资讯轮播图 先来看看效果 用到了swiper的js插件,比较方便,参考了原神官网,发现官网也是使用了swiper 下面上 ...

  5. 轮播图:小米官网同款轮播图,拿走它让你的网页酷酷的~

    下面是我闲暇时总结的JS.CSS.算法总结,欢迎大家点赞.star-- 有趣实用的CSS效果 前端博客 传送门 LeetCode个人题解 传送门 最近一直再看基础知识,打算将基础知识与实力结合起来,第 ...

  6. python网易云音乐下载_GUI图形化界面

    效果展示 1,打包exe文件,window直接可以运行 2,输入歌曲名字可以直接下载 3,下载后的歌曲保存在netease.exe文件所在的同一个文件夹中,music_netease文件夹是程序自动创 ...

  7. banner中居中的page显示完全,其余显示百分之20--仿网易云首页轮播图

    效果图 导入依赖 //BannerViewPagerimplementation 'com.github.lzjin:ViewPagerGallery:1.3' UI布局 <com.lzj.ga ...

  8. 原生H5实现网易云轮播图

    许久不更新了,今天做一个网易云的轮播图,就像下面这样 先二话不多说,贴上代码: <!DOCTYPE html> <html lang="en"> <h ...

  9. 新增轮播图跳转web页面、轮播、推荐歌单数据存储( 简易音乐 七)

    新增轮播图跳转web页面.轮播.推荐歌单数据存储( 简易音乐 七) 关于 效果图 第一步,添加引用 新增数据库实体类 修改fragment代码 新增WebActivity页面加载网页 关于   本篇主 ...

最新文章

  1. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型
  2. fh admin mysql版本_mysql5.6 和 mysql8 配置的差异
  3. 很多人调用接口会阻塞吗_锻炼的真相你知道吗?这些你可能都想了解,很多人都会问的2点...
  4. [数据库] MySQL基础知识之日期判断及添加排序序号
  5. 分析windows宿主机Ping不通linux虚拟机的其中一种情况
  6. Kamailio 简介
  7. linux之dos2unix命令
  8. 【CCCC】L2-002 链表去重 (25分),,把一个链表拆成两个
  9. 怎样解决mysql最后一步提示未响应
  10. Python之XML模块
  11. python网易云_小白都懂的Python爬虫之网易云音乐下载
  12. Netty案例介绍-群聊案例实现
  13. 假设检验1——理论基础
  14. Vue中native的用法
  15. linux编译一直失败,linux编译安装时常见错误解决办法
  16. net新的库相关的资源
  17. 如何使用国内代理ip?
  18. 关于会员积分体系的产品设计
  19. conda env create -f conda.yml出错
  20. python图色模拟脚本_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库

热门文章

  1. 计算机课程进制的转换,计算机课程设计 进制转换
  2. 坤宝德万达打造命运共同体万达茂天樾之夜.时光发声全国巡回演唱会南宁站圆满结束
  3. 编译原理复习 第一章 概述
  4. RH236介绍红帽GLUSTER存储
  5. 企业如何做软文营销推广?
  6. 文本分析简历项目收集-----机器学习(仅供参考)
  7. 江苏大学正版Windows和Office全家桶--UJS微软正版化服务平台
  8. 石狮子吃了四十四个涩柿子
  9. htc+m7+android系统+电源,htc one m7 4.4系统获取root权限教程(安卓4.4专用)
  10. ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)