在做这个之前我已经模仿了一遍大神的轮播动画做了一次其切换模式就是一张图片隐藏另一张图片显示过渡效果是渐入(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实现滑动动画及轮播的更多相关文章

  1. jquery特效(4)—轮播图②(定时自动轮播)

    周末出去逛完街,就回公司好好地研究代码了,也算是把定时自动轮播程序写出来了,特意说明一下,这次的轮播图是在昨天随笔中jquery特效(3)—轮播图①(手动点击轮播)的基础上写出来的,也就是本次随笔展示 ...

  2. 基于jQuery可悬停控制图片轮播代码

    基于jQuery可悬停控制图片轮播代码.这是一款可悬停切换全屏轮播jQuery幻灯片.效果图如下: 在线预览   源码下载 实现的代码: <!-- 轮播广告 --> <div id= ...

  3. 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。

    问题描述: 1.我使用axios异步请求后台的图片进行渲染后不能实现循环轮播,也就是loop失效,但是静态写死的情况下不会出现这种问题. 2. 分析: swiper的机制是:初始化的时候将swiper ...

  4. jquery特效(5)—轮播图③(鼠标悬浮停止轮播)

    今天很无聊,就接着写轮播图了,需要说明一下,这次的轮播图是在上次随笔中jquery特效(3)—轮播图①(手动点击轮播)和jquery特效(4)—轮播图②(定时自动轮播)的基础上写出来的,也就是本次随笔 ...

  5. 天猫首页迷思之-jquery实现左侧广告牌图片轮播

    本次要实现的是天猫首页每个楼层左侧的图片轮播效果.见图: 功能点有:点击右箭头向右滑动:点击左箭头向左滑动:什么都不点自动滑动. 1.实现样式.简单分析一下大概的html结构.一个大的div里面包含两 ...

  6. 【jQuery】百分比自适应屏幕轮播图特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 利用jQuery的淡入淡出实现轮播器

    基本原理:将所有图片绝对定位在同一位置,透明度设为0,然后通过jQuery的淡入淡出实现图片的切换效果: 但我在使用fadeIn淡入时却无效果,最后只能使用fadeTo实现,求大神指教 HTML: & ...

  8. jQuery插件slides实现无缝轮播图特效

    初始化插件: slides是一款基于jQuery无缝轮播图插件,支持图内元素动画,可以自定义动画类型 1 2 3 4 5 6 7 8 9 10 $(".slideInner").s ...

  9. 超级详细 一听就会:利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)

    前言 作为一个前端工程师,无论公司是什么行业,无论你做什么端,基本都会遇到一个避不开的动画效果:循环轮播.做轮播并不难,市场上的轮播插件有很多,其中比较著名的是swiper,使用也非常简单.但轮播插件 ...

随机推荐

  1. Node.js执行存储过程

    直接上代码 var sql = require('mssql'); var config = {     user: 'sa',     password: '123456',     server: ...

  2. Node.js的高性能封装 Express.js

    Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用.Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了W ...

  3. jquery插件之表格隔行变色并鼠标滑过高亮显示

    该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现表格隔行变色,且鼠标移动在表格的某一行上时,该行能高亮显示.整体代码如 ...

  4. iOS开发中几个重要的方法

    iOS开发中几个重要的方法: 加载类到内存,程序刚启动的时候调用,调用在main函数之前 1.+(void)load{ } 初始化类,类第一次使用的时候调用一次 2.+(void)initialize ...

  5. ETL

     1.ETL的定义 ETL分别是“Extract”.“ Transform” .“Load”三个单词的首字母缩写也就是“抽取”.“转换”.“装载”,但我们日常往往简称其为数据抽取. ETL是BI/DW ...

  6. js 闭包的简单理解

    let a = function(){ var i=0; let b = function(){ i++; alert(i); } return b; } let c = a(); c(); 这段代码 ...

  7. Layer弹窗组件

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. Layer的开发手册和下载地址 http://layer ...

  8. 下载包含src,tgz,zip的文件

    下载哪一个文件? 含src的是源码文件,含tgz和zip的分别是linux和windows系统下jar包(java文件包) asc,md5,sha1是三种加密文件,可用于判断文件是否被修改. Ente ...

  9. 关闭SSMS的事务自动提交,改为手动提交

    SQLServer 2005-2008-2012使用Oracle时,默认是手动提交.而SQLServer2005中,默认是自动提交,但是SQLServer支持配置. 方法: 用SSMS连接到SQL S ...

  10. <script>元素的位置

    脚本元素会组织下载网页内容,浏览器可以同时下载多个组件,但一旦遇到一个外部脚本文本后,浏览器会停止进一步下载,知道这个脚本文件下载,解析并执行完毕.这会严重影响网页载入的总时间,特别是在网页在入时会发 ...