轮播图--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 ...
随机推荐
- UVA 10131 - Is Bigger Smarter? (动态规划)
Is Bigger Smarter? The Problem Some people think that the bigger an elephant is, the smarter it is. ...
- jQuery firefox chrome IE 绑定mousewheel事件
$doc.on('mousewheel DOMMouseScroll',function(){ $htmlBody.stop(true); $goTop.stop(true); });
- TP开发小技巧
TP开发小技巧原文地址http://wp.chenyuanzhao.com/wp/2016/07/23/tp%E5%BC%80%E5%8F%91%E5%B0%8F%E6%8A%80%E5%B7%A7/ ...
- jquery.cookie()方法
jquery.cookie.js是一个轻量级的cookie 插件,可以读取.写入.删除 cookie. 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. < ...
- Nginx源码研究八:nginx监听socket实现流程
前面描述了nginx系统分析nginx的配置文件,初始化模块相关参数的过程,这里利用nginx监听socket的实现过程,做一次完整的回顾 1.首先,nginx启动的main函数中,会先初始化cycl ...
- C语言基础学习运算符-基本算术运算符
C语言中用于基本算术运算的运算符有:+,-,*,%,/.这些运算符的用法和你想像到的基本无异: 加法运算符 “+”使得它两侧的值被加到一起. 减法运算符“-”用它前面的数减去后面的数. 乘法由“*”表 ...
- postgres常用类型
数值类型 名字 存储空间 描述 范围 smallint 2 字节 小范围整数 -32768 到 +32767 integer 4 字节 常用的整数 -2147483648 到 +2147483647 ...
- 使用django-mssql时候报pythoncom模块不存在
pip install django-mssql是链接sqlserver的数据库db引擎,这里用到了pythoncom模块,所以还需要安装 pip install pypiwin32 settings ...
- spring mvc velocity多视图
1.ViewResolverUrlBasedViewResolver 这个东西是根据url 进行路由的.网上搜了 1.order 排序,同名出现各种问题 2.XmlViewResolver,BeanN ...
- .Net 4.5 Task
Task 是 .Net4.0 新出的异步调用方法,粗略看了一下基本对外屏蔽了线程的概念,写异步调用更专注于应用本身. public class Program { static void Main(s ...