jquery的fadeTo方法的淡入淡出轮播图插件
由于对基于jquery的简单插件开发有了一定的了解,慢慢的也对基于jquery的插件开发有了兴趣,在上班结束之后就研究各种插件的思路逻辑。最近开发了一款基于jquery的fadeTo方法的轮播图插件,下面给大家介绍具体的思路逻辑:
整体思路:
fadeTo方法就是在指定时间内将某个选定元素的透明度改变来达到某个元素隐藏与显示的效果,借助这个方法,刚开始我们只需要让第一张图片的透明度为1,其他的都为0,这样就只能看到一张图片,建立图片索引,在轮播的时候只需要让索引自增,当索引等于最大值时,将索引值置为1就有可以重新开始轮播,实现循环轮播;
具体逻辑:
1、在html页面中给定的div中加载要轮播的图片,向前 < 和向后 > 的按钮;
2、在HTML页面中给定的div中加载图片索引按钮(小圆圈),样式自己定义;
3、建立图片索引变量index,赋初值为1;
4、建立图片显示函数showImg(),用fadeTo实现指定时间内图片透明度的改变,实现轮播;
5、建立向前 < 按钮方法,实现图片切换;
6、建立向后 > 按钮方法,实现图片切换;
7、建立图片索引按钮,实现点击索引按钮跳转指定图片;
说了这么多,大家可能还是一脸懵逼,光说不练假把式,这就给大家附上代码,方便大家查看;
/*
该轮播图插件是基于jquery开发的,利用jquery的fadeTo()方法实现图片的轮播
我们只需要图片和小圆圈按钮的索引一一对应起来就可以咯
*/
var hbt_imgList = $(".hbt-con");//获取图像列表<li>对象
var hbt_littelBtn = $("#hbt-goTab a");//获取图像下边按钮对象
var hbt_contain = $(".hbt-tab")//获取整个图像容器对象,便于书写鼠标移入停止轮播移除继续轮播
var hbt_index = 1;//图像轮播索引,即轮播第几章图片
var hbt_prev = $("#hbt-prev");//获取图片向前轮播按钮
var hbt_next = $("#hbt-next");//获取图片向后轮播按钮
var timer;//定时器变量
var hbt_length = $("#hbt-goTab a").length;//获取下面小按钮的数量,对应索引 $(document).ready(function(){
/*hbt_contain.mouseover(function(event) {
stop();
});
hbt_contain.mouseout(function(event) {
play();
});*/
hbt_contain.on({
mouseover:function(){//鼠标移入停止轮播
stop();
},
mouseout:function(){//鼠标移出开始轮播
play();
}
});
hbt_prev.on("click",function(){//向前按钮点击处理事件
hbt_index -= 1;
if(hbt_index <){//索引超出最小值将其值设置为8
hbt_index = 8;
}
hbtShowImg();
hbtShowBtn();
});
hbt_next.on("click",function(){//向后按钮点击处理事件
hbt_index += 1;
if(hbt_index > 8){//索引超出最大值将其值设置为1
hbt_index = 1;
}
hbtShowImg();
hbtShowBtn();
});
for (var i = 0; i < hbt_length; i++) { //循环绑定下面按钮的点击事情
(function (i) {
hbt_littelBtn[i].onclick = function () {
hbt_index = i + 1;
hbtShowImg();
hbtShowBtn();
}
})(i)
}
}); function play(){//开始轮播
timer = setInterval(function(){
hbt_index += 1;
if(hbt_index > hbt_length){//索引超出最大值将其值设置为1
hbt_index = 1;
}
hbtShowImg();
hbtShowBtn();
},4000)
} function stop(){//停止轮播
clearInterval(timer);
} function hbtShowImg(){//图片轮播梳理
for (var i = 0; i < hbt_length; i++) {
//注意,list索引是从0开始的,所以第一张图片和第一个按钮对应索引是0二不是1
if(hbt_imgList.eq(i).css("opacity") == 1){
hbt_imgList.eq(i).fadeTo(2000,0);
}
}
hbt_imgList.eq(hbt_index - 1).fadeTo(2000,1);
} function hbtShowBtn(){//小按钮切换梳理
for (var i = 0; i < hbt_length; i++) {
if(hbt_littelBtn.eq(i).hasClass('itemActive')){
hbt_littelBtn.eq(i).removeClass('itemActive');
hbt_littelBtn.eq(i).addClass('item');
}
}
hbt_littelBtn.eq(hbt_index - 1).addClass('itemActive');
}
play();
carousel
这边给大家的只是js的相关代码,有需要整个插件代码的,请点击这里到我的github下载相关代码进行查看;
最后要给大家提醒的就是引用的时候一定要先引入jquery哦;
jquery的fadeTo方法的淡入淡出轮播图插件的更多相关文章
- jQuery淡入淡出轮播图实现
大家好我是 只是个单纯的小白,这是人生第一次写博客,准备写的内容是Jquery淡入淡出轮播图实现,在此之前学习JS写的轮播图效果都感觉不怎么好,学习了jQuery里的淡入淡出效果后又写了一次轮播图效果 ...
- js渐隐渐现透明度变化淡入淡出轮播图
js渐隐渐现透明度变化淡入淡出轮播图.焦点图 一些广告banner展示常见. (附件) <!DOCTYPE html> <html> <head> <meta ...
- jquery淡入淡出轮播图
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- jq交叉淡入淡出轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue渐变淡入淡出轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js中用面向对象的思想——淡入淡出轮播图
首先看下效果图 明确功能 1.前后切换(边界判断) 2.按键切换 3.自动轮播 css代码 <style> * {margin:0; padding:0;} li{list-style: ...
- jquery, js轮播图插件Swiper3
轮播图插件Swiper3 HTML代码 如果只是简单的使用轮播图,直接复制我的html代码就可以. 如果想要高级一些,就自己去看文档吧 <!DOCTYPE html> <html l ...
- 学习笔记: js插件 —— SuperSlide 2 (轮播图插件,PC用)
SuperSlide 2 轮播图插件,较老.但还好用. 适用于PC,是绑定到jquery上的方法: $.slide(); 如果在实际中找不到.slide方法,请检查jquery等.js文件的引入次序 ...
- 封装一个简单的原生js焦点轮播图插件
轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...
随机推荐
- django(五):cookie和session
一.Cookie 1.cookie机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确 ...
- java遍历HashMap的高效方法
https://stackoverflow.com/questions/46898/how-do-i-efficiently-iterate-over-each-entry-in-a-java-map
- AutoFac在项目中应用的体会
AutoFac的工作原理就是:注册类并映射到接口,通过注入后返回相应实例化的类! 先来简单介绍下Autofac的使用 1.通过Nuget或代码安装autofac 安装autofac :ins ...
- 【学习笔记】--- 老男孩学Python,day14 python内置函数大全
参考: https://www.cnblogs.com/pyyu/p/6702896.html http://www.runoob.com/python3/python3-built-in-func ...
- new DialogInterface.OnClickListener()报错的解决办法
在项目过程中 new DialogInterface.OnClickListener()总是报下面的错 Illegal qualified access from the type parameter ...
- 在vue中子组件修改props引发的对js深拷贝和浅拷贝的思考
不管是react还是vue,父级组件与子组件的通信都是通过props来实现的,在vue中父组件的props遵循的是单向数据流,用官方的话说就是,父级的props的更新会向下流动到子组件中,反之则不行. ...
- 转 mysqli 事务常用方法
原文:mysqli 事务常用方法 1. //打开(true)或关闭(false)本次数据库连接的自动命令提交事务模式 //参数如果设置为 FALSE,则表示关闭 auto-commit.如果设置为 T ...
- 管理DnS服务器知识点
DNS服务器是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名 ...
- keras Lambda 层
Lambda层 keras.layers.core.Lambda(function, output_shape=None, mask=None, arguments=None) 本函数用以对上一层的输 ...
- 玩转Android拍摄功能
简单拍照与摄像 在富媒体开始流行之前,整个世界是一个灰暗且平淡无奇的地方.还记得Gopher吗?我或许不记得了.自从APP成为用户生活的一部分之后,这便给他们提供了一种方式可以来存放他们生活的细节.使 ...