轮播图js编写
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编写的更多相关文章
- 轮播图--JS手写
		轮播图基本每个网站都会有,也有很多的JQuery插件可以用,这里是用JS代码写的. @{ Layout = null; } <!DOCTYPE html> <html> < ... 
- 轮播图--js课程
		<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 轮播图js版&jQ版
		JS版轮播图 html部分和css部分自己任意定 主要构成: 1,一个固定的框 超出框的部分隐藏 2,几张图片float:left 3,下部下原点,点击切换,切换到不同的张都有红色显示 4,左右两个大 ... 
- 小米官网轮播图js+css3+html实现
		官网轮播: 我的轮播: 重难点: 1.布局 2.图片和右下角小圆点的同步问题 3.setInterval定时器的使用 4.淡入淡出动画效果 5.左右箭头点击时,图片和小圆点的效果同步 6.另一种轮播思 ... 
- 转:大气炫酷焦点轮播图js特效
		使用方法 Step 1. 在html的标签内引入相关文件 <script type="text/javascript" src="js/myfocus-2.0.0. ... 
- banner轮播图js
		例子1: if(!$('.side_ul ul').is(":animated")){ var wli = $('.side_ul li').width()+ ... 
- 简单介绍无限轮播图,js源代码
		无限轮播图js源代码,今天介绍一下用js简单的编写无限轮播图 <!DOCTYPE html> <html> <head> <meta charse ... 
- App轮播图
		<!doctype html> <html> <head> <meta charset="utf-8"> <title> ... 
- js编写轮播图,广告弹框
		1.轮播图 js编写轮播图,需要用到setInterval(计时器):先给一个div,里面放轮播图的图片,将轮播图的图片明明为相同样式的:如:banner1.jpg,banner2.jpg,banne ... 
随机推荐
- ARCore中四元数的插值算法实现
			ARCore中四元数差值算法: 其中t的取值范围为[0, 1],当 t = 0 时,结果为a:当t = 1 时,结果为b. public static Quaternion makeInterpola ... 
- HTML5 元素文字超出部分显示省略号(支持多行),兼容几乎所有常用浏览器
			1,公共样式,在公共的 CSS 文件中加入以下内容 /* 超出部分显示省略号,支持多行 */ .text-ells:before { content: ''; float: left; width: ... 
- win10 KMS命令激活步骤<转>
			三.win10 KMS命令激活步骤如下: 1.右键点击开始图标,弹出这个菜单,选择[windows powershell(管理员)],或者命令提示符管理员: 2.打开命令窗口,复制这个命令slmgr ... 
- angular中使用ckplayer播放器
			原文地址:https://www.cnblogs.com/jying/p/9519557.html ,转载请说明出处. ckplayer官网:http://www.ckplayer.com 使用ckp ... 
- Jmeter连接MySQL和SQL Server配置(转载)
			在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 2 下载对应的驱动包 mysql驱动: (mysql- ... 
- idea2017启动ssm项目卡在build阶段后报outofmemory
			如上图,设置build process heap size(Mbytes)(构建过程堆大小(单位MB))为4000,即约4GB.之前设置的是700,修改之后问题解决. 补充:导入新项目后,此参数会初始 ... 
- python命名规则
			1 包.模块的命名规则:全部以小写字母形式来命名.比如:import random 2 类.对象的命名规则:类是每个单词的首字母要大写,其他字母小写比如:class MyFamily: ,类的私有属性 ... 
- nodejs 箭头函数
			背景 箭头函数,出现于ES6规范中. 使用 就是lambda函数. 一般使用: (a, b) => { return a + b; } 简略模式: 当参数只有一个时,可以省略括号:当返回值只有一 ... 
- jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小
			由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ... 
- php curl请求回来的中文为乱码
			在浏览器访问回来的编码格式是正常的,但是从php curl 请求过来的确实乱码,之前也试过这个函数好像不行,今天吧最后一个参数换了,简单粗暴,可以了mb_convert_encoding($res, ... 
