思路:

异形轮播图与普通轮播图不同的一点,是异形轮播图一次性展示多个图片,且图片大小的位置会动态变化。

以往我的处理办法都是直接给要展示的图片动态的添加一个class类, 简单粗暴。这次我在很多地方都使用了数组思想和对象思想,比如arr中我放了正在展示的图片的索引值,并通过数组的pop()、push() 、shift()、unshift()方法实现arr数组中储存的图片索引值的动态删减,实现点击按钮就可以控制正在展示的图片的索引值。又比如在给每个li设置背景颜色background-color的时候,我没有使用传统css的方式(一方面想突破自己,一方面用css要写9个li的类名和background-color我想偷懒),我把所有li的背景色background-color放在了listStyle对象中,再通过for循环遍历把background-color绑定给对应的li。又比如classKind中我放了正在展示的5个li的类名,通过list.eq(arr[index]).addClass(classKind[index]);使得正在展示的图片添加对应的样式(宽高、位置、字体大小)。这里需要注意的是,在添加样式之前一定要用list.removeClass();来删除所有li之前的类名,不然的话会出现多个li绑定同一个class类名的情况,轮播几次后场面会相当混乱啦。最后,我们在实现点击按钮可以成功轮播后,可以在css中给li添加一个transition: all 1s;的过渡效果,这样就相当完美了。

源码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;list-style: none;}.app {width: 804px;height: 300px;margin: 0 auto;background-color: #eee;}.main {width: 804px;height: 160px;display: flex;justify-content: space-evenly;align-items: flex-end;position: relative;}.mid {width: 200px;height: 130px;background-color: #fff;}li {position: absolute;width: 120px;height: 80px;color: #fff;font-size: 60px;text-align: center;display: none;transition: all 1s;}.current {width: 180px;height: 120px;font-size: 90px;display: block;left: 312px;}.next-1, .pre-1 {width: 150px;height: 100px;font-size: 75px;display: block;}.next-1 {right: 148px;}.pre-1 {left: 148px;}.next-2 {width: 120px;height: 80px;font-size: 60px;display: block;}.next-2, .pre-2 {width: 120px;height: 80px;font-size: 60px;display: block;}.next-2 {right: 14px;}.pre-2 {left: 14px;}.control {width: 774px;height: 80px;margin: 0 auto;background-color: #fff;position: relative;}button {width: 40px;height: 40px;background-color: #ccc;border: none;cursor: pointer;position: absolute;top: 50%;margin-top: -20px;right: 10px;}span {display: inline-block;width: 0;height: 0;border: 16px solid transparent;}.btn-left span {border-right-color: #fff;}.btn-left {left: 10px;}.btn-right span {border-left-color: #fff;}</style>
</head>
<body><div class="app"><ul class="main"><li class="pre-2">1</li><li class="pre-1">2</li><li class="current">3</li><li class="next-1">4</li><li class="next-2">5</li><li>6</li><li>7</li><li>8</li><li>9</li><div class="mid"></div></ul><div class="control"><button class="btn-left"><span></span></button><button class="btn-right"><span></span></button></div></div><script src="/通用资源/jquery.js"></script><script>//声明变量var list = $('li');var goNext = $('.btn-right');var goPre = $('.btn-left');var index = 0;var arr = [0, 1, 2, 3, 4];var classKind =['pre-2', 'pre-1', 'current', 'next-1', 'next-2'];var lastmost = arr[arr.length-1];var foremost = arr[0];var listStyle = {0: 'lightgreen',1: 'yellow',2: 'orange',3: 'lightblue',4: 'pink',5: 'skyblue',6: 'lightcoral',7: 'khaki',8: 'plum',};//给每个li绑定样式for (var key in listStyle) {// console.log(key,listStyle[key]);list.eq(key).css({backgroundColor: listStyle[key]});};//封装切换页面函数function goPage() {list.removeClass();for (var index in arr) {for (var index in classKind) {list.eq(arr[index]).addClass(classKind[index]);};};};//下一张goNext.click(function() {arr.shift();lastmost++;if (lastmost > 8) {lastmost = 0;};arr.push( lastmost);// console.log(arr);goPage();});//上一张goPre.click(function() {arr.pop();foremost--;if (foremost < 0) {foremost = 8;};arr.unshift(foremost);// console.log(arr);goPage();});</script>
</body>
</html>

效果图:

jQuery实现异形轮播图

小插曲:

到今天为止,我的jQuery学习就告一段落了,由于jQuery现在企业中也用的少了,所以后面关于jQuery的实战可能就比较少了。我要开始学习JavaScript进阶了,作为信管专业的学生,从大一开始就难免会接触python、java、html等一些代码课,最开始接触的时候,我的感受是敲代码的人真的很酷,不够我是个渣滓哈,巨菜,连python基础的for循环、if条件语句啥的都搞不会,那时候一直在想“别人到底是怎么记住几十行代码的”,现在我的感受就是,没有人能记住那么多代码,学习编程正确方法不是靠记代码,而是在学习了基础知识的基础之上去思考和理解解决问题的思路。很感谢自己选择了自学前端开发,前端很有趣很适合我,会一直加油!

jQuery实现异形轮播图相关推荐

  1. html5carousel图片轮播,jQuery响应式轮播图插件VM Carousel

    插件描述:VM Carousel是一款jQuery响应式轮播图插件.该jquery轮播图插件支持自动播放模式,支持动态改变图片尺寸,支持居中模式,以及无限循环等. 使用方法 在页面中引入jquery. ...

  2. html新闻轮播插件,jQuery新闻类轮播图插件sliderBox

    sliderBox.js是一款jQuery新闻类轮播图插件.该jQuery新闻类轮播图插件可以创建兼容ie8.带缩略图导航.以及多种过渡效果的轮播图. 使用方法 在页面中引入jQuery.slider ...

  3. jquery手写轮播图_用jQuery如何手写一个简单的轮播图?(附代码)

    用jQuery如何手写一个简单的轮播图?下面本篇文章通过代码示例来给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 用 jQuery 手写轮播图 先上个效果截图: 主要 ...

  4. html5carousel图片轮播,jquery 3d Carousel轮播图插件

    jQuery-Waterwheel-Carousel是一款jquery 3d Carousel轮播图插件.该jquery Carousel轮播图插件兼容ie8浏览器,提供丰富的参数和API方法由于控制 ...

  5. jquery手写轮播图_15个超强的jQuery/HTML5图片轮播插件

    最近我们为大家分享过不少基于jQuery的图片轮播插件,当然也有很多使用了HTML5和CSS3的相关技术,让整个图片播放器显得更加美观,动画效果显得更加炫酷.这次我们特意为大家筛选了一些最新的jQue ...

  6. jquery手写轮播图_jquery 实现轮播图详解及实例代码_jquery_脚本之家

    轮播图: 接触jquery也有一段时间了,今天刚好利用轮播图来练练手.博文的前面会介绍一个简单用jquery做轮播图的例子,中间会插入一些关于轮播图更多的思考,在后面会用Javascript的方法来写 ...

  7. JQuery实现圆点轮播图自动播放

    用jquery实现轮播图 实现之后的效果 实现思路 1,每次只显示一张图片其他的图片隐藏起来 2,每一次轮播 相应位置的小圆点跟着变色 3,鼠标移入小圆点时显示相应的图片 源代码 <!DOCTY ...

  8. 使用jQuery完成无缝轮播图案例

    前言: 一.前面给大家讲了关于css的一些有趣的小案例,这一期来给大家介绍下jQuery,jQuery的使用相比较js的使用比较简单,因为jQuery会自动给你生成循环函数,使代码简洁,相比较js实现 ...

  9. jQuery实现碎片轮播图

    碎片轮播图: 碎片轮播图顾名思义就是像碎片拼接而成的轮播图,若干个小方块碎片通过动画效果拼接成一张完整的图片. 实现原理: 轮播图的通常功能,都包括这几个部分,核心就是通过图片的索引值控制页面切换: ...

最新文章

  1. java jdk安装失败 mac_Mac javaJDK安装遇到的坑和环境变量配置2019-07-09.
  2. 游戏型计算机的配置表,爽玩游戏型详细配置列表及推荐理由
  3. kafka是存储到本地磁盘么_Kafka 中的消息存储在磁盘上的目录布局是怎样的?
  4. 索引体积_MySQL入门之索引
  5. 《Java开发实战经典》 —— 视频列表
  6. Spring实战系列
  7. jekyll 完整安装教程
  8. NOIP 2015 推销员
  9. 直方图均衡化高斯滤波
  10. 5个值得收藏的图片素材APP 和网站,高品质外加免费,拿走不谢
  11. 场曲 zemax示例(概念、校正)
  12. java icon显示图片_java显示ico格式图片
  13. Java判断日期格式是否正确
  14. (译)如何做一个塔防游戏(cocos2d 2012-8-17)
  15. 一个html基本写法,HTML5教程:HTML5的基础写法
  16. java:均值哈希实现图像内容相似度比较
  17. 论文阅读“Graph Clustering via Variational Graph Embedding”(PR2022)
  18. 听飞狐聊JavaScript设计模式系列05
  19. Html唤起手机APP,如果有就唤起,如果没有就跳到下载页。
  20. JAVA学习笔记(九) —— main函数

热门文章

  1. ISME:华中农大李霞组发现大豆根际微生物组变化与根瘤菌共生效率的关系
  2. CSS生成关闭叉叉图标
  3. 在matlab中怎么限定值域,matlab中如何限定wgn函数的值域
  4. 水龙卷 waterspout
  5. 【临沂seo首选】增长|聊聊抖音SEO
  6. OpenGL超级宝典的例子Triangle
  7. 全球最大 IPO,我们能否赚笔养老钱?
  8. NVidia Maxwell GPU Tile-based 光栅化模式分析
  9. 高精度减法(C语言实现)
  10. python元组(戴了紧箍咒的列表)