自己写的jquery幻灯片、有兴趣的进来看一下、顺便有点问题求大牛指点

黑白丶Love 2013-04-07 09:12:18
如题、自己写勒一个jquery的幻灯片、
播放的时候 都没问题 但是有个问题是层级的显示
就是z-index的设定、

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
body {
padding: 0;
margin: 0;
background: #aaa;
}
a {
text-decoration: none;
}
img {
border: none;
}
/* 父级元素的样式 */
#wrap{
width: 960px;
height: 400px;
margin: 100px auto;
position: relative;
}


</style>
<script type="text/javascript" src="Jquery.js"></script>
<script type="text/javascript">
//页面加载
$(function(){


mySlide('#wrap',['images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg','images/5.jpg']);



});

var newInner = [];
/**
* 轮播主函数
* @param wrap [Str] 外层元素
* @param arr [Arr] 一组图片
*/
function mySlide(wrap,arr)
{
var wrap = $(wrap);
// 遍历数组、分别创建数组里的每一个元素
for (var i = 0; i < arr.length; i++) {
wrap.append($("<img src="+arr[i]+" class='inner'>"));
}
// 获得子元素的集合
var inner = $('.inner');
for (var i = 0; i < inner.length; i++) {
newInner.push(inner[i]);
}
// 设置定位
setPos(wrap,inner);
// 设置按钮
setBut(wrap);
inner.bind('click',beClick);

}
//判断是否是第一次加载
var firstKey = true;
/**
* 设置子元素的定位
* @param wrap [Obj] 外层
* @param inner [Obj] 子元素的集合
*/
function setPos(wrap,inner,index)
{
var index = index || 0;
// 获得外层的宽高
var wrapW = wrap.width();
var wrapH = wrap.height();
if(firstKey)
{
firstKey = false;//关闭开关
for (var i = 0; i < inner.length; i++) {
$(inner[i]).css
({
'width':0,
'height':0,
'position': 'absolute',
'left':wrapW/2+'px',
'top':wrapH*3/4+'px',
'border':'1px solid #ccc'
});
};
}
// 设置一下显示的先后顺序
$(inner[0]).css('z-index','1');
$(inner[1]).css('z-index','11');
$(inner[2]).css('z-index','111');
$(inner[3]).css('z-index','11');
$(inner[4]).css('z-index','1');

$(inner[0]).animate
({
'width':Math.floor(wrapW*40/100)+'px',
'height':Math.floor(wrapH*45/100)+'px',
'left':Math.floor(wrapW*-8/100)+'px',
'top':Math.floor((wrapH*80/100)/2)+'px',
'z-index':1
},500);
$(inner[1]).animate
({
'width':Math.floor(wrapW*60/100)+'px',
'height':Math.floor(wrapH*65/100)+'px',
'left':Math.floor(wrapW*0/100)+'px',
'top':Math.floor((wrapH*50/100)/2)+'px',
'z-index':11
},500);
$(inner[2]).animate
({
'width':Math.floor(wrapW*80/100)+'px',
'height':Math.floor(wrapH*85/100)+'px',
'left':Math.floor(wrapW*10/100)+'px',
'top':Math.floor((wrapH*20/100)/2)+'px',
'z-index':111
},500);
$(inner[3]).animate
({
'width':Math.floor(wrapW*60/100)+'px',
'height':Math.floor(wrapH*65/100)+'px',
'left':Math.floor(wrapW*40/100)+'px',
'top':Math.floor((wrapH*50/100)/2)+'px',
'z-index':11
},500);
$(inner[4]).animate
({
'width':Math.floor(wrapW*40/100)+'px',
'height':Math.floor(wrapH*45/100)+'px',
'left':Math.floor(wrapW*108/100)-Math.floor(wrapW*40/100)+'px',
'top':Math.floor((wrapH*80/100)/2)+'px',
'z-index':1
},500);
setTimeout(function(){
clickKey = true;
},600);
}
/**
* 设置切换按钮
* @param wrap [Obj] 外层元素
*/
function setBut(wrap)
{
// 获得外层的宽高
var wrapW = wrap.width();
var wrapH = wrap.height();
//创建并添加元素
wrap.append($("<div class='toleft'>"));
wrap.append($("<div class='toright'>"));
$('.toleft').css
({
'width':46+'px',
'height':62+'px',
'background':'url(images/but.png) no-repeat 0 0',
'cursor':'pointer',
'position':'absolute',
'top':Math.floor((wrapH*110/100)/2)+'px',
'left':Math.floor(wrapW*-8/100)-60+'px',
})
$('.toright').css
({
'width':46+'px',
'height':62+'px',
'background':'url(images/but.png) no-repeat -46px 0',
'cursor':'pointer',
'position':'absolute',
'top':Math.floor((wrapH*110/100)/2)+'px',
'left':Math.floor(wrapW*103/100)+60+'px',
})
}
// 判定是否连点
var clickKey = true;
/**
* 元素被点击
*/
function beClick()
{
if (clickKey)
{
clickKey = false;
var index = $(this).index();
var arr = [];
var len = newInner.length;
for(var i=0;i<len;i++)
{
arr.push(newInner[(index+i+Math.ceil(len/2))%len]);
}
var wrap = $('#wrap')
setPos(wrap,arr,index);
};
}
</script>
</head>
<body onselectstart="return false" ondragstart="return false" >
<!--外层-->
<div id="wrap">
</div>
</body>
</html>


jquery的库 我是用的1.7.2的 这个大神门应该都有、
里面的图片的路径 就是文件当前目录下的 images下的图片 1.jpg 2.jpg .....
在点击切换的时候 层级显示会有点小别扭、求解决的方法、
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2013-04-07
  • 打赏
  • 举报
回复
提供demo与图片呀 不建议纯js动画,基本的html还是要写一下,否则太不利seo
黑白丶Love 2013-04-07
  • 打赏
  • 举报
回复
对了 再说一句、图片的大小尺寸是 960*400的 旁边有两个button按钮的图片 那个先不用管、
scscms太阳光 2013-04-07
  • 打赏
  • 举报
回复
$(inner[0]).css('z-index','1'); ...... $(inner[4]).css('z-index','1'); 问题出在这里,当这两张图片在同一侧时,你难保证正确显示谁在上谁在下
黑白丶Love 2013-04-07
  • 打赏
  • 举报
回复

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧