jQuery定义背景动态切换效果的方法


Posted in Javascript onMarch 23, 2015

本文实例讲述了jQuery定义背景动态切换效果的方法。分享给大家供大家参考。具体如下:

通过下面的jQuery插件,你可以将图片放在一个数组里,然后告诉jQuery图片需要在什么地方背景轮换

(function($){
 var defaultSettings;
 var divfg, divbg;
 var fadeInterval;
 var fqTimer;
 var currImg = 0;
 var displImg = 0;
 var running = false;
 // Setup settings and initialize the plugin
 $.fn.bgFade = function(settings, callback){
  defaultSettings = $.extend({
   frequency: 5000,
   speed: 10,
   images: [],
   position: "center center",
   fgz: 1,
   bgz: 0
  }, settings);
  var c = 0;
  $(this).each(function(){
   if(c == 0) divfg = $(this);
   if(c == 1) divbg = $(this);
   c++;
  });
  setBackgrounds();
  if(typeof callback == "function"){
   callback();
  }
  return this;
 };
 // Start the fadder
 $.fn.start = function(){
  fqTimer = setTimeout(function(){
  nextFade()},defaultSettings.frequency
  );
  running = true;
  return this;
 };
 // Stop the fadder
 $.fn.stop = function(){
  clearInterval(fadeInterval);
  clearTimeout(fqTimer);
  running = false;
  return this;
 }
 // Get the current image info {array id, image url}
 $.current = function(){
  return {pos: displImg, url: defaultSettings.images[displImg]}
 }
 // Set the first two backgrounds
 function setBackgrounds(){
  image1 = defaultSettings.images[0];
  image2 = defaultSettings.images[1];
  divfg.css({
   backgroundImage: "url('"+image1+"')",
   zIndex: defaultSettings.fgz,
   backgroundPosition: defaultSettings.postion
  });
  divbg.css({
   backgroundImage: "url('"+image2+"')",
   zIndex: defaultSettings.bgz,
   backgroundPosition: defaultSettings.postion
  });
  currImg = 1;
  displImg = 0;
 }
 // Set the next background after a fade completes
 function setNextBackground(){
  next = arrayNext();
  image = defaultSettings.images[next];
  divbg.css({
   backgroundImage: "url('"+image+"')"
  });
  setTimeout(function(){nextFade()}, defaultSettings.frequency);
 }
 // Run a fade
 function nextFade(){
  fadeInterval = setInterval(function(){fadeIt()}, 30);
 }
 // Decrement the opacity of the div
 function fadeIt(){
  if(divfg.css("opacity") == ''){
   op = 1;
  }else{
   op = divfg.css("opacity");
  }
  op -= ((1000 * defaultSettings.speed) / 30) * 0.0001;
  divfg.css("opacity", op);
  if(op <= 0){
   bg = divbg;
   bgimg = divbg.css("background-image");
   divfg.css("opacity", "1");
   divfg.css("background-image", bgimg);
   clearInterval(fadeInterval);
   setNextBackground();
   displImg = arrayCurrent();
  }
 }
 // Get the next item in the array
 function arrayNext(){
  var next = currImg + 1;
  if(next >= defaultSettings.images.length){
   next = 0;
  }
  currImg = next;
  return next;
 }
 // Get the current item in the array
 function arrayCurrent(){
  var cur = currImg - 1;
  if(cur < 0)
   cur = defaultSettings.images.length - 1;
  return cur;
 }
})(jQuery);

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
JS中style属性
Oct 11 Javascript
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
jquery固定底网站底部菜单效果
Aug 13 Javascript
JQuery 控制内容长度超出规定长度显示省略号
May 23 Javascript
Javascript中的return作用及javascript return关键字用法详解
Nov 05 Javascript
javascript基本算法汇总
Mar 09 Javascript
Bootstrap每天必学之折叠(Collapse)插件
Apr 25 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
Jan 28 Javascript
mpvue性能优化实战技巧(小结)
Apr 17 Javascript
js 数组当前行添加数据方法详解
Jul 28 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 24 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
Mar 23 #Javascript
jQuery实现拖拽效果插件的方法
Mar 23 #Javascript
jQuery操作表单常用控件方法小结
Mar 23 #Javascript
JavaScript自定义等待wait函数实例分析
Mar 23 #Javascript
JavaScript中匿名函数用法实例
Mar 23 #Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 #Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 #Javascript
You might like
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
python range实例用法分享
2020/02/06 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
董事长助理工作职责范本
2014/07/01 职场文书