基于jquery实现轮播焦点图插件
作者:bea
直接上代码,可能不是最好的,欢迎吐槽。 /** * 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 _thi
直接上代码,可能不是最好的,欢迎吐槽。
/**
* 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程序设计有所帮助。
有用 | 无用
/**
* 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程序设计有所帮助。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- JQuery解析XML的方法小结
- javascript HTML5文件上传FileReader API
- JavaScript中文件上传API详解
- jquery分页插件jquery.pagination.js实现无刷新分页
- jquery分页插件jquery.pagination.js使用方法解析
- jQuery实现下拉加载功能实例代码
- Extjs实现下拉菜单效果
- 实例讲解jQuery EasyUI tree中state属性慎用
- EasyUi combotree 实现动态加载树节点
- 如何在Linux上安装Node.js
- EasyUi中的Combogrid 实现分页和动态搜索远程数据
- 简介EasyUI datagrid editor combogrid搜索框的实现
- jQuery实现的导航动画效果(附demo源码)
- JS中frameset框架弹出层实例代码
- JS操作COOKIE实现备忘记录的方法
- Atitit.js的键盘按键事件捆绑and事件调度
- JS中多步骤多分步的StepJump组件实例详解
- js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
- js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解