欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery插件實(shí)現(xiàn)圖片輪播特效

 更新時(shí)間:2016年06月16日 09:49:29   作者:蜀北喬少恭  
瀏覽各大網(wǎng)站,很多都少不了輪播效果,如何控制這些圖片在一個(gè)方向上連續(xù)的滾動(dòng)?這篇文章就為為大家詳細(xì)介紹了jQuery插件實(shí)現(xiàn)圖片輪播特效的代碼,感興趣的小伙伴們可以參考一下

好了廢話不多說(shuō)了,先看看效果圖。

 

HTML部分: 

 <div class="slider">
 <div class="ul-box">
  <ul>
  <li><a href="javascript:;"><img src="img/1.jpg"/></a></li>
  <li><a href="javascript:;"><img src="img/2.jpg"/></a></li>
  <li><a href="javascript:;"><img src="img/3.jpg"/></a></li>
  <li><a href="javascript:;"><img src="img/4.jpg"/></a></li>
  <li><a href="javascript:;"><img src="img/5.jpg"/></a></li>
  <li><a href="javascript:;"><img src="img/6.jpg"/></a></li>
  </ul>
 </div>
 <div class="mask"></div>
 <div class="prev"><img src="img/btn_l.png"/></div>
 <div class="next"><img src="img/btn_r.png"/></div>
 </div>
 <script src="js/jquery-1.11.3.js"></script>
 <script src="js/slider.js"></script>
 <script>
 $('.slider').slider({
  width : 640, 
  height : 270, 
  during : 2000, //動(dòng)畫執(zhí)行間隔
  speed : 500, //動(dòng)畫速度
  btnSize : 20, //底部遮罩層的按鈕大小
  btnSpace : 10, //底部的按鈕間隙
  direction : 1 //輪播方向默認(rèn)為1,圖片向左移動(dòng)
 });
 </script> 

CSS部分: 

*{
 margin: 0;
 padding: 0;
 box-sizing: border-box;
}
.slider{
 position: relative;
 overflow: hidden;
}
.slider ul{
 list-style: none;
 float: left;
}
.slider ul li{
 float: left;
}
.slider .mask{
 position: absolute;
 bottom: 0;
 width: 100%;
 background-color: rgba(0, 0, 0, .3);
}
.slider .mask .sliderBtn{
 position: absolute;
 border-radius: 50%;
 background-color: #fff;
 cursor: pointer;
 background: radial-gradient(white 20%, transparent 50%);
}
.slider .prev, .slider .next{
 position: absolute;
 width: 45px; 
 height: 100%;
 background-color: rgba(0, 0, 0, .2);
 cursor: pointer;
 top: 0;
 display: none;
}
.slider .prev{
 left: 0;
}
.slider .next{
 right: 0;
}
.slider .prev img, .slider .next img{
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -22.5px;
 margin-left: -22.5px;
} 

JS部分: 

(function ($) {
 $.fn.slider = function (setting) { //給jQuery的實(shí)例對(duì)象綁定一個(gè)slider方法
 var defaultSetting = {
  width : 640,
  height : 270,
  during : 3000,
  speed : 500,
  btnSize : 30,
  btnSpace : 10,
  direction : 1
 }
 setting = $.extend(true, {}, defaultSetting, setting); //用傳入的參數(shù)替換掉默認(rèn)的設(shè)置 
 return this.each(function (i, item) { 
  var _setInterval = window.setInterval; 
  window.setInterval = function (callback, timer, param) { //重寫setInterval函數(shù),讓其可以傳參
  var args = Array.prototype.slice.call(arguments, 2); 
  var _fn = function () {
   callback.apply(null, args);
  }
  return _setInterval(_fn, timer);
  }

  var _this = $(this),
  ulBox = $('.ul-box', this),
  ul = $('ul', this),
  li = $('li', ul),
  img = $('img', li),
  len = li.size(),
  mask = $('.mask', this),
  index = 0,   //用來(lái)控制按鈕的下標(biāo)
  flag = true,   //標(biāo)識(shí)動(dòng)畫是否執(zhí)行完成
  gap,    //執(zhí)行動(dòng)畫的按鈕下標(biāo)和當(dāng)前按鈕的下標(biāo)的差
  timer;    //計(jì)時(shí)器

  _this.width(setting.width).height(setting.height);
  ulBox.width(setting.width * 3 * len).height(setting.height).css({
  marginLeft: -setting.width * len
  });
  ul.width(setting.width * len).height(setting.height);
  img.width(setting.width).height(setting.height);
  mask.height(setting.btnSize + 2 * setting.btnSpace);

  //添加btn
  for(var i = 0, str = ''; i < len; i++){
  str += '<div class="sliderBtn"></div>';
  }
  mask.html(str);
  var ulFir = ul.clone(true);
  var ulSec = ul.clone(true);
  var sliderBtn = $('.sliderBtn', '.mask');
  ulBox.append(ulFir);
  ulBox.append(ulSec);
  sliderBtn.each(function (i, item) {
  $(item).css({
   width : setting.btnSize,
   height : setting.btnSize,
   top : setting.btnSpace,
   left : parseInt(setting.width - (setting.btnSize + setting.btnSpace *2) *len, 10) /2 + setting.btnSize * i + setting.btnSpace * i * 2 + setting.btnSpace
  });
  $(item).mouseenter(function () {
   gap = Math.abs(i - index);
   i > index ? (flag && ani(1, gap)) : (flag && ani(0, gap));
  })
  });
  btnAni(0);
  //按鈕樣式變化
  function btnAni (index) {
  $('.sliderBtn').css('background', 'radial-gradient(white 20%, transparent 50%)');
  $('.sliderBtn').eq(index).css('background', 'radial-gradient(white 10%, transparent 30%, white 70%)');
  }
  //動(dòng)畫
  function ani (direction, num) {
  if(flag){
   //默認(rèn)1向左運(yùn)動(dòng),0向右運(yùn)動(dòng)
   flag = false;
   var ulfir = $('ul', ulBox).eq(0);
   var left = parseInt(ulfir.css('margin-left'), 10);
   if(direction){
   index += num;
   index = index % len;
   left = left - num * setting.width;
   ulfir.animate({
    marginLeft: left
   }, setting.speed, function () {
    if(left <= -len * setting.width){
    ulfir = ulfir.remove(); 
    ulfir.css('margin-left', 0);
    ulBox.append(ulfir);
    }
    flag = true;
   });
   }else{
   index -= num;
   index = index <= -1 ? len - 1 : index;
   left = left + num * setting.width;
   ulfir.animate({
    marginLeft: left
   }, setting.speed, function () {
    if(left >= len * setting.width){
    var ulLast = $('ul', ulBox).eq(2).remove();
    ulLast.css('margin-left', 0);
    ulBox.prepend(ulLast);
    ulfir.css('margin-left', 0);
    }
    flag = true
   })
   }
   btnAni(index)
  }
  }
  //定時(shí)器
  timer = setInterval(ani, setting.during, setting.direction, 1);
  _this.hover(function () {
  $('.prev', this).css('display', 'block');
  $('.next', this).css('display', 'block');
  clearInterval(timer);

  }, function () {
  $('.prev', this).css('display', 'none');
  $('.next', this).css('display', 'none');
  timer = setInterval(ani, setting.during, setting.direction, 1);
  })
  $('.next').click(function () {
  flag && ani(1, 1);
  })
  $('.prev').click(function () {
  flag && ani(0, 1);
  })
 })
 }
})(jQuery) 

以上就是差不多所有的代碼了,一些比較關(guān)鍵的地方已經(jīng)用注釋好了,這里就不再敘述。

源碼下載:https://github.com/wwervin72/jQuery/tree/master/slider-2

精彩專題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • jquery1.4 教程一 便利的設(shè)置函數(shù)

    jquery1.4 教程一 便利的設(shè)置函數(shù)

    jquery1.4已經(jīng)發(fā)布了,1.4相對(duì)于1.32的改進(jìn)還是非常巨大的,可以說(shuō)是全面性的,性能也全面超越了1.32。這一周,將一一展示jquery1.4的改進(jìn),同時(shí)也會(huì)放出相應(yīng)的demo。
    2010-02-02
  • jQuery提交表單ajax查詢實(shí)例代碼

    jQuery提交表單ajax查詢實(shí)例代碼

    用戶輸入一個(gè)表單,輸入準(zhǔn)考證和驗(yàn)證碼,驗(yàn)證用戶是否輸入表單,點(diǎn)擊查詢提交,然后從服務(wù)器得到返回的數(shù)據(jù)并顯示出來(lái)
    2012-10-10
  • jQuery多級(jí)聯(lián)動(dòng)下拉插件chained用法示例

    jQuery多級(jí)聯(lián)動(dòng)下拉插件chained用法示例

    這篇文章主要介紹了jQuery多級(jí)聯(lián)動(dòng)下拉插件chained用法,結(jié)合實(shí)例形式分析了jQuery多級(jí)聯(lián)動(dòng)下拉插件chained的功能與基本使用技巧,需要的朋友可以參考下
    2016-08-08
  • jMessageBox 基于jQuery的窗口插件

    jMessageBox 基于jQuery的窗口插件

    在WinForm程序開發(fā)中,經(jīng)常用MessageBox彈出某些提示,功能雖簡(jiǎn)單但卻非常的實(shí)用!而在Web頁(yè)面中,瀏覽器也提供了Alert或Confirm等腳本語(yǔ)句用于彈出提示窗口
    2009-12-12
  • jquery實(shí)現(xiàn)的仿天貓側(cè)導(dǎo)航tab切換效果

    jquery實(shí)現(xiàn)的仿天貓側(cè)導(dǎo)航tab切換效果

    這篇文章主要介紹了jquery實(shí)現(xiàn)的仿天貓側(cè)導(dǎo)航tab切換效果,涉及jquery鼠標(biāo)事件及鏈?zhǔn)讲僮鲗?shí)現(xiàn)頁(yè)面元素樣式遍歷切換效果的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • jquery聚焦文本框與擴(kuò)展文本框聚焦方法

    jquery聚焦文本框與擴(kuò)展文本框聚焦方法

    在不同的瀏覽器中,一個(gè)文本框,如果只是直接給文本框設(shè)置focus(),那么光標(biāo)聚焦的位置可能是在最前面。下面的代碼則是給jquery擴(kuò)展一個(gè)textFocus方法
    2012-10-10
  • jQuery中die()方法用法實(shí)例

    jQuery中die()方法用法實(shí)例

    這篇文章主要介紹了jQuery中die()方法用法,實(shí)例分析了die()方法的功能、定義及移除所有通過(guò)live()方法向指定元素添加的一個(gè)或多個(gè)事件處理程序的使用技巧,需要的朋友可以參考下
    2015-01-01
  • 詳解bootstrap用dropdown-menu實(shí)現(xiàn)上下文菜單

    詳解bootstrap用dropdown-menu實(shí)現(xiàn)上下文菜單

    這篇文章主要介紹了詳解bootstrap用dropdown-menu實(shí)現(xiàn)上下文菜單的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • jQuery簡(jiǎn)單實(shí)現(xiàn)title提示效果示例

    jQuery簡(jiǎn)單實(shí)現(xiàn)title提示效果示例

    這篇文章主要介紹了jQuery簡(jiǎn)單實(shí)現(xiàn)title提示效果的方法,結(jié)合實(shí)例形式分析了jQuery封裝與使用title提示框的方法,需要的朋友可以參考下
    2016-08-08
  • jQuery EasyUI 右鍵菜單--關(guān)閉標(biāo)簽/選項(xiàng)卡的簡(jiǎn)單實(shí)例

    jQuery EasyUI 右鍵菜單--關(guān)閉標(biāo)簽/選項(xiàng)卡的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇jQuery EasyUI 右鍵菜單--關(guān)閉標(biāo)簽/選項(xiàng)卡的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10

最新評(píng)論