先看效果:

轮播图做法有很多,效果也有很多。下面是一种简单的两边图片模糊,中间图片放大的轮播图效果。鼠标点击左边右边的图片后,它们会移动到中间并变大,其它图片移动到到两边并模糊。

点击最右边图片:

点击最左边图片:

这个效果是只是有鼠标点击后就轮播,至于鼠标不点击也定时自动轮播的效果以后有时间再出一片文章。

实现:

1. 定义标签,.kuang是最底层盒子,.item是放图片的盒子,可以写任意张图片盒子,我就写了8张图,不少过3张就行,他们都有一个相同类名.item。其中最后3张图分别再给他们一个类名。.left表示我们效果图的左边那张,.middle就是上面效果图的中间那张,.right就是我们效果图的右边那张:

   <div class="kuang"><div class="kuang"><div class="item "><img src="4.jpg"></div><div class="item "><img src="5.jpg"></div><div class="item "><img src="6.jpg"></div><div class="item "><img src="7.jpg"></div><div class="item "><img src="8.jpg"></div><div class="item left"><img src="1.jpg"></div><div class="item middle"><img src="2.jpg"></div><div class="item right"><img src="3.jpg"></div>  </div>

2. 最底层盒子与图片的基本样式,首先让图片盒子全部都绝对定位相同位置,使得图片它们全部重叠在一起:

 .kuang{position: relative;width: 400px;height: 250px;cursor: pointer;}.item{position: absolute;top: 0;left: 0;width: 400px;height: 250px;transition: all 1.5s;   }.item img{width: 100%;height: 100%;}

transition: all 1.5s; 过渡效果

3. 写我们眼睛看到的上面效果的那三张图分别再给他们叠加一个类的样式。左边的图向左移动自身的一半并模糊,右边的图向右边移动一半并模糊,中间的在中间并放大1.3倍。:

 .kuang .left{left: -200px;filter: blur(6px);z-index: 3; }.kuang .middle{left: 0px;transform: scale(1.3);z-index: 4;          }.kuang .right{left: 200px;filter: blur(6px);z-index: 3;}

中间图显示在最上面层,所以 z-index最大。要盖过左边和右边的。
filter: blur(6px); 图片模糊。
transform: scale(1.3); 图片放大。

4.给当不是我们眼睛看到的3张效果图的其它图片一个样式,

 .xiaoshi{left: 0px;z-index: 1;}

它们都重叠一起,回到中间,而且它们的z-index最小,比左,中,右3张眼睛看得到效果图都小,所以没人看得见它们。

5.js实现,大致就是为相应元素赋值类名:
(1)首先全部图都放在了items这个数组里,然后for循环,给每一个图片都绑定一个点击事件。
(2)然后点击事件里,再来一个for循环,把全部图的三个效果类都清除掉,再给它们全部添加xiaoshi类。这样来说图片全部都回到中间位置。如果图总共只有三张可以删掉这个循环。
(3)然后为获得点击事件的图片添加.middle这个类,这然它会移动到中间并放大。
this.previousElementSibling 表示获得它同辈的上一个元素,表示它上一张图片给他.left类让它到左边。??表示前面真选前面,否则选后面。后面就是items[items.length-1],表示如果它前面没有图片就选最后一张图。

nextElementSibling 表示获得它同辈的下一个元素,表示它下一张图片给他.right类让它到右边。??表示前面真选前面,否则选后面。后面就是items[0],表示如果它后面没有图片就选第一张图。

 var items = document.querySelectorAll('.item');for(var i=0;i<items.length;i++){    items[i].addEventListener('click',function(){for(let j=0;j<items.length;j++){items[j].classList.remove('left','right','middle');items[j].classList.add('xiaoshi');} this.classList.remove('left','middle','right');this.classList.add('middle');let left = this.previousElementSibling ?? items[items.length-1];left.classList.add('left'); let right = this.nextElementSibling ?? items[0]; right.classList.add('right');  })}

完整代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>北极光之夜。</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{height: 100vh;display: flex;align-items: center;justify-content: center;background-image: radial-gradient(white,black) ;}.kuang{position: relative;width: 400px;height: 250px;cursor: pointer;}.item{position: absolute;top: 0;left: 0;width: 400px;height: 250px;transition: all 1.5s;   }.item img{width: 100%;height: 100%;}.kuang .left{left: -200px;filter: blur(6px);z-index: 3; }.kuang .middle{left: 0px;transform: scale(1.3);z-index: 4;          }.kuang .right{left: 200px;filter: blur(6px);z-index: 3;}.xiaoshi{left: 0px;z-index: 1;}</style>
</head>
<body><div class="kuang"><div class="kuang"><div class="item "><img src="4.jpg"></div><div class="item "><img src="5.jpg"></div><div class="item "><img src="6.jpg"></div><div class="item "><img src="7.jpg"></div><div class="item "><img src="8.jpg"></div><div class="item left"><img src="1.jpg"></div><div class="item middle"><img src="2.jpg"></div><div class="item right"><img src="3.jpg"></div>  </div></div><script>var items = document.querySelectorAll('.item');for(var i=0;i<items.length;i++){    items[i].addEventListener('click',function(){for(let j=0;j<items.length;j++){items[j].classList.remove('left','right','middle');items[j].classList.add('xiaoshi');} this.classList.remove('left','middle','right');this.classList.add('middle');let left = this.previousElementSibling ?? items[items.length-1];left.classList.add('left'); let right = this.nextElementSibling ?? items[0]; right.classList.add('right');  })}</script>
</body>
</html>

总结(抒情):

其它文章:
响应式卡片悬停效果 html+css
水波加载动画 html+css
导航栏滚动渐变效果 html+css+js
等等等…

最近常听这首歌:我从来没去过纽约 - 筷子兄弟。

如果现在我就离开

我是不是该离开

永远不回来

当我站在街道旁

我已经带了所有的东西

护照信用卡和 money

或许能赶上今晚的飞机

路灯下就停着出租车

坐公交或地铁也不错

心跳的感觉来临在这一刻

再次充满梦想的我

要放纵自己把束缚摆脱

我真的想离开

想要离开


很喜欢一句话:

就当我们今天才毕业吧~

轮播图特效 html+css+js相关推荐

  1. C罗轮播图(HTML+CSS+JS)

    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进.

  2. 电商项目实战第四节: CSS3+HTML5+JS 设计案例【考拉海购网站】之【轮播图特效】

    上一节:电商项目实战第三节: CSS3+HTML5+JS 设计案例[考拉海购网站]之[分类导航栏] 文章目录 [考拉海购网站]之[轮播图特效] 第一步,根据页面布局写相应的html标签 index.h ...

  3. 利用CSS 3 的动画相关属性制作轮播图特效

    本示例给出了只利用CSS3的动画属性制作下图所示的轮播图特效的步骤. Step 1:定义用来展示效果的容器div (1)设置其背景色 (2)让其大小与浏览器的比例合适,并且让其水平.垂直居中: 例如: ...

  4. html5圆形图片轮播,jQuery超酷响应式圆形图片轮播图特效

    mislider是一款效果非常酷的jQuery响应式圆形图片轮播图特效插件.该轮播图特效可以将图片以圆形图片显示,然后使图片无限循环形成轮播图或旋转木马特效.该轮播图插件的特点有: 使用简单 在同一个 ...

  5. html3d轮播图片效果,炫酷3D透视轮播图特效

    这是一款炫酷js和CSS3 3D透视轮播图特效.该3D轮播图通过CSS3制作图片的3D透视效果,并使用js来使轮播图于用户进行交互,效果非常炫酷. 使用方法 在页面中引入style.css和index ...

  6. HTML圆形立体感轮播图,jQuery超酷响应式圆形图片轮播图特效

    mislider是一款效果非常酷的jQuery响应式圆形图片轮播图特效插件.该轮播图特效可以将图片以圆形图片显示,然后使图片无限循环形成轮播图或旋转木马特效.该轮播图插件的特点有: 使用简单 在同一个 ...

  7. 一个不错的旋转木马轮播图特效

    旋转木马轮播图特效共有五张图片,每张图片排列的位置是以中间为对称的.实现了想要的轮播效果,可用在网页制作中重要的展示. 效果如下: 主要代码如下: <!doctype html> < ...

  8. 网页搭建入门---轮播图特效实现

    目录 轮播图 html代码 css代码 效果图 封装byId()方法 图片自动轮播 图片自动轮播和停止 点击圆点切换图片 按钮切换图片 轮播图代码 二级菜单 html代码 css代码 二级菜单 完整代 ...

  9. html百叶窗切换效果,纯CSS3百叶窗式切换轮播图特效

    这是一款使用纯CSS3制作的百叶窗式切换轮播图特效.该特效使用背景图片来制作,在轮播图切换时,通过一组div元素来制作百叶窗效果,非常的炫酷. 使用方法 HTML结构 该轮播图特效中使用了6张背景图片 ...

最新文章

  1. 哪里可以找到python的免费教程-哪里可以找到比较靠谱的Python教程?
  2. 第一阶段冲刺报告(一)
  3. Python练习 | Python中的运算符
  4. 03-JavaScript
  5. vb.net textbox如何输入的时候显示提示文字_如何快速上手CAD?这15种教课书式的ideas请你收下...
  6. supsplk 服务器被植入木马 挖矿 cpu使用 700%
  7. java反射机制面试_java面试中面试官让你讲讲反射,应该从何讲起?
  8. 密码生成器(C语言实现)
  9. css3 背景模糊属性 背景滤镜 backdrop-filter
  10. 虚拟机Linux忘记root用户密码的修复方法
  11. 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
  12. 杰理之实现蓝牙三方通话功能【篇】
  13. 【CUDA】C++实现warpaffine仿射变换及其逆变换
  14. 项目管理之关键链法VS关键路径法
  15. 微信小程序开发04 性能优化:借助微信开发者工具提升小程序性能
  16. Maven的一个基础pom.xml文件结构
  17. iconv-lite,JS字符串编解码工具
  18. 第十章分治算法(大数相乘)
  19. 四大渲染农场渲染价格对比
  20. linux中关于网卡的基本知识总结

热门文章

  1. autoJS 网易公开课app封装函数
  2. 用nodejs实现httpserver服务
  3. 海康摄像机RTSP连接Opencv读取视频
  4. Flink 运维与调优
  5. C. Dima and Staircase(思维)
  6. ubuntu 桌面卡死,鼠标能动但是点击无效。
  7. day03_雷神_文件操作
  8. 磁盘必须经过初始化,逻辑磁盘管理器才能访问——笔记本硬盘作为移动硬盘使用时遇到的问题...
  9. 符号链接symlink_什么是符号链接或符号链接? 如何为Windows和Linux创建Symlink?
  10. leetcode_529. 扫雷游戏 python