基于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 相关文章推荐
LazyLoad 延迟加载(按需加载)
May 31 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
javascript中函数作为参数调用的方法
Feb 09 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
Jan 25 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 Javascript
uni-app从安装到卸载的入门教程
May 15 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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水印技术
2007/02/14 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
详解javascript遍历方式
2015/11/11 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
python根据出生日期获得年龄的方法
2015/03/31 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python绘制立方体的方法
2018/07/02 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
银行开业庆典方案
2014/02/06 职场文书
党的生日演讲稿
2014/09/10 职场文书
全陪导游词
2015/02/04 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js