jQuery实现碎片轮播图
碎片轮播图:
碎片轮播图顾名思义就是像碎片拼接而成的轮播图,若干个小方块碎片通过动画效果拼接成一张完整的图片。
实现原理:
轮播图的通常功能,都包括这几个部分,核心就是通过图片的索引值控制页面切换:
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"><</button><button class="btn2">></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实现碎片轮播图相关推荐
- html5carousel图片轮播,jQuery响应式轮播图插件VM Carousel
插件描述:VM Carousel是一款jQuery响应式轮播图插件.该jquery轮播图插件支持自动播放模式,支持动态改变图片尺寸,支持居中模式,以及无限循环等. 使用方法 在页面中引入jquery. ...
- jQuery实现异形轮播图
思路: 异形轮播图与普通轮播图不同的一点,是异形轮播图一次性展示多个图片,且图片大小的位置会动态变化. 以往我的处理办法都是直接给要展示的图片动态的添加一个class类, 简单粗暴.这次我在很多地方都 ...
- html新闻轮播插件,jQuery新闻类轮播图插件sliderBox
sliderBox.js是一款jQuery新闻类轮播图插件.该jQuery新闻类轮播图插件可以创建兼容ie8.带缩略图导航.以及多种过渡效果的轮播图. 使用方法 在页面中引入jQuery.slider ...
- jquery手写轮播图_用jQuery如何手写一个简单的轮播图?(附代码)
用jQuery如何手写一个简单的轮播图?下面本篇文章通过代码示例来给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 用 jQuery 手写轮播图 先上个效果截图: 主要 ...
- html5carousel图片轮播,jquery 3d Carousel轮播图插件
jQuery-Waterwheel-Carousel是一款jquery 3d Carousel轮播图插件.该jquery Carousel轮播图插件兼容ie8浏览器,提供丰富的参数和API方法由于控制 ...
- jquery手写轮播图_15个超强的jQuery/HTML5图片轮播插件
最近我们为大家分享过不少基于jQuery的图片轮播插件,当然也有很多使用了HTML5和CSS3的相关技术,让整个图片播放器显得更加美观,动画效果显得更加炫酷.这次我们特意为大家筛选了一些最新的jQue ...
- jquery手写轮播图_jquery 实现轮播图详解及实例代码_jquery_脚本之家
轮播图: 接触jquery也有一段时间了,今天刚好利用轮播图来练练手.博文的前面会介绍一个简单用jquery做轮播图的例子,中间会插入一些关于轮播图更多的思考,在后面会用Javascript的方法来写 ...
- JQuery实现圆点轮播图自动播放
用jquery实现轮播图 实现之后的效果 实现思路 1,每次只显示一张图片其他的图片隐藏起来 2,每一次轮播 相应位置的小圆点跟着变色 3,鼠标移入小圆点时显示相应的图片 源代码 <!DOCTY ...
- 使用jQuery完成无缝轮播图案例
前言: 一.前面给大家讲了关于css的一些有趣的小案例,这一期来给大家介绍下jQuery,jQuery的使用相比较js的使用比较简单,因为jQuery会自动给你生成循环函数,使代码简洁,相比较js实现 ...
最新文章
- QIIME 2教程. 23图形界面q2studio(2020.11)
- Using ZipLib to create a Zip File in C#
- alook浏览器_alook浏览器下载-Alook浏览器iOS版下载 苹果版v10.8-PC6苹果网
- 够酷!小米全新折叠屏方案曝光:这次轮到小米引领潮流了?
- 税收学考试可以带计算机吗,注册税务师考试题型是不是都是选择题?能不能带计算器?...
- Smobiler 窗体
- 大白话图解:什么是 CDN
- td中的块元素居中问题
- 浅谈AI绘图工具Midjourney
- CSV文件乱码问题解决
- 如何判断一个 js 变量是数组类型
- 商城会员积分过期的实现方案
- Centos7 查看用户和用户组
- 关于服务器基本概念汇总
- kafka connector 使用总结以及自定义connector开发
- 【综合类型第 28 篇】ReSharper 的安装、使用教程
- 从零开始研发GPS接收机连载——13、定位结果分析
- Java字符串压缩(两种压缩方式)
- 关于WAP的常见问答
- 数学建模中的常用编程软件