基于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 相关文章推荐
JavaScript之自定义类型
May 04 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
查找页面中所有类为test的结点的方法
Mar 28 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
JavaScript 函数的执行过程
May 09 Javascript
Javascript之深入浅出prototype
Feb 06 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
用Axios Element实现全局的请求loading的方法
Mar 15 Javascript
VUE引入第三方js包及调用方法讲解
Mar 01 Javascript
vue 开发之路由配置方法详解
Dec 02 Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 Javascript
Javascript表单序列化原理及实现代码详解
Oct 30 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
数据库中排序的对比及使用条件详解
2012/02/23 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
php表单处理操作
2017/11/16 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
JavaScript中的Function函数
2015/08/27 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
python实现飞船游戏的纵向移动
2020/04/24 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
房屋公证委托书
2014/04/03 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
三万活动总结
2014/04/28 职场文书
学校端午节活动方案
2014/08/23 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
万里长城导游词
2015/01/30 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
redis数据结构之压缩列表
2022/03/21 Redis