JQ例子:旋转木马
使用JQ现实旋转木马超级简单,它看起来很复杂,动画好像很难实现,但其实不然。
效果图:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>旋转木马</title>
<style>
ul{
list-style: none;
margin: 0;
padding: 0;
}
a{
text-decoration: none;
color: #000;
}
.wrap{
width: 1200px;
margin: 0 auto;
}
.slide{
width: 1200px;
height: 500px;
/*background: pink;*/
position: relative;
}
.slide ul li{
position: absolute;
}
.slide ul li img{
width: 100%;
height: 100%;
}
.arrow a{
position: absolute;
text-align: center;
line-height: 76px;
top: 50%;
height: 76px;
width: 112px;
margin-top: -56px;
font-size: 40px;
font-weight: bold;
z-index: 100;
background: rgba(0,0,0,0.5);
color: #fff;
display: none;
}
.arrow a.pre{
left: 0;
}
.arrow a.next{
right: 0;
} </style>
</head>
<body> <div class="wrap">
<div class="slide">
<ul>
<li><img src="1.jpg" alt=""></li>
<li><img src="2.jpg" alt=""></li>
<li><img src="3.jpg" alt=""></li>
<li><img src="4.jpg" alt=""></li>
<li><img src="5.jpg" alt=""></li>
</ul>
<div class="arrow">
<a href="javascript:;" class="pre"><</a>
<a href="javascript:;" class="next">></a>
</div>
</div>
</div> <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script> $(function(){
/*避免多次点击出现bug,只能在点击后动画完后才能再点击*/
var status=true;
var timer=null;
/*核心,把会变化的值存起来,然后动态循环这些值,然后添加到对应索引值的li标签里*/
var json=[{
width:400,
height:200,
top:20,
left:50,
opacity:0.2,
z:2
},{
width:600,
height:300,
top:70,
left:0,
opacity:0.8,
z:3
},{
width:800,
height:400,
top:0,
left:200,
opacity:1,
z:4
},{
width:600,
height:300,
top:70,
left:600,
opacity:0.8,
z:3
},{
width:400,
height:200,
top:20,
left:800,
opacity:0.2,
z:2
}];
move();
clearInterval(timer);
timer=setInterval(function(){
move(true);
},2000);
$(".slide").hover(function(){
/*为什么添加stop(),为了多次触发不断触发BUG,所以每次触发前都
*把之前的动画停止掉
*/
$(".arrow a").stop().fadeIn();
clearInterval(timer);
},function(){
$(".arrow a").stop().fadeOut();
timer=setInterval(function(){
move(true);
},2000);
})
$(".arrow .pre").on("click",function(){
if(status){
status=false;
move(true)
}
});
$(".arrow .next").on("click",function(){
if(status){
status=false;
move(false)
}
}); function move(offOn){
/*一开始调用时没有传值,但会走动一下,所以要判断没传值时,不走if语句里的内容*/
if(offOn!=undefined){
if(offOn){
/*使用数组删除会返回删除值,而它是删除最后一个,所以就是
*返回最后一个值
,然后数组的前追加*/
json.unshift(json.pop());
}else{
/*这个同样原理,只是它是数组的后追加,把数组的第一个追加到最后*/
json.push(json.shift());
}
}
$.each(json,function(i,v){
/*历遍json,添加到对应索引的li标签,使用animate实现动画效果*/
$(".slide ul li").eq(i).css("z-index",v.z).stop().animate({"width":v.width,"opacity":v.opacity,"left":v.left,"top":v.top,"height":v.height},500,function(){
/*这里就是动画完后执行的回调函数*/
status=true;
});
})
}
}) </script>
</body>
</html>
这里json是核心,只要变化json里数组的排序,就可以改变固定的图片的宽、高、透明度、层级、位置,然后使用animate这个动画方法实现到动画的效果。
最近收集的轮播图插件:传送门
图片滑动插件:superSilde-传送门
这是一款图片滑动很齐全的插件,而且学习起来很简单,源码算是不难的那种,没有使用很难让人看的懂的模式。
JQ例子:旋转木马的更多相关文章
- [Linux] jq:命令行JSON处理工具
jq命令帮助我们很方便地在终端查看和处理json文件 jq命令的帮助信息: abby@abby:bgs$ jq -h jq - commandline JSON processor [version ...
- 写一个简单的JQ插件(例子)
虽然现在 vue angular react 当道啊但是那 JQ还是有一席之地很多很多的小单位啊.其实还会用到 我也放一个例子吧虽然我也不是很肯定有没有人写的比我更好啊但是我相信 我这个还是蛮实用的 ...
- jq,ajax,post例子。
jq post 例子 <script> $(function(){ $('#button').on('click', function(){ $.ajax({ type: 'POST', ...
- JavaScript--封装好的运动函数+旋转木马例子
封装好的运动函数: 1.能控制目标元素的多种属性 2.能自动获取元素的样式表: 3.获取样式函数兼容 4.能对于元素的多属性进行动画(缓动动画)修改 5.能区分透明度等没单位的属性和px属性的变化 a ...
- 【转】ASP.NET MVC框架下使用MVVM模式-KnockOutJS+JQ模板例子
KnockOutJS学习系列----(一) 好几个月没去写博客了,最近也是因为项目紧张,不过这个不是借口,J. 很多时候可能是因为事情一多,然后没法静下来心来去写点东西,学点东西. 也很抱歉,突然看到 ...
- jq实现图像旋转木马:轮焦点+关于控制+自己主动旋转木马
资源:http://www.ido321.com/862.html html代码: 1: <!DOCTYPE html> 2: <html lang="en"&g ...
- jq hover方法用法 例子
<script type="text/javascript"> $(function(){ $('.caseslist').hover(functi ...
- jq 全选与联动的小例子
function initcheckbox () { $(".j-jobs-power dl dt input").click(function () { if (this.che ...
- js与jq对数组的操作
一.数组处理 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长 ...
随机推荐
- mysql时间查看以及定时器相关操作
1.查看事件 show events select * from mysql.event 2.查看是否开启定时器 0:off:1:on 开启定时器:set global event_scheduler ...
- POJ 2175 Evacuation Plan 费用流 负圈定理
题目给了一个满足最大流的残量网络,判断是否费用最小. 如果残量网络中存在费用负圈,那么不是最优,在这个圈上增广,增广1的流量就行了. 1.SPFA中某个点入队超过n次,说明存在负环,但是这个点不一定在 ...
- 让图片在div 中居中的方法
方法一: 思路:利用text-align属性将图片水平居中,然后设置padding-top的值使其垂直居中. 结构如下: <div> <img src="images/tt ...
- python 引用和对象理解
今天浏览博客的时候看到这么一句话: python中变量名和对象是分离的:最开始的时候是看到这句话的时候没有反应过来.决定具体搞清楚一下python中变量与对象之间的细节.(其实我感觉应该说 引用和对象 ...
- [Linux技巧]固定Vmware下CentOS的IP
1. 首先取消使用Vmware动态主机设置服务 [Edit] -> [Virtual Network Editor ...] 打开面板,选中[VMnet8]. 如下,取消对[ Use local ...
- 1034. Head of a Gang (30)
分析: 考察并查集,注意中间合并时的时间的合并和人数的合并. #include <iostream> #include <stdio.h> #include <algor ...
- MYSQL基础--学习笔记
最近一段时间,系统的学习了下mysql相关知识,当然都是比较基础的,现在贴出来,以供参考备忘--帅帅的小猪猪 创建用户:CREATE USER 'sampadm'@'localhost' IDENTI ...
- Linux下的网络远程安装
Linux下的网络远程安装 1.用RHEL6.5光盘安装第一台服务器 2.在第一台服务器上配置YUM服务器 先创建一个挂载 #mount #umount /dev/cdrom #mkdir /mnt/ ...
- iOS 设置tableview头部不可以向下拉动..
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGPoint point = scrollView.contentOffset; i ...
- git 使用笔记
git操作: git checkout 分支名称 // 切换分支git branch -a // 查看分支信息和当前分支 git pull // 将服务器所有代码下载到本地git merge orig ...