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张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...
随机推荐
- 工程中添加工程依赖 Xcode iOS
有时我们需要在一个主工程中添加其他的子工程,用来对子工程进行编写修改或者是利用子工程中的库文件等等操作,这时候我们需要用到工程的嵌套. 步骤:(看图说话) 1.新建主工程,名为TestTTTT ...
- EF6 CodeFirst代码迁移笔记
由于EF7只支持codefirst only.朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧.写的这些网上大致都有,基本没啥 新内容, 迁移 使用自动迁移 Enable- ...
- SpringBoot(四) Core Features: Logging
参考 文档: 26. Logging
- LeetCode CombinationSum
class Solution { public: vector<vector<int> > combinationSum(vector<int> &cand ...
- Markdown预览功能不可用解决方案
初学者在使用Markdown时也许会遇到这个问题 原因是电脑缺少一个组件,解决方案很简单,安装上就好了,以下是链接 http://markdownpad.com/download/awesomium_ ...
- Android 使用全局变量的问题
现在每天都在忙,而且一忙起来,就把写笔记的事情放在了后面,最近在写程序的时候,突然要使用全局变量,就按照以前的方式,写了一个类,然后把变量都声明为静态变量,然后做为全局变量使用,但是在进行Activi ...
- css+div水平居中
实现div内容水平居中 实现方案一:margin:0 auto; div{ height:100px; width:100px; background:red; margin:0 auto; } &l ...
- 浏览器根对象navigator之客户端检测
Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字 ...
- opencv图像处理基础 (《OpenCV编程入门--毛星云》学习笔记一---五章)
#include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgu ...
- Keras GlobalAveragePooling2D 示例代码
GlobalAveragePooling2D层 keras.layers.pooling.GlobalAveragePooling2D(dim_ordering=‘default‘) 为空域信号施加全 ...