function Banner() {
var self = this;
self.countLi = $('.banner-group .bannerUl li').length;
self.bannerUl = $('.banner-group .bannerUl');
self.bannerGroup = $('.banner-group');
self.arrow = $('.arrow');
self.leftarrow = $('.arrow-left');
self.rightarrow = $('.arrow-right');
self.bannerControl = $('.bannerControl');
self.index = 1;
} Banner.prototype.animate = function(){
var self = this;
self.bannerUl.animate({'left':-798*self.index},500);
var index = self.index;
if (index===0){
index = self.countLi-1;
}else if(index === self.countLi+1){
index = 0
}else {
index = self.index-1;
}
self.bannerControl.children('li').eq(index).css('background-color','white').siblings('li').css('background-color','');
}; //初始化小圆点
Banner.prototype.bannerInit = function () {
var self = this;
self.bannerUl.css({'left':-798});
self.bannerUl.css('width',798*(self.countLi+2));
self.bannerControl.css('width',12*self.countLi+20*self.countLi);
for (i=0;i<self.countLi;i++){
var cirle = $('<li></li>');
self.bannerControl.append(cirle);
if(i===0){
self.bannerControl.children('li').eq(0).css('background-color','white');
}
}
var first = self.bannerUl.children('li').eq(0).clone();
var last = self.bannerUl.children('li').eq(self.countLi-1).clone();
self.bannerUl.append(first);
self.bannerUl.prepend(last);
}; //实现轮播图自动轮播
Banner.prototype.loop = function() {
var self = this;
self.timer = setInterval(function () {
if (self.index>=self.countLi+1){
self.bannerUl.css({'left':-798});
self.index=2;
}else {
self.index++;
}
self.animate();
},1000);
}; // 监听鼠标是否在轮播图上面
Banner.prototype.listenHover = function(){
var self = this;
self.bannerGroup.hover(function () {
clearInterval(self.timer);
self.listenArrow(true);
}, function () {
self.loop();
self.listenArrow(false);
})
}; //监听箭头隐藏事件
Banner.prototype.listenArrow = function(isshow){
var self = this;
if (isshow){
self.arrow.show();
}else {
self.arrow.hide();
}
};
//监听箭头点击事件
Banner.prototype.clickArrow = function () {
var self = this;
self.rightarrow.click(function () {
if(self.index>=self.countLi+1){
self.bannerUl.css({'left':-798});
self.index=2;
}else {
self.index++;
}
self.animate();
});
self.leftarrow.click(function () {
if(self.index===0){
self.bannerUl.css({'left':-self.countLi*798});
self.index = self.countLi-1;
}else {
self.index--
}
self.animate();
})
}; //小圆点控制轮播图
// Banner.prototype.bannerControlUl = function(){
// var self = this;
// self.bannerControl.children('li').eq(self.index+1).css('background-color','white').siblings('li').css('background-color','');
// }; //小圆点点击事件
Banner.prototype.clickControl = function () {
var self = this;
self.bannerControl.children('li').each(function (index,obj) {
$(obj).click(function () {
self.animate();
self.bannerControl.children('li').eq(index).css('background-color','white').siblings('li').css('background-color','');
})
})
}; Banner.prototype.run = function () {
var self = this;
self.loop();
self.listenArrow(false);
self.listenHover();
self.clickArrow();
self.bannerInit();
self.clickControl();
};
$(function () {
var banner = new Banner();
banner.run();
});

轮播图js编写的更多相关文章

  1. 轮播图--JS手写

    轮播图基本每个网站都会有,也有很多的JQuery插件可以用,这里是用JS代码写的. @{ Layout = null; } <!DOCTYPE html> <html> < ...

  2. 轮播图--js课程

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 轮播图js版&jQ版

    JS版轮播图 html部分和css部分自己任意定 主要构成: 1,一个固定的框 超出框的部分隐藏 2,几张图片float:left 3,下部下原点,点击切换,切换到不同的张都有红色显示 4,左右两个大 ...

  4. 小米官网轮播图js+css3+html实现

    官网轮播: 我的轮播: 重难点: 1.布局 2.图片和右下角小圆点的同步问题 3.setInterval定时器的使用 4.淡入淡出动画效果 5.左右箭头点击时,图片和小圆点的效果同步 6.另一种轮播思 ...

  5. 转:大气炫酷焦点轮播图js特效

    使用方法 Step 1. 在html的标签内引入相关文件 <script type="text/javascript" src="js/myfocus-2.0.0. ...

  6. banner轮播图js

    例子1: if(!$('.side_ul ul').is(":animated")){            var wli = $('.side_ul li').width()+ ...

  7. 简单介绍无限轮播图,js源代码

    无限轮播图js源代码,今天介绍一下用js简单的编写无限轮播图 <!DOCTYPE html> <html>   <head>     <meta charse ...

  8. App轮播图

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. js编写轮播图,广告弹框

    1.轮播图 js编写轮播图,需要用到setInterval(计时器):先给一个div,里面放轮播图的图片,将轮播图的图片明明为相同样式的:如:banner1.jpg,banner2.jpg,banne ...

随机推荐

  1. (Python基础)2 or 3?

    对于大部分初学者来说,该选择Python2.x还是Python3.x?我想这个问题都是普遍初学者的疑问.我的回答当然是学Python3.x的啦.因为下面有段官方原话是这样子说的 ,大概意思呢就是Pyt ...

  2. gentoo emerge L10N

    gentoo 中安装软件的时候 emerge 提示 USE 中有 语言包可选安装,使用 L10N 来设置,设置方法是在USE中使用 l10n_,比如说 l10n_zh_CN 来安装中文支持包.

  3. VS2010 永久配置OpenCv2.4.9 及转换到COFF 期间失败:文件无效或损坏,解决方法

    1.下载OpenCv2.4.9(win pack):http://opencv.org/releases.html 下载完成后,进行解压(win7 64位系统) 2.环境配置,配置如下图所示: 找到p ...

  4. leetcode240

    public class Solution { public bool SearchMatrix(int[,] matrix, int target) { , j = matrix.GetLength ...

  5. (转)VS2010反编译dll之后存在的resource修改为resx

    https://www.cnblogs.com/tangbaono1/p/6897183.html 1.找到安装VS的时候,存在的ResGen.exe,我的电脑是win7的,路径是在C:\Progra ...

  6. VMware虚拟机配置嵌套虚拟化

    VMware虚拟机下创建kvm-sever,server下继续创建kvm虚拟机(嵌套虚拟化),返回libvirt错误解决办法:SSH连接VMwarevi /etc/vmware/config增加一行设 ...

  7. cdnbest区域自定义配置里添加防xss攻击配置

    把下面代码复制进去即可: <!--#start 300 --><config> <response action='allow' > <table name= ...

  8. cdnbest独立主控配置自定义错误页面

    注:自定义错误的域名最好配置ssl,不配碰到有使用ssl的域名,错误码显示就会有问题 (1)登陆管理后台点区域列表-->配置-->错误url 解析一个域名到你的cdn主控,然后输入这个ur ...

  9. EL表达式与标签库

    https://blog.csdn.net/panhaigang123/article/details/78428567

  10. 20162322 朱娅霖 作业005&006 栈,队列

    20162322 2017-2018-1 <程序设计与数据结构>第五.六周学习总结 教材学习内容总结 集合的介绍(总述) 集合是收集并组织其他对象的对象.主要分为线性集合(集合中的元素排成 ...