b站黑马的Vue快速入门案例代码——图片切换(类似手动播放的轮播图)

article/2025/9/23 11:31:16

目录

目标效果:

重点原理:

1.用数组储存图片的数据

2.v-bind指令可以设置元素属性 e.g.src 

语法   v-bind:属性名=表达式

简写【实际开发常用】   :属性名=表达式

3.v-show和v-if都可以切换元素的显示/隐藏状态

(1)频繁切换显示/隐藏的dom元素用 v-show

(2)不频繁切换显示/隐藏的dom元素用 v-if

实现步骤:

1.定义图片数组

2.添加图片索引  

3.绑定src属性

4.图片切换逻辑/5.显示状态切换

代码部分:

1.图片切换.html(全是重点)

2.index.css(辅助作用) 

3.vue.js(辅助作用)

安装Vue的方法 /获取vue.js文件的方法:​编辑


目标效果:

1.点击右边按钮,是往右播放一张图片;点击左边按钮,是往左播放一张图片

2.在第一张图片的时候,不显示按钮;在最后一张图片的时候,不显示按钮

3.初始状态显示是第一张图片 (在图片数组中index为0)

e.g.1初始效果,默认显示的是第一张图片:

 e.g.2在默认显示的是第一张图片的基础上,点击右按钮一次,切换到第二张图片:

 

 e.g.3一直点击右按钮,直到显示最后一张图片:

  e.g.4在显示最后一张图片的基础上,点击左按钮,可以查看倒数第二张图片:

重点原理:

1.数组储存图片的数据

e.g.

  <script>

    var app = new Vue({

      el: "#mask",

      data: {

        imgArr: [

          "./images/00.jpg",

          "./images/01.jpg",

          "./images/02.jpg",

          "./images/03.jpg",

          "./images/04.jpg",

          "./images/05.jpg",

          "./images/06.jpg",

          "./images/07.jpg",

          "./images/08.jpg",

          "./images/09.jpg",

          "./images/10.jpg",

        ],//图片数组

        index: 0//索引是从第一张图开始计算

      },

      methods: {

        prev: function () {//prev 切换到上一张图片

          this.index--;//此处this指当前对象#mask

        },

        next: function () {//next 切换到下一张图片

          this.index++;//此处this指当前对象#mask

        }

      }

    })

  </script>

2.v-bind指令可以设置元素属性 e.g.src 

语法   v-bind:属性名=表达式

简写【实际开发常用】   :属性名=表达式

e.g.

:src=“...”是v-bind:src=”...”的简写,都可以给img元素添加src属性

3.v-showv-if都可以切换元素的显示/隐藏状态

(1)频繁切换显示/隐藏的dom元素用 v-show

v-show=“表达式”    原理是【dom元素一直存在,只是修改display,对性能损耗小

v-show=“false”   隐藏   dom元素加上了display:none

v-show=“true”    不隐藏

(2)不频繁切换显示/隐藏的dom元素用 v-if

v-if=“表达式”     原理是【新增/删除dom元素,对性能损耗大

v-show=“false”,元素存在于dom树中(即该dom元素存在)

v-show=“false”,从dom树中移除(即该dom元素不存在

实现步骤:

1.定义图片数组

数组储存所有图片 

2.添加图片索引  

3.绑定src属性

4.图片切换逻辑/5.显示状态切换

代码部分:

1.图片切换.html(全是重点)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>图片切换</title><link rel="stylesheet" href="./css/index.css" />
</head><body><div id="mask"><div class="center"><h2 class="title"><img src="./images/logo.png" alt="">深圳创维校区环境</h2><!-- 图片 --><img :src="imgArr[index]" alt="" /><!-- 左箭头 --><!-- 此处切换左右箭头的显示/隐藏:v-if也可以实现一样的效果,但是由于v-if对性能消耗比v-show大,所以应该首选用v-show --><!-- v-show="index!=0"指: --><!-- (1)当index的值不等于0的时候,显示左箭头 --><!-- (2)当index的值等于0的时候,隐藏左箭头 --><a href="javascript:void(0)" @click="prev" v-show="index!=0" class="left"><img src="./images/prev.png" alt="" /></a><!-- 右箭头 --><!-- v-show="index<imgArr.length-1"指: --><!-- index<imgArr.length-1=10-1=9,index索引是9的时候是最后一张图片 --><!-- (1)即最后一张图片之前,显示右箭头 --><!-- (2)到最后一张图片,隐藏右箭头 --><a href="javascript:void(0)" @click="next" v-show="index<imgArr.length-1" class="right"><img src="./images/next.png" alt="" /></a></div></div><script src="../vue.js"></script><script>var app = new Vue({el: "#mask",data: {imgArr: ["./images/00.jpg","./images/01.jpg","./images/02.jpg","./images/03.jpg","./images/04.jpg","./images/05.jpg","./images/06.jpg","./images/07.jpg","./images/08.jpg","./images/09.jpg","./images/10.jpg",],//图片数组index: 0//索引是从第一张图开始计算},methods: {prev: function () {//prev 切换到上一张图片this.index--;//此处this指当前对象#mask},next: function () {//next 切换到下一张图片this.index++;//此处this指当前对象#mask}}})</script>
</body></html>

2.index.css(辅助作用) 

* {margin: 0;padding: 0;
}html,
body,
#mask {width: 100%;height: 100%;
}#mask {background-color: #c9c9c9;position: relative;
}#mask .center {position: absolute;background-color: #fff;left: 50%;top: 50%;transform: translate(-50%, -50%);padding: 10px;
}
#mask .center .title {position: absolute;display: flex;align-items: center;height: 56px;top: -61px;left: 0;padding: 5px;padding-left: 10px;padding-bottom: 0;color: rgba(175, 47, 47, 0.8);font-size: 26px;font-weight: normal;background-color: white;padding-right: 50px;z-index: 2;
}
#mask .center .title img {height: 40px;margin-right: 10px;
}#mask .center .title::before {content: "";position: absolute;width: 0;height: 0;border: 65px solid;border-color: transparent transparent white;top: -65px;right: -65px;z-index: 1;
}#mask .center > img {display: block;width: 700px;height: 458px;
}#mask .center a {text-decoration: none;width: 45px;height: 100px;position: absolute;top: 179px;vertical-align: middle;opacity: 0.5;
}
#mask .center a :hover {opacity: 0.8;
}#mask .center .left {left: 15px;text-align: left;padding-right: 10px;border-top-right-radius: 10px;border-bottom-right-radius: 10px;
}#mask .center .right {right: 15px;text-align: right;padding-left: 10px;border-top-left-radius: 10px;border-bottom-left-radius: 10px;
}

3.vue.js(辅助作用)

因为该文件内容太多,请前往该网址(Vue官网)下载 

安装 — Vue.js

安装Vue的方法 /获取vue.js文件的方法:


http://chatgpt.dhexx.cn/article/OmQ4wBtx.shtml

相关文章

前端必备技能——轮播图(原生代码+插件)

你是否在为页面平平无奇而烦恼&#xff1f; 你是否在为页面特效过于简单而苦恼&#xff1f; 你是否也在为同是前端小白而别人的页面却比自己的更加精美&#xff1f; 如果你看到这篇博客&#xff0c; 你就已经赢在起跑线啦~ 因为&#xff01;&#xff01;&#xff01; 这篇…

轮播图的多种实现及原理

【写在前面】 最近&#xff0c;在自己的项目中遇到了很多轮播图。 当然&#xff0c;这里的很多&#xff0c;并非数量多&#xff0c;指的是种类很多&#xff0c;即多种实现。 然后我觉得有不少小技巧&#xff0c;就决定写一篇文章讲解一下。 本篇主要内容&#xff1a; 1、轮播图…

网页轮播图(详细版)

在网页中&#xff0c;我们经常会看到各种轮播图的效果&#xff0c;它们到底是怎样实现的呢&#xff1f;今天&#xff0c;我们就一起来看一下&#xff01;首先&#xff0c;我们需要准备若干张图片&#xff0c;在这里我准备了五张图片。 功能需求&#xff1a; 鼠标经过轮播图模块…

轮播图 (无缝轮播图)

1.无缝轮播核心: 在最后多加一张第一张图, 当达到最后一张t1的时候 一瞬间将ul拉回到0的位置 结构&#xff1a; <div class"wrap"><ul><li><img src"./image/t1.png" alt""></li><li><img src"./i…

JS来实现轮播图(走马灯)可左右切换图片,鼠标移入会停止轮播

效果一&#xff1a; 会自动进行轮播&#xff0c;当鼠标进入轮播图区域会停止轮播&#xff0c;点击左右箭头可以向前、向后进行切换图片 效果二&#xff1a; 这种效果比第一种效果简单&#xff0c;只要删除一些代码和修改一些样式即可。 实现原理 轮播图整体是放在ul里的&…

oracle nvl函数 mysql_关于Oracle数据库中的nvl函数

以前将数据库查询结果展示在页面时&#xff0c;对于值null的字段&#xff0c;总是要判断下&#xff0c;如果为null&#xff0c;就显示ldquo;rdquo;&#xff0c;突然发现这个方法好笨 以前将数据库查询结果展示在页面时&#xff0c;对于值null的字段&#xff0c;总是要判断下&am…

nvl 函数初识

根据bi业务逻辑写sql时&#xff0c;在写法上有些区别&#xff0c;我习惯用case when &#xff0c;没有用过nvl所以试一试 bi某一列的业务如下&#xff1a; 我用sql分别试了case when 和 nvl &#xff0c;得到的结果是一致的 &#xff0c; 使用nvl函数的部分sql&#xff1a; …

MySQL中创 NVL 函数

NVL的定义 NVL(s1, s2)&#xff1a;当s1为null时&#xff0c;返回s2&#xff0c;否则返回s1。 SELECT NVL(S, R) FROM DUAL; -- S SELECT NVL(NULL, R) FROM DUAL; -- RNVL方法的兼容策略 第一种&#xff1a;用 case when 代替 NVL&#xff0c;这种方法代码改造量较大&am…

Xp 激活

2019独角兽企业重金招聘Python工程师标准>>> 为了在xp下测试一键安装 支持多语言、多用户、多数据库、完美URL之路过秋天版博客发布[绝对有杀伤力的博客] 这两天为xp激活折腾了不少时间,在不断用ghost还原来还原去的,原因就是我有一张OEM版本的系统,正常方式的…

Windows XP Professional With SP3 VOL[MSDN原版]+正版密钥

Windows XP Professional简体中文版,这是一个中国人最熟悉不过的操作系统了(也有人称它一个最适合中国人的操作系统)。Windows XP 由于其出色的安全性、可靠性、易用性、高性能,使它获得了巨大的成功,直至今天它仍然是全球使用率最高的操作系统。 下面我们来说说…

Windows.XP.x64.Pro.VOL(WINXP64位企业版)+正版序列号

Windows.XP.x64.Pro.VOL(WINXP64位企业版)的设计初衷是&#xff1a;满足机械设计和分析、三维动画、视频编辑和创作以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户的需求。 专用技术应用程序的性能优势 64 位计算性能在汽车或飞机设计等领域体现出优势…

如何查看XP系统的密匙

最近有网友提问IT视窗小编说他家现在用的是xp系统&#xff0c;如何查看XP系统的密匙呢。其实查看XP系统密匙还是比较的简单的&#xff0c;小编就把查看XP系统密匙的两种方法都写成教程分享给大家。下面就是小编作为大神教你如何查看XP系统的密匙。希望大家都喜欢我的教程。 1、…

IDEA 使用 README.md 介绍项目

IDEA 使用 README.md 介绍项目 文章目录 一.前言二.IDEA创建Markdown文件1.新建文件- 1.1.创建README.md文件 2.编辑md文件常用语法2.1.定义标题字号2.2. 文字样式2.2.1.文字斜体2.2.2.文字加粗2.2.3.文字删除线2.2.4. 引用文本 2.3.列表样式2.3.1 无符号列表2.3.2. 有符号列表…

Github美化README

GITHUB中的MD文件 在github中新建一个仓库Create a new repository时会有一个README文件&#xff0c;其实为自述文件&#xff0c;介绍这个仓库的基本概要。这个文件也是MD文件&#xff0c;可用软件typora和vscode等md软件进行拟写就行了。也是下面介绍的第三种方法。 编写方式…

README.md文件的作用及其文件内容的语法

README.md文件一般出现在项目的根目录下&#xff0c;其作用是对项目的主要信息进行描述。 如果一个项目你很长时间都没有动&#xff0c;突然你需要修改这个项目&#xff0c;那么通过README.md中对项目的描述能让你快速的再次上手&#xff1b; 或者别人拿到你的项目也能通过READ…

原来Github上的README.md文件这么有意思——Markdown语言详解

转载请注明出处&#xff1a;http://blog.csdn.net/zhaokaiqiang1992 之前一直在使用github&#xff0c;也在上面分享了不少的项目和Demo&#xff0c;每次创建新项目的时候&#xff0c;使用的都是默认的README.md文件&#xff0c;也不曾对这个文件有过什么了解。但是在看到别人写…

如何规范写出 README 模板?

README 标准是由 RichardLitt 发起&#xff0c;十多名开发者共同贡献完成的&#xff0c;在 GitHub 上有 1230 Star&#xff1a;standard-readme 标准 README 实例&#xff1a; standard-readme/tree/main/example-readmes奖励&#xff1a;实例 本文模板获取地址&#xff1a;…

GitHub README-Template.md - README.md 模板

GitHub README-Template.md - README.md 模板 A template to make good README.md. https://gist.github.com/PurpleBooth/109311bb0361f32d87a2 # Project TitleOne Paragraph of project description goes here## Getting StartedThese instructions will get you a copy o…

怎么写一个超棒的 README 文档

点击上方 Java后端&#xff0c;选择 设为星标 优质文章&#xff0c;及时送达 大数据文摘出品 来源&#xff1a;medium 编译&#xff1a;青柠 如果你很着急、只是想要模板&#xff0c;可以直接跳到底部&#xff08;但这样一点不酷&#xff09;&#xff0c;准备酷的人&#xff0c…

【工具推荐】最简单方法创建 README

CSDN话题挑战赛第1期 活动详情地址&#xff1a;https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题&#xff1a;程序员常用小工具推荐 话题描述&#xff1a;俗话说&#xff0c;工欲善其事&#xff0c;必先利其器。作为每天和各种开发工具打交道的程序…