在做这个之前我已经模仿了一遍大神的轮播动画做了一次其切换模式就是一张图片隐藏另一张图片显示过渡效果是渐入(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. text-indent:-9999px 字体隐藏问题

    为什么要字体隐藏? 通常为了传达更好的视觉效果,我们常用图片替代掉字体.但是为了html语义化,常常要给内容模块加上一些标题来让页面更有意义,在抛开css裸奔的情况下也能很顺利的汲取到页面信息.为此我 ...

  2. ZK 父窗口与子窗口消息交互

    父窗口代码: 前台(test.zul) <?page title="" contentType="text/html;charset=UTF-8"?> ...

  3. bootstrap学习笔记之四(javascript插件)

    下面展现四个插件的用法,一般插件的功能可以用两种方法实现,一种是引入bootstrap.js后,通过添加data属性实现,另一种则是通过js代码是实现. 第一个插件:下拉菜单的实现 第一种方法:dat ...

  4. sql 日期格式化

    sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. 主要方法还是通过日期格式的转换来获取.如下 ...

  5. GROUP BY 與 Null 值

    若群組資料行包含了 Null 值,該資料列將變成結果中的一個群組.若群組資料行內包含了多個 Null 值,Null 值將放入單一群組內.此行為定義於 SQL-2003 標準之中. Product 資料 ...

  6. java环境搭建系列:JDK从下载安装到简单使用

    最近,问的比较多的问题居然是jdk的问题,对于新手来说这确实有点难度,毕竟一个人经常上网浏览新闻和观看视频的人,一下子开始一门编程语言的环境搭建.这中间需要一个慢慢适应的过程.回想当初我在这个阶段也很 ...

  7. A trip through the Graphics Pipeline 2011_08_Pixel processing – “fork phase”

    In this part, I’ll be dealing with the first half of pixel processing: dispatch and actual pixel sha ...

  8. 我自己的Javascript 库,封装了一些常用函数 Kingwell.js

    我自己的Javascript 库,封装了一些常用函数 Kingwell.js 博客分类: Javascript javascript 库javascript库  现在Javascript库海量,流行的 ...

  9. Yii源码阅读笔记(二十六)

    Application 类中设置路径的方法和调用ServiceLocator(服务定位器)加载运行时的组件的方法注释: /** * Handles the specified request. * 处 ...

  10. Android 网络通信框架Volley简介

    1.1. Volley引入的背景在以前,我们可能面临如下很多麻烦的问题. 比如以前从网上下载图片的步骤可能是这样的流程: 在ListAdapter#getView()里开始图像的读取. 通过Async ...