【实践】jquery实现滑动动画及轮播
在做这个之前我已经模仿了一遍大神的轮播动画做了一次其切换模式就是一张图片隐藏另一张图片显示过渡效果是渐入(fadein),但是目前的动画切换大多数都是用图片的左右切换动作的于是在网上看了一些关于这类型的文章然后再结合自己的理解写了一下。
先上html代码
<div id="wrapper">
<div id="show-area">
<ul>
<li id="first"><a href="#"><img src="data:images/p1.jpg"></a></li>
<li><a href="#"><img src="data:images/p2.jpg"></a></li>
<li><a href="#"><img src="data:images/p3.jpg"></a></li>
<li><a href="#"><img src="data:images/p4.jpg"></a></li>
</ul>
</div>
<div id="controler"> </div>
</div>
<div id="see"></div>
css属性
这次css属性有几个关键的部分要留意的
*{
margin:0px;
padding:0px;
border:0px;
}
li{
list-style-type:none;
}
#wrapper{
margin:0px auto;
}
#show-area{
width:800px;/*width 和 height 其实就是图片的高和宽*/
height:450px;
position:relative;
overflow:hidden;
margin:100px auto;
}
#show-area ul{
position:relative;
width:3200px;
}
#show-area ul li{
width:800px;
height:450px;
float:left;
}
#controler{
position:absolute;
width: 150px;
height: 20px;
left: 969px;
top: 530px;
}
#controler div{
margin-left:.5em;
float:left;
height:15px;
width:15px;
border-radius:100%;
background:#ccc;
}
.onclick{
background:#fff !important;/*在切换时我们利用添加一个类的方法去改变按钮的背景颜色而,因为按钮初始状态下是用id 选择器设定背景颜色的,所以这里加上一个important*/
}
#show-area ul{
position:relative;
width:3200px;
}
有必要说一下这段,为什么ul 要加上relative这个属性呢?在html代码里面我们可以看见show-area里面包含了一个 ul 以及4个 li 并且show-area这里我设置了overflow:hidden这个属性,这个图片左右滚动切换的原理就好像我们小时候玩的游戏:一张有一个洞的大纸片后面放着一条长长的纸片我们可以随意地拉动后面的长纸片使它的内容在前面的大纸片的洞里面显示而除了显示区域外的内容给我们就 hidden了它们了。
jquery代码
$(function(){
var currentIndex = 0;
var imgtotal = $("#show-area ul li").length;
var autoPlayIndex = 0;
var imgwidth = $("#show-area ul li").width();//获取第一个li的长度用作动画切换效果
//通过循环更具图片数量自动添加控制按钮方便以后后台上传图片所用
for(var i = 0 ; i<imgtotal ; i++){
$("#controler").append("<div>" + "</div>");
};
$("#controler div").eq(0).addClass("onclick");
$("#controler div").each(function() {
$(this).click(function(){
autoPlayIndex = $(this).index();//为模拟点击索引值赋值
Change(this);
});
});
function Change(obj){
currentIndex = $(obj).index();
$("#show-area ul").animate({left:-currentIndex * imgwidth},800);//这里就是切换的部分了当我按地一个按钮的时候它的左属性是没有变化的,而当我按第二个按钮的时候(第二个按钮的索引值是1)ul 的left属性就会减少第1个图片的宽度也就是向左面缩800px,这样第二张图片就显示出来啦,之后的也是如此,这就是为什么要设置ul 属性为relative的意义,并且ul 里面的 li 也要设置为左浮动这样才会有效果
$("#controler div").eq(currentIndex).addClass("onclick").siblings().removeClass("onclick");
}
var auto = setInterval(function(){
autochange();
},6000);
function autochange(){
autoPlayIndex = (autoPlayIndex + 1) % imgtotal;
$("#controler div").eq(autoPlayIndex).trigger("click");
};
$("#show-area li,#controler div").mouseover(function(){
clearInterval(auto);
}).mouseout(function(){
auto = setInterval(function(){
autochange();
},6000)
})
});
【实践】jquery实现滑动动画及轮播的更多相关文章
- jquery特效(4)—轮播图②(定时自动轮播)
周末出去逛完街,就回公司好好地研究代码了,也算是把定时自动轮播程序写出来了,特意说明一下,这次的轮播图是在昨天随笔中jquery特效(3)—轮播图①(手动点击轮播)的基础上写出来的,也就是本次随笔展示 ...
- 基于jQuery可悬停控制图片轮播代码
基于jQuery可悬停控制图片轮播代码.这是一款可悬停切换全屏轮播jQuery幻灯片.效果图如下: 在线预览 源码下载 实现的代码: <!-- 轮播广告 --> <div id= ...
- 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。
问题描述: 1.我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题. 2. 分析: swiper的机制是:初始化的时候将swiper ...
- jquery特效(5)—轮播图③(鼠标悬浮停止轮播)
今天很无聊,就接着写轮播图了,需要说明一下,这次的轮播图是在上次随笔中jquery特效(3)—轮播图①(手动点击轮播)和jquery特效(4)—轮播图②(定时自动轮播)的基础上写出来的,也就是本次随笔 ...
- 天猫首页迷思之-jquery实现左侧广告牌图片轮播
本次要实现的是天猫首页每个楼层左侧的图片轮播效果.见图: 功能点有:点击右箭头向右滑动:点击左箭头向左滑动:什么都不点自动滑动. 1.实现样式.简单分析一下大概的html结构.一个大的div里面包含两 ...
- 【jQuery】百分比自适应屏幕轮播图特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 利用jQuery的淡入淡出实现轮播器
基本原理:将所有图片绝对定位在同一位置,透明度设为0,然后通过jQuery的淡入淡出实现图片的切换效果: 但我在使用fadeIn淡入时却无效果,最后只能使用fadeTo实现,求大神指教 HTML: & ...
- jQuery插件slides实现无缝轮播图特效
初始化插件: slides是一款基于jQuery无缝轮播图插件,支持图内元素动画,可以自定义动画类型 1 2 3 4 5 6 7 8 9 10 $(".slideInner").s ...
- 超级详细 一听就会:利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)
前言 作为一个前端工程师,无论公司是什么行业,无论你做什么端,基本都会遇到一个避不开的动画效果:循环轮播.做轮播并不难,市场上的轮播插件有很多,其中比较著名的是swiper,使用也非常简单.但轮播插件 ...
随机推荐
- JS实现设为首页与加入收藏
<script type="text/javascript"> // 设置为主页 function SetHome(obj, vrl) { try { obj.styl ...
- 使用ADO.NET访问数据库
第一种连接数据库的方法:可以使用.ET Framework提供程序的sqlConnection对象,使用无参数的构造函数创建Connection对象,代码如下: string strcon = &qu ...
- 运维、linux运维是什么?
从不知道运维是什么 到后来接触了linux运维 后来玩遍了运维常用的各种开源软件发现原来运维是这么回事 又到了后来,运维真的是我理解的这些吗?会软件,会配置,会部署.会调优,会处理故障...但是总觉得 ...
- HTML元素事件说明
blur( ) 元素失去焦点 a, input, textarea, button, select, label, map, area change( ) 用户改变域的内容 input, textar ...
- thinkphp 的create()非法数据解决办法
是因为create()方法默认是使用post传值的,把from表单的传值方法改成post就行了,默认是get.
- 从客户端(Content="<p>SF</p>")中检测到有潜在危险的 Request.Form 值
出现这个问题,一般是由于.Net Framework 使用了4.0或以上版本造成的.(从 .Net Framework 4.0 开始,ASP.NET开始强制检测Request参数安全),而我们可以通过 ...
- spring security 控制用户信息用户加密 缓存用户信息
1. MD5加密 任何一个正式的企业应用中,都不会在数据库中使用明文来保存密码的,我们在之前的章节中都是为了方便起见没有对数据库中的用户密码进行加密,这在实际应用中是极为幼稚的做法.可以想象一下,只要 ...
- 使用JDBC批量保存数据(JdbcDaoSupport,JdbcTemplete)
最近做的一个项目中用到了Hibernate的,然后数据库批量插入数据的时候就使用到了hibernate的批处理,但是效率比较低,看网上说还有一些限制,要禁止二级缓存,还要多一个batch_size的配 ...
- 20145337 《Java程序设计》第六周学习总结
20145337 <Java程序设计>第六周学习总结 教材学习内容总结 输入\输出 InputStream与OutputStream 从应用程序角度来看,如果要将数据从来源取出,可以使用输 ...
- javascript 与jquery为每个p标签增加onclick方法
<script type="text/javascript"> window.onload=function(){ var items=document.getElem ...