【实践】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,使用也非常简单.但轮播插件 ...
随机推荐
- Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解
1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹 ...
- jsp页面价格
<div class='flo_left'> <h2 class='red'>订货价¥${productEntity.agentsPrice}</h2> <h ...
- 【Go语言】连接数据库SQLite、MySQL、Oracle
本文目录 1.Go连接SQLite 1_1.SQLite推荐驱动 1_2.SQLite连接示例代码 2.Go连接MySQL 2_1.MySQL推荐驱动 2_2.MySQL连接示例代码 3.Go连接Or ...
- 好吧,CSS3 3D transform变换,不过如此!
一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里之外被其霸气震晕了 ...
- Oracle常用命令(持续更新)
--1.解锁用户 alter user 用户名 account unlock; --2.开启最小补充日志记录(执行的DML操作会被记录下来) alter database add supplemen ...
- struts2--convention-plugin--零配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "- ...
- js 检查是否为手机端
let isMobile = function(){ let userAgentInfo = navigator.userAgent; let Agents = new Array("And ...
- 第七周PSP
团队项目PSP 一:表格 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:20 10:34 20 58 68 分析与 ...
- ThinkPHP 3.2.3 简单后台模块开发(一)常用配置
一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需 ...
- request
social.Favorites.AddFavorite=function(angel) { a = $.extend(true, { type: "POST", url: &qu ...