html网易云音乐图片轮播效果,Vue之网易云音乐PC版轮播图的实现

Github - program-learning-lists

最近在刷网易云音乐歌单时发现首页的轮播图很有意思,正好自己想尝试做一个PC版的网易云音乐,于是就是使用Vue去做这个demo,废话少说,我要出招了,接招吧

1d584ae523bea9b2cfb7f375167aee5c.gif

页面的DOM结构

:style="sliderStyle"

@mouseover="pause()"

@mouseout="play()">

:key="index"

:class="setClass(index)"

@click="onClick(index)" :style="setBGImg(item.src)">

:style="setActiveDot(index)"

@mouseover="currentIndex = index">

Slider-container的样式(Stylus)

.slider-container

width: 100%

height: 100%

text-align: center

padding: 10px 0

position: relative

这个子组件主要分为两块。

第一块、轮播图,其中它们的业务逻辑是

自动切换

左右icon切换轮播图

点击前后轮播图切换轮播图

鼠标滑动到轮播图停止轮播,离开后继续轮播

Slider-content的DOM结构

:key="index"

:class="setClass(index)"

@click="onClick(index)" :style="setBGImg(item.src)">

Slider-content的样式(Stylus)

.slider-content

position: relative

width: 100%

height: calc(100% - 20px)

left: 0%

top: 0%

margin: 0px

padding: 0px

background-size: inherit

.slider

position: absolute

margin: 0

padding: 0

top: 0

left: 50%

width: 65%

height: 100%

transition: 500ms all ease-in-out

background-color: #fff

background-repeat: no-repeat

background-position: center

background-size: inherit

transform: translate3d(-50%,0,-80px)

z-index: 1

&:before

position: absolute

content: ""

width: 100%

height: 100%

top: 0

left: 0

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

transition-delay: 100ms!important

transition: all 500ms

cursor: pointer

&.active

transform: translate3d(-50%, 0, 0)

z-index: 20

&.prev

transform: translate3d(-75%, 0, -100px)

z-index: 19

&.next

transform: translate3d(-25%, 0, -100px)

z-index: 18

i

width: 17.5%

display: none

position: absolute

top: 40%

font-size: 22px

color: rgba(255, 255, 255, 0.5)

text-shadow: 0 0 24px rgba(0, 0, 0, 0.3)

cursor: pointer

z-index: 21

&:first-child

left: 0

&:last-child

right: 0

&:hover

i

color: rgba(255, 255, 255, 0.8)

display: block

&.mask

.slider

&.prev, &.next

&:before

background-color: rgba(0, 0, 0, 0.50)

第二块、底部的dot, 其中它们的业务逻辑是

当前轮播图对应位置的dot高亮

鼠标移动到相应的dot上切换对应位置的轮播图

Dots的DOM结构

:style="setActiveDot(index)"

@mouseover="currentIndex = index">

Dots的样式(Stylus)

.dots

width: 100%

height: 20px

span

display: inline-block

width: 20px

height: 2px

margin: 1px 3px

cursor: pointer

上面是页面的DOM结构和表现的实现代码,接下来我们要讲的是连招的实现,小心啦,我要摸眼W + R3了。

上面我们讲到轮播图的业务逻辑,接下来,我们就讲讲如何实现的的吧

自动轮播

00306db4cc6dcaad63029093e1647886.gif

play () {

this.pause();

if (this.autoPlay) {

this.timer = setInterval(()=>{

this.next();

}, this.interval)

}

}

暂停轮播

54257036874841886a0781a46a9a2603.gif

pause () {

clearInterval(this.timer);

}

Icon切换轮播图

992949ec0c098cf60b75ccb3a8df94b5.gif

next () {

this.currentIndex = ++this.currentIndex % this.list.length;

},

prev () {

this.currentIndex = this.currentIndex === 0 ? this.list.length - 1 : this.currentIndex - 1;

},

前后轮播图的切换轮播图

c6a243f804afdc7fec65c54e2507064e.gif

onClick (i) {

if (i === this.currentIndex){

this.$emit('sliderClick', i);

} else {

let currentClickClassName = this.sliderDomList[i].className.split(' ')[1]

console.log(currentClickClassName)

if (currentClickClassName === 'next') {

this.next()

} else {

this.prev()

}

}

}

dots轮播图的切换轮播图

5f475f8dec67594cb66d6afdfb508330.gif

这里比较简单,只需要设置它的鼠标事件即可

@mouseover="currentIndex = index"

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

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

相关文章

python教程答案十九章_Python 编程从入门到实践 第19章 注销一节问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼现在网上的教程都是第1版的,很多代码都不能用,官网下了第2版的代码,一路用第1版教程修修改改好不容易到第19章 19.2.3 注销 这一节,现在遇到个问题,过不去了。。。求教大家…

深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解(转)

文章转自http://blog.csdn.net/l454822901/article/details/51829785 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置文件创建C…

我有个队友,叫悟空

昨晚,是我们篮球队年终聚会,好像也是第一次组织篮球队的聚会,之前就只知道在场上打球,场下就没有过这样的吃饭聚会。年终的时候,聚会特别多,该交流感情的交流感情,该年会抽奖的就年会抽奖&#…

go语言html css,html – 在Golang中加载图像和CSS

我在项目根目录的package main中的server.js中设置了一个路由http.HandleFunc( “/”,route.IndexHandler)IndexHandler在包路由中实现,如下所示:func IndexHandler(w http.ResponseWriter, r *http.Request) {data:struct{Name string}{"My name",}util.…

python队列只能一个个读取吗_python队列Queue的详解

QueueQueue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递基本FIFO队列class Queue.Queue(maxsize0)FIFO即First in First Out,先进先出。Queue提供了一个…

C#基于LibUsbDotNet实现USB通信(一)

网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS。 本篇文章基于LibUsbDotNet。 1. 下载并安装 LibUsbDotNet 安装文件。 2. 运行Filter Wizard, Install a device filter。 安装需要通信的usb设备。 3. 建一个简单…

一个大神的Android成长之路

这篇文章是我的一个朋友写的,总结了这些年的技术成长之路,我觉得对于很多技术人都有借鉴的作用,技术是相通的,不要整天想一口气吃成一个胖子,不积跬步无以至千里,既然选择了技术这条路,就不畏艰…

银联Apple Pay 总结

最近在空余的时间做了银联Apple Pay,是银联快捷支付,在手机钱包里面绑定银行卡,在购买商品的时候直接指纹支付就可以了. 首先你看一线Apple Pay的官方文档:Apple Pay Human Interface Guidelines. 因为按钮和界面的原因,苹果拒绝我2次了. 按钮要使用苹果自带的Apple Pay按钮,要…

jsp页面内引入静态html,JSP技术实现动态页面到静态页面的方法

本文是介绍了jsp技术实现动态页面到静态页面的方法,分享给大家,具体如下:对于JSP技术实现动态页面到静态页面的方案,我们从三个步骤来说明:JSP技术实现动态页面到静态页面的方案第一:为了能深入浅出的理解这…

python loads_python dumps和loads区别详解

这篇文章主要介绍了python dumps和loads区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下一.概念理解json是一种轻量级的数据交换格式,对象由花括号括起来的逗号分割的成员构成,成…

串口通讯你真的会了吗?不妨看看这些经验

平时使用串口打印出现乱码的绝大部分原因是串口波特率没对。那么我们怎么测量实际的波特率呢?在这之前,顺便一起回顾一下波特率的概念。什么是波特率、比特率? 比特率(Bitrate)表示每秒钟传输的二进制位数,单位为比特每秒(bit/s)。…

html分类代码查询,html标签元素分类(示例代码)

在CSS中,HTML中的标签元素可以被分成三种类型,分别是:块状元素、内联元素和内联块状元素。常用的块状元素有:、、(......标题)、、、、(长引用)、块状元素的特点:1、一个块状元素独占一行;2、块状元素的高度…

7月27

Ddl语句,数据定义表 ,创建删除。SQL 结构化查询语句 DML数据操控表:对数据进行操作,如增删查改 Grid control网络控制 control 像是一个集成的管理工具。Bi做数据仓库的应用。 Entity实体集 每个实体集是表,每个…

一些函数、变量命名法及代码规范

驼峰命名法 骆驼式命名法(Camel-Case)又称驼峰式命名法,也称小驼峰式命名法。骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采…

linux 信号_[入门]谈一谈Linux中的信号

也许有一些同学有这样的疑问:kill -9 PID 中的 -9 到底是什么意思?Ctrl C 是为什么可以停止掉运行的程序?1. 什么是信号?在计算机科学中,信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方…

计算机应用技术专业课程改革方案,【计算机维护论文】计算机应用技术专业教学改革方案(共4015字)...

一、新课改背景下计算机应用技术专业教学创新型改革的必要性新课改背景下计算机应用技术专业教学创新新改革的必要性主要包括以下三点。第一,当前计算机应用技术专业教学存在教学计划单一且教学缺乏灵活性和创新性的问题,在一定程度上制约和影响计算机应…

多校第二场C题

水贪心 #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<queue> #include<set> using namespace std; typedef long long ll; typedef pair<int,int> pii; #define M…

终于讲透了,史上最详细的RS485串口通讯!

RS485接口组成的半双工网络&#xff0c;一般是两线制&#xff0c;多采用屏蔽双绞线传输&#xff0c;这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。我们知道&#xff0c;最初数据是模拟信号输出简单过程量&#xff0c;后来仪表接口是RS232接口&#xff0c;这…

python求解不等式组_解线性方程组和线性不等式组

你的问题是线性规划中的问题&#xff0c;你的等式和不等式是限制&#xff0c;你想最小化(然后最大化)表达式y。等式、不等式和表达式都是线性的&#xff0c;所以它是线性规划。使用scipy函数的scipy包可以进行这种线性规划。在这里是注释代码&#xff0c;可以做你想做的。注意&…

昆明大学津桥学院计算机科学与技术,昆明理工大学津桥学院计算机科学与技术专业2015年在河南理科高考录取最低分数线...

类似问题答案昆明理工大学津桥学院计算机科学与技术专业2015年在河北理科高考录取最低分数线学校 地 区 专业 年份 批次 类型 分数 昆明理工大学津桥学院 河北 计算机科学与技术 2015 三批 理科 363 学校 地 区 专业 年份 批次 类型 分数 昆明理工大学津桥学院 河北 计算机科学…