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张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...
随机推荐
- [日常] MySQL内存不足启动失败的解决方法
1.启动mysql时,一直不成功,查看错误日志 /var/log/mysql/error.log 2.主要的错误信息有如下几条: [ERROR] InnoDB: mmap(136151040 byte ...
- 啰里吧嗦式讲解java静态代理动态代理模式
一.为啥写这个 文章写的比较啰嗦,有些东西可以不看,因为想看懂框架, 想了解SSH或者SSM框架的设计原理和设计思路, 又去重新看了一遍反射和注解, 然后看别人的博客说想要看懂框架得先看懂设计模式,于 ...
- php5.6+apache2.4+linux搭建php环境
前言 最近突然想搭建个人博客,尽管笔者擅长java-web,但综合各种原因,于是选择了大众化的php+mysql搭建个人博客.对于php,只闻其大名,但从未学过,于是,笔者将从php环境搭建开始,到服 ...
- 【PyQt5 学习记录】010:QSplitter
import sys from PyQt5.QtWidgets import (QApplication, QWidget, QSplitter, QTextEdit, QPushButton, QL ...
- css sprites的原理和作用
CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢 ...
- How to work with the snap environment
How to work with the snap environment SummaryThe snap environment manages snap agents and snap toler ...
- CentOS7系列--2.1CentOS7中安装配置NTP服务
CentOS7安装配置NTP服务 NTP服务是时间同步服务 1. 安装NTPd [root@centos7 ~]# yum install -y ntp [jack@centos7 ~]$ vi /e ...
- Struts2中 Path (getContextPath与basePath)
struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径. 虽然可以用redirect方式解决,但redirect方式并非必要.解决办法非常简单,统一使用绝对 ...
- eclipse中DDMS 视图中sdcard中文件导入的处理
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读 取问题.而是指在DDMS看到的目录下的那个sdcard目录的权限问题. ...
- Session、Cookie简单理解
Session: session是一种记录客户状态的机制,session是保存在服务器上的,当浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是所谓的session,当浏览器再 ...