基于jquery实现轮播焦点图插件


Posted in Javascript onMarch 31, 2016

直接上代码,可能不是最好的,欢迎吐槽。

/**
 * Created by Steven on 2015/07/10/0010.
 * @email zhuttymore@126.com
 */
 
 (function ($) {
 
  $.fn.slider = function (opt) {
   opt = $.extend({
    speed:'fast',
    auto: false,
    interval: 1000
   }, opt);
 
   var _this = this;
   var index = 0;
   _this.find('.window li').width(_this.width());
 
   var animate = function(index){
    var win = _this.find('.window');
    var offset = win.parent().width();
    win.animate({'marginLeft': -offset * index}, opt.speed);
    _this.find('.tab li').removeClass('select');
    _this.find('.tab li').eq(index).addClass('select');
   };
 
   _this.find('.tab li').mouseover(function () {
    index = parseInt($(this).index());
    animate(index);
 
   });
 
   _this.find('.btn li:first-child').click(function(){
    --index;
    if(index < 0){
     index = _this.find('.window li').length - 1;
    }
    animate(index);
   });
 
   _this.find('.btn li:last-child').click(function(){
    ++index;
    if(index >= _this.find('.window li').length){
     index = 0;
    }
    animate(index);
   });
 
   if(opt.auto){
    var time = setInterval(function(){
     ++index;
     if(index >= _this.find('.window li').length){
      index = 0;
     }
     animate(index);
    },opt.interval);
   }
 
   return $.each(this,function(index,ele){});
  };
 })(jQuery);

Html

<div class="slider">
   <ul class="btn">
    <li><i class=" icon-caret-left"></i></li>
    <li><i class=" icon-caret-right"></i></li>
   </ul>
   <ul class="window">
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
   </ul>
   <ul class="tab">
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
   </ul>
  </div>

CSS

.slider {
  height: 440px;
  overflow: hidden;
  position: relative;
 }
 .slider .btn li{
  position: absolute;
  width: 30px;
  height: 50px;
  cursor: pointer;
  color: #fff;
  text-align: center;
  font-size: 40px;
  top:45%;
 }
 .slider .btn li:first-child {
 
  left:0;
 
 }
 
 .slider .btn li:last-child {
 
  right:0;
 
 }
 
 .slider img {
  width: 100%;
  height: 100%;
 }
 
 .slider .window {
  width: 40000px;
  height: 400px;
  overflow: hidden;
 }
 
 .slider .window li {
  float: left;
  overflow: hidden;
  width: 1200px;
 }
 
 .slider .tab {
  position: absolute;
  z-index: 5;
  width: 880px;
  margin: -40px auto;
  left: 13%;
 }
 
 .slider .tab li {
  float: left;
  width: 200px;
  height: 80px;
  margin-left: 18px;
  cursor: pointer;
 }

Css文件可以根据需求自己DIY, 但html的.slider里面的结构应该是一样。

Run 起来:
$('.slider').slider({auto: true, interval: 2000});

改进js结构:

/**
 * Created by Steven on 2015/07/10/0010.
 * @email zhuttymore@126.com
 */

(function ($) {

 $.fn.extend({
  slider:function (opt) {
   opt = $.extend({
    
   }, opt);
   //Do something here
   
   return $.each(this,function(index,ele){});
  }
 });

})(jQuery);

以上就是本文的全部内容,希望对大家学习jqueryt程序设计有所帮助。

Javascript 相关文章推荐
event.srcElement+表格应用
Aug 29 Javascript
jQuery入门知识简介
Mar 04 Javascript
jquery 多级下拉菜单核心代码
May 21 Javascript
在JavaScript中监听IME键盘输入事件
May 29 Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
js计算系统当前日期是星期几的方法
Jul 14 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
get  post jsonp三种数据交互形式实例详解
Aug 25 Javascript
深入理解ES6中let和闭包
Feb 22 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
javascript中错误使用var造成undefined
Mar 31 #Javascript
详解JavaScript表单验证(E-mail 验证)
Mar 31 #Javascript
js表单验证实例讲解
Mar 31 #Javascript
javascript创建cookie、读取cookie
Mar 31 #Javascript
基于javascript实现全屏漂浮广告
Mar 31 #Javascript
JS深度拷贝Object Array实例分析
Mar 31 #Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 #Javascript
You might like
新版PHP将向Java靠拢
2006/10/09 PHP
PHP学习之PHP变量
2006/10/09 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php并发加锁示例
2016/10/17 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
用javascript编写的第一人称射击游戏
2007/02/25 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python字典的遍历3种方法详解
2019/08/10 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
印尼旅游网站:via
2017/11/12 全球购物
Ruby如何定义一个类
2012/10/08 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
考博自荐信
2013/10/25 职场文书
《理想》教学反思
2014/02/17 职场文书
融资租赁计划书
2014/04/29 职场文书
公司建议书怎么写
2014/05/15 职场文书
车辆工程专业求职信
2014/06/14 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年护理部工作总结
2014/11/14 职场文书
毕业感言怎么写
2015/07/31 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL