碎片轮播图:

碎片轮播图顾名思义就是像碎片拼接而成的轮播图,若干个小方块碎片通过动画效果拼接成一张完整的图片。

实现原理:

轮播图的通常功能,都包括这几个部分,核心就是通过图片的索引值控制页面切换:

1.点击上一页切换到上一页(index++),点击下一页切换到下一页(index--);

2.小圆点与图片绑定,点击小圆点,跳转至对应的图片;跳转至对应的图片,小圆点样式改变(index);

3.定时轮播(setInterval方法);

碎片轮播图在普通轮播图的基础上增加了一点,就是在切换图片时,页面有碎片感。我们实现原理:

用一个类名为main的div放置所有的图片(绝对定位),另外建立一个同级的类名为content的div(绝对定位),都是绝对定位,而且div大小设置的相同,相对于把类名为content的div覆盖在类名为main的div上面。再在类名为content的div中创建若干个小div,小div的background-imge都设置为同一张图片,且通过background-position给背景图定位,使得所有的小div的背景图拼接起来刚好是完整的一张图片。图片切换时的碎片感则通过jQuery的animate动画完成,让小div的宽高在指定动画时间内从0增加至指定的宽高,从而呈现一张完整的图片。

似乎上面的逻辑已经可以实现碎片轮播图了,那么类名为main的div的作用又是什么呢?如果我们仅完成上述逻辑,碎片轮播图看起来是正常的,但是观察就可以发现,在切换图片时动画执行过程中背景图是空白的(可以理解为换衣服的时候里面没穿打底),也就是不太美观。如果我们在每次动画完成之后,将类名为main的div中的图片换成跟动画一样的图片,在我们碎片动画执行的间隙,我们就会看到底下是上一张图片(里面穿了打底换衣服时露出是打底),这样衔接就非常好。

大致思路就是这样,至于轮播图中其他大大小小的细节就不多讲了,我是个菜鸟,我会的大家应该都会,哈哈哈哈。(献上源码,不理解的地方可以直接问我也行,很乐于帮助别人)

源码:

<!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;}.list {width: 560px;height: 300px;margin: 30px auto;position: relative;}li {position: absolute;display: none;}.content {width: 560px;height: 300px;position: absolute;}button {position: absolute;display: block;width: 40px;height: 40px;border-radius: 50%;border: none;z-index: 1000;color: rgba(255, 255, 255, 0.8);background-color: rgba(0, 0, 0, 0.4);font-size: 30px;}.btn1 {top: 50%;margin-top: -20px;}.btn2 {top: 50%;right: 0;margin-top: -20px;}.choose {display: block;}.point {width: 100px;height: 18px;line-height: 20px;position: absolute;bottom: 20px;left: 50%;margin-left: -50px;border-radius: 10px;background-color: rgba(255, 255, 255, 0.3);display: flex;justify-content: space-around;align-items: center;}span {width: 10px;height: 10px;border-radius: 50%;background-color: #fff;}.active {background-color: #f00;}.row {width: 560px;height: 100px;position: relative;}.col {position: absolute;width: 112px;height: 100px;display: inline-block;}</style>
</head>
<body><div class="list"><div class="main"><li class="choose"><img src="../轮播图/img/0.jpg" alt=""></li><li><img src="../轮播图/img/1.jpg" alt=""></li><li><img src="../轮播图/img/2.jpg" alt=""></li><li><img src="../轮播图/img/3.jpg" alt=""></li><li><img src="../轮播图/img/4.jpg" alt=""></li></div><div class="content"></div><button class="btn1">&lt;</button><button class="btn2">&gt;</button><div class="point"><span class="active"></span><span></span><span></span><span></span><span></span></div></div><script src="../轮播图/jquery.js"></script><script>var btns = $('button');var list = $('li');var index = 0;var pointers = $('span');var timebar;var content = $('.content');var str = '';for (var i = 0; i < 3; i++) {str += '<div class="row">';for (var j = 0; j < 5; j++) {str += '<div class="col"></div>';};str += '</div>';};content.html(str);content.find('.col').each(function(index) {$(this).css({backgroundPositionX: -112 * (index % 5),backgroundPositionY: -100 * parseInt(index / 5),left: 112 * (index % 5)});});//封装跳转页面函数function goPage(fn) {content.find('.col').css({backgroundImage: 'url(img/' + index + '.jpg)',width: 0,height: 0,opacity: 0}).each(function() {$(this).stop(true).animate({width: 112,height: 100,opacity: 1},500 + 1600 * Math.random(), function() {if (content.find('.col').is(":animated")) {return;};console.log(index);list.eq(index).addClass('choose').siblings().removeClass('choose');});});pointers.eq(index).addClass('active').siblings().removeClass('active');fn && fn();};//下一张btns.eq(1).click(function() {clearInterval(timebar);index++;if (index > 4) {index = 0;};goPage(startInterval);});//上一张btns.eq(0).click(function() {clearInterval(timebar);index--;if (index < 0) {index = 4;};goPage(startInterval);})//定时轮播 function startInterval() {timebar = setInterval(function() {index++;if (index > 4) {index = 0;};goPage();}, 5000);};startInterval();//圆点指定跳转pointers.click(function() {clearInterval(timebar);index = $(this).index();goPage(startInterval);})</script>
</body>
</html>

实现效果视频:

碎片轮播图

jQuery实现碎片轮播图相关推荐

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

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

  2. jQuery实现异形轮播图

    思路: 异形轮播图与普通轮播图不同的一点,是异形轮播图一次性展示多个图片,且图片大小的位置会动态变化. 以往我的处理办法都是直接给要展示的图片动态的添加一个class类, 简单粗暴.这次我在很多地方都 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. QIIME 2教程. 23图形界面q2studio(2020.11)
  2. Using ZipLib to create a Zip File in C#
  3. alook浏览器_alook浏览器下载-Alook浏览器iOS版下载 苹果版v10.8-PC6苹果网
  4. 够酷!小米全新折叠屏方案曝光:这次轮到小米引领潮流了?
  5. 税收学考试可以带计算机吗,注册税务师考试题型是不是都是选择题?能不能带计算器?...
  6. Smobiler 窗体
  7. 大白话图解:什么是 CDN
  8. td中的块元素居中问题
  9. 浅谈AI绘图工具Midjourney
  10. CSV文件乱码问题解决
  11. 如何判断一个 js 变量是数组类型
  12. 商城会员积分过期的实现方案
  13. Centos7 查看用户和用户组
  14. 关于服务器基本概念汇总
  15. kafka connector 使用总结以及自定义connector开发
  16. 【综合类型第 28 篇】ReSharper 的安装、使用教程
  17. 从零开始研发GPS接收机连载——13、定位结果分析
  18. Java字符串压缩(两种压缩方式)
  19. 关于WAP的常见问答
  20. 数学建模中的常用编程软件

热门文章

  1. 软文撰写有哪些技巧?不掌握技巧写了也是白写
  2. 应用层 HTTP 代理服务器转发消息时的相关头部 请求头 X-Forwarded-For
  3. printf函数 重定义printf函数。
  4. LSI SAS9260-8i固件更新指南
  5. 【EasyMouse】把你的安卓手机变成无线鼠标
  6. android输入法测试demo
  7. 12.5、后渗透测试--内网主机屏幕截图
  8. 能动口“布”动手 OPPO小布打造便捷高效智能生活
  9. 关于推广京东商品拿佣金的方法,类似于淘宝客
  10. python平台 租用_Python爬取房屋租售信息