轮播图--JS手写
轮播图基本每个网站都会有,也有很多的JQuery插件可以用,这里是用JS代码写的。
案例:http://www.shopli.cn 首页三张图片的轮换就是这种写法
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Test</title>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
@*Css样式*@
<style>
* {
margin: ;
padding: ;
}
ul {
height: 600px;
position: relative;
}
ul li {
float: left;
list-style-type: none;
height: %;
background-position: % %;
background-size: cover;
}
.one {
background-image: url("/Content/1.jpg");
}
.two {
background-image: url("/Content/2.jpg");
}
.three {
background-image: url("/Content/3.jpg");
}
.four {
background-image: url("/Content/4.png");
}
.dw {
position: absolute;
bottom: 5px;
width: %;
text-align: center;
}
ol {
list-style: none;
text-align: center;
}
ol li {
display: inline-block;
width: 22px;
height: 4px;
padding: 4px;
overflow: hidden;
text-indent: -999em;
cursor: pointer;
background-color: white;
}
.hasClass {
background-color: red;
}
</style>
</head>
<body>
<div style="position: relative; overflow: hidden; height: 600px;">
@*有多少个li,ul的宽度就是 X00%*@
<ul style="width:600%; margin-left:-100%;">
@*第一张前面放最后一张,做轮播给人一种一直往一个方向的感觉*@
当显示这张图片时,ul就改变样式定位到第4张图片
<li class="four" style="width:16.6667%"></li>
@*这里的li标签宽度是16.66667%怎么来的, 只有4张图片做轮播,前后各加一张就是6张,
16.666667=100/6 如果是2张做轮播,一共4个li, 每个li的宽度就是25%*@
@*这4张图片做轮播*@
<li class="one" style="width:16.6667%"></li>
<li class="two" style="width:16.6667%"></li>
<li class="three" style="width:16.6667%"></li>
<li class="four" style="width:16.6667%"></li>
@*最后一张后面放第一张,做轮播给人一种一直往一个方向的感觉*@
当显示这张图片时,ul改变样式定位到第1张图片
<li class="one" style="width:16.6667%"></li>
</ul>
<nav class="dw">
<ol >
<li data-slide="" class="hasClass"></li>
<li data-slide="" class=""></li>
<li data-slide="" class=""></li>
<li data-slide="" class=""></li>
</ol>
</nav>
</div>
</body>
</html>
<script>
var mm;
function hh() {
//ul li做向左移动
$("ul").animate({ "left": "+=" + "-100%" }, , function () {
var i;//得到第几张的值
$("ol li").each(function () {
if ($(this).attr("class") != "") {
i = $(this).attr("data-slide");
}
});
//因为是做过一次动画才来找值,所有当i为3时,ul是的left是 -400%,也就是第5张图片
i = parseInt(i) + ;
//如果等于4 就重置下, 这里有4张做轮播就是4
if (parseInt(i) == ) {
i = ;
$("ul").css("left", "0%"); //重新定位下,ul的left已经重置了,因为图片没变,所以给人一个方向的假象
}
$("ol li").attr("class", ""); //把所有的li的样式移除
$("ol li:eq(" + parseInt(i) + ")").attr("class", "hasClass"); //下面的图标显示
})
mm = setTimeout("hh()", ); //每个4秒做一次动画
}
$(document).ready(function () {
mm = setTimeout("hh()", );
//点第几张就显示几张 左右也是一回事,这里没写
$("ol").on("click", "li", function () {
var jj = $(this).attr("data-slide"); //点的第几张
$("ol li").attr("class", "");
$("ol li:eq(" + parseInt(jj) + ")").attr("class", "hasClass"); //下面的图标显示
clearTimeout(mm);
$("ul").animate({ "left": "-" + parseInt(jj) + "00%" }, , function () {
mm = setTimeout("hh()", );
}); //重新定位下
})
})
</script>
轮播图--JS手写的更多相关文章
- jq轮播图插件—手写
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...
- 轮播图--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编写
//面向对象 function Left() { this.index = 0; this.lefthover = $('#left-content'); this.listenhover(); th ...
- 转:大气炫酷焦点轮播图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轮播图和bootstrap中的轮播图
js中的轮播图案例: <!DOCTYPE html><html lang="en"> <head> <meta charset=" ...
- 简单介绍无限轮播图,js源代码
无限轮播图js源代码,今天介绍一下用js简单的编写无限轮播图 <!DOCTYPE html> <html> <head> <meta charse ...
随机推荐
- [转]C++基本功和 Design Pattern系列 ctor & dtor
今天Aear讲的是class.ctor 也就是constructor, 和 class.dtor, destructor. 相信大家都知道constructor 和 destructor是做什么用的 ...
- C#:装箱和拆箱相关知识整理
1.装箱和拆箱是一个抽象的概念 2. 装箱是将值类型转换为引用类型 ; 拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型 ...
- C51 库函数(3)
3.3 STRING.H:串函数 串函数通常将指针串作输入值.一个串就包括2个或多个字符.串结以空字符表示.在函数memcmp,memcpy,memchr,memccpy,memmove和memset ...
- 【HDOJ】2772 Matchsticks
纯粹的找规律题.1: 22: 53: 54: 45: 56: 67: 38: 79: 60: 6 2 1 13 7 74 4 115 2 ...
- HDU4666 Hyperspace(曼哈顿)
题目链接. 分析: 这是多校的一个题,当时没做出来.学长说让用multiset. 用multiset将每一个数的1<<dim个状态全部保存.假设状态 i, 最远曼哈顿距离应当是 max[i ...
- BZOJ1596: [Usaco2008 Jan]电话网络
1596: [Usaco2008 Jan]电话网络 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 513 Solved: 232[Submit][S ...
- 9月19号-9月21号丰宁坝上草原行 - 营销系统 - 京东内部论坛 - Powered by Discuz!
9月19号-9月21号丰宁坝上草原行 - 营销系统 - 京东内部论坛 - Powered by Discuz! 9月19号-9月21号丰宁坝上草原行 [复制链接]
- [置顶] Android开发之ProcessState和IPCThreadState类分析
在Android中ProcessState是客户端和服务端公共的部分,作为Binder通信的基础,ProcessState是一个singleton类,每个 进程只有一个对象,这个对象负责打开Binde ...
- python小技巧
有的时候用一个全新的模块,对其属性和方法,用法并不太了解 这时你可以这样做: 1.dir([name]),如dir(int),会显示int的所有属性和方法
- webservice(CXF)基于3.1.1版本实例
引言 有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢? 换句话说,就是有什么办法可以实现我的应用程序 A 可以和应用程序 B 进行通信呢? 或者说是,我用 Java 写的应用程序和用 . ...