JQuery写的一个常见的banner
大致的布局如下:
<div class="banner" >
<div class="pic">
<ul>
<li><img src="img/banner4.jpg" alt="" /></li>
<li><img src="img/banner1.png" alt="" /></li>
<li><img src="img/banner2.png" alt="" /></li>
<li><img src="img/banner3.jpg" alt="" /></li>
<li><img src="img/banner4.jpg" alt="" /></li>
<li><img src="img/banner1.png" alt="" /></li>
</ul>
</div>
<!--点播列表-->
<div class="tab">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<!--banner 两边的按钮-->
<div class="btn">
<div id="left"> < </div>
<div id="right"> > </div>
</div>
</div>
css样式如下:
.banner{width:100%;height:400px;position:relative;}
.banner .pic{width: 100%;height: 100%;overflow: hidden;}
.banner .pic ul{width: 1000%;height: 100%;margin-left: -100%;}
.banner .pic ul li{width: 10%;height: 100%;float: left;}
.banner .pic ul li img{width: 100%;height: 100%;}
.banner .tab{width: 136px;height: 3px;position: absolute;bottom: 20px;left: 50%;margin-left: -68px;}
.banner .tab ul li{width: 30px;height: 3px;float: left;margin: 0 2px;background: #5D5C60;}
.banner .tab ul li.on{background: #0DA1A4;}
.banner .btn div{width: 30px;height: 40px;background: rgba(0, 0, 0, 0.5);font-size:20px;text-align: center;line-height: 40px;color: #fff;position: absolute;top: 50%;margin-top: -20px;display: none;}
#left{left: 15px;}
#right{right: 15px;}
JS代码:
~function(){
var banner = $('.banner');
var picUl = $('.banner .pic ul');
var tabLi = $('.banner .tab ul li');
var btnDiv = $('.banner .btn div');
var width = banner.width();
var index = 0;
var timer = null;
var nowTime = 0;
//底部Li列表添加on样式
tabLi.eq(0).addClass('on');
setAuto();
tabLi.click(function(){
index = $(this).index();
tabLi.eq(index).addClass('on').siblings().removeClass('on');
picUl.stop().animate({
marginLeft:-width*(index+1)+'px'
},1000);
});
btnDiv.click(function(){
if (new Date() - nowTime >500) {
nowTime = new Date();
var i = $(this).index();
i?index++:index--;
change();
}
});
function setAuto(){
timer = setInterval(function(){
index++;
change();
},5000);
};
banner.hover(function(){
btnDiv.show(1000);
clearInterval(timer);
},setAuto).mouseleave(function(){
btnDiv.hide(1000);
});
function change(){
index >= tabLi.length?tabLi.eq(0).addClass('on').siblings().removeClass('on'):tabLi.eq(index).addClass('on').siblings().removeClass('on');
picUl.stop().animate({
marginLeft:-width*(index+1)+'px'
},1000,function(){
if (index==4) {
index = 0;
picUl.css("marginLeft",-width+'px');
} else if(index == -1){
index = tabLi.length - 1;
picUl.css("marginLeft",-width*(index+1)+'px');
}
});
}
}();
作为一个新手,用两天时间调试的banner图,感觉还是可以的~_~~_~
JQuery写的一个常见的banner的更多相关文章
- 用jQuery写了一个模态框插件
用jQuery写了一个模态框插件 大家觉得下面的框框好看么, 水印可以去掉(这个任务交给你们了(- o -)~zZ); "info"框 $("div").con ...
- 利用jquery写的一个TAB页切换效果
函数如下 /** *切换效果 */ function switab(tab,con,tab_c_css,tab_n_css,no) { $(tab).each(function(i){ if(i == ...
- 用jquery写自己的form表单验证
这几天看了锋利的jquery,感觉很不错.特别是jquery强大的选择器.今天就利用jquery写了一个自己的form表单验证的小案例.当巩固下jquery.首先贴下代码,当然只是一个小案例. 思路: ...
- 如何使用jQuery写一个jQuery插件
jQuery插件其实是前端框架的思维,构成一个框架,个人认为必须满足以下几个基础条件:1. 可重用,2. 兼容性,3. 维护方便,虽说现在有很多比较成熟的前端框架,但是也有部分存在配置麻烦,学习成本大 ...
- 自己在项目中写的一个Jquery插件和Jquery tab 功能
后台查询结果 PDFSearchResult实体类: [DataContract(Name = "PDFSearchResult")] public class PDFSearch ...
- 用jQuery写的最简单的表单验证
近几天完成了关于我们项目的最简单的表单验证,是用jQuery写的,由于之前也一直没学过jQuery,所以自己也是一直处于边摸索边学习的阶段,经过这一段时间的学习,通过查资料啥的,也发现了学习jQuer ...
- 为jQuery写插件
很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider. 如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成sl ...
- 用jquery写循环播放div的相关笔记 珍贵的总结 -1
用jquery写循环播放div line-height应用的元素的 层次? line-heig字ht, 叫行高, 仅仅是指 文/文本, 而不管图片. line-height是容器中 文本行 与 文本行 ...
- 自己写的一个Yeoman的Generator-Require-Angularjs
Yeoman是一个常见的工作流,能够很方面的搭建属于自己的脚手架. 这段时间我用闲暇时间写了一个Generator来玩了一下,这个Generator的主要目的是快速建立一个RequireJS+Angu ...
随机推荐
- 深度理解DOM拷贝clone()
克隆节点是DOM的常见操作,jQuery提供一个clone方法,专门用于处理dom的克隆: .clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素.匹配元素的下级元素.文字节点. clon ...
- c#:实现动态编译,并实现动态MultiProcess功能(来自python multiprocess的想法)
由于之前一直遇到一些关于并行进行数据处理的时效果往往不好,不管是c#还是java程序都是一样,但是在Python中通过multiprocess实现同样的功能时,却发现确实可以提高程序运行的性能,及服务 ...
- 竞赛基础篇---部分和问题(DFS)
问题链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1058 描述 给定整数a1.a2........an,判断是否可以从中选出若干数,使 ...
- 关于手机APP开发的一些常见误解
移动应用不适用于小型企业和创业公司 如果你想要开发一款移动APP,那么在前期开发一种偏见的态度并不是一个好主意.如果你认为移动APP只有跨国公司和大企业创业者才会去开发,那么你可能错过了成功的捷径.而 ...
- [LeetCode] Number of Longest Increasing Subsequence 最长递增序列的个数
Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...
- [LeetCode] Add One Row to Tree 二叉树中增加一行
Given the root of a binary tree, then value v and depth d, you need to add a row of nodes with value ...
- [LeetCode] Construct String from Binary Tree 根据二叉树创建字符串
You need to construct a string consists of parenthesis and integers from a binary tree with the preo ...
- python3全栈开发-socket编程
一. 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视 ...
- ssh爆破(python脚本)
最近在乌云看到一份端口详解:为了锻炼自己,按照端口详解写脚本 #!/usr/local/bin/ python # -*- coding: UTF-8 -*- __author__ = 'yangxi ...
- 什么是HTTP Referer?
什么是Referer? Referer是 HTTP请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer.比如我在www.sojson ...