12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 3867|回复: 15
打印 上一主题 下一主题

[经验分享] JavaScript伪3D轮播图片幻灯切换代码

[复制链接]
   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-12-30 19:30:44 |只看该作者 |倒序浏览
烈79火77网(LieHuo77.Net)教07程 JavaScript伪3D轮播图片幻灯切换代码,IE6下表现不尽完美,其它浏览器倒没什么大碍。对于IE6看到的斑点,我只能表示很无奈。。。本从水平至此,期待交流~
  演示效果:
<html>

<head>

<title>JavaScript伪3D轮播图片幻灯切换代码</title>

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

<style>

html {background:#000}

body, ul {margin:0;padding:0}

li {list-style:none}

img {border:none;display:block}

.slide-wp {

width: 500px;

height: 300px;

overflow: hidden;

position: absolute;

left: 50%;

top: 50%;

margin-left: -250px;

margin-top: -150px;

}

.nav-wp {

position: absolute;

background: #ccc;

top: 50%;

margin-top: 170px;

left: 50%;

margin-left: -100px;

border-radius: 4px;

-moz-border-radius: 4px;

-webkit-border-radius: 4px;

padding: 0 20px 6px 10px;

_padding: 0 20px 2px 10px;

}

.nav li {

float: left;

margin-left: 10px;

font-size: 20px;

font-weight: bold;

font-family: tahoma;

color: #22739e;

cursor: pointer;

height: 22px;

}

.nav li.cur{color: #ff7a00}

.next {

position:absolute;

top: 0;

left: 160px;

padding: 4px 8px;

color: #ff7a00;

background: #ccc;

height: 20px;

border-radius: 4px;

-moz-border-radius: 4px;

-webkit-border-radius: 4px;

cursor: pointer;

}

</style>

</head>

<body>

<h2 style="color:#fff">对于使用IE6的同学看到的斑点,我只能表示很无奈。。。</h2>

<div id="slider" class="slide-wp">

<ul>

<li><a href="/" target="_blank"><img src="http://www.veryhuo.com/uploads/common/images/p1.jpg"  alt="" /></a></li>

<li><a href="/" target="_blank"><img src="http://www.veryhuo.com/uploads/common/images/p2.jpg"  alt="" /></a></li>

<li><a href="/" target="_blank"><img src="http://www.veryhuo.com/uploads/common/images/p3.jpg"  alt="" /></a></li>

<li><a href="/" target="_blank"><img src="http://www.veryhuo.com/uploads/common/images/p4.jpg"  alt="" /></a></li>

<li><a href="/" target="_blank"><img src="http://www.veryhuo.com/uploads/common/images/p5.jpg"  alt="" /></a></li>

</ul>

</div>

<div class="nav-wp">

<ul id="nav" class="nav">

<li onclick="mySlider.pos(0)">●</li>

<li onclick="mySlider.pos(1)">●</li>

<li onclick="mySlider.pos(2)">●</li>

<li onclick="mySlider.pos(3)">●</li>

<li onclick="mySlider.pos(4)">●</li>

</ul>

<a class="next" onclick="mySlider.move()">next</a>

</div>

<script type="text/javascript">

var HR = {

$ : function(i) {return document.getElementById(i)},

$$ : function(c, p) {return p.getElementsByTagName(c)},

ce : function(i, t) {

var o = document.createElement(i);

t.appendChild(o);

return o;

}

};

HR.slider3D = function () {

var init = function (o) {

this.o = o;

var wp = HR.$(o.id), ul = HR.$$('ul', wp)[0], li = this.li = HR.$$('li', ul);

this.l = li.length;

this.w = wp.offsetWidth;

this.h = wp.offsetHeight;

this.at = o.auto? o.auto : 4;

var con = this.con = HR.ce('div', wp);

con.style.cssText = 'position:absolute;left:0;top:0;width:'+this.w+'px;height:'+this.h+'px';

ul.style['display'] = 'none';

this.a1 = HR.ce('a', con);

this.a1.style.cssText = 'position:absolute;left:0;top:0;overflow:hidden';

this.a2 = HR.ce('a', con);

this.a2.style.cssText = 'position:absolute;top:0;right:0;overflow:hidden';

this.a1.innerHTML = this.a2.innerHTML = '<img alt="" />';

this.img = HR.$$('img', ul);

this.s = o.maskSize ? o.maskSize : 5;

this.mask11 = HR.ce('span', this.a1);

this.mask12 = HR.ce('span', this.a1);

this.mask21 = HR.ce('span', this.a2);

this.mask22 = HR.ce('span', this.a2);

this.pos(0);

}

init.prototype = {

pos : function (i) {

clearInterval(this.li.a); clearInterval(this.au); this.au = 0; this.cur = i;

var navli = HR.$$('li', HR.$(this.o.navId));

for (var j=0; j<navli.length; j++) {

navli[j].className = i == j ? 'cur' : '';

}

var img1 = HR.$$('img', this.a1)[0], img2 = HR.$$('img', this.a2)[0], _this = this;

img1.src = i==0 ? this.img[this.l-1].src : this.img[i-1].src;

img1.width = this.w;

img2.src = this.img.src;

img2.width = 0;

img1.height = img2.height = this.h;

this.mask11.style.cssText = 'position:absolute;left:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black transparent transparent black;border-style:solid dashed dashed solid;border-width:0 '+this.w/2+'px';

this.mask12.style.cssText = 'position:absolute;left:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent transparent black black;border-style:dashed dashed solid solid;border-width:0 '+this.w/2+'px';

this.mask21.style.cssText = 'position:absolute;right:0;top:0;font-size:0;overflow:hidden;width:0;height:0;border-color:black black transparent transparent;border-style:solid solid dashed dashed;border-width:0px';

this.mask22.style.cssText = 'position:absolute;right:0;bottom:0;font-size:0;overflow:hidden;width:0;height:0;border-color:transparent black black transparent;border-style:dashed solid solid dashed;border-width:0px';

this.li.a = setInterval(function(){_this.anim(i)}, 20);

},

anim : function (i) {

var w1 = HR.$$('img', this.a1)[0].width, w2  = HR.$$('img', this.a2)[0].width;

if (w2 == this.w) {

clearInterval(this.li.a);

HR.$$('img', this.a1)[0].width = 0;

HR.$$('img', this.a2)[0].width = this.w;

this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = '0px';

this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = this.h/this.s + 'px';

this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = this.w/2 + 'px';

this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = '0px';

}else {

HR.$$('img', this.a1)[0].width -= Math.ceil((this.w-w2)*.13);

HR.$$('img', this.a2)[0].width += Math.ceil((this.w-w2)*.13);

this.mask11.style.borderLeftWidth = this.mask11.style.borderRightWidth = this.mask12.style.borderLeftWidth = this.mask12.style.borderRightWidth = HR.$$('img', this.a1)[0].width/2 + 'px';

this.mask11.style.borderTopWidth = this.mask11.style.borderBottomWidth = this.mask12.style.borderTopWidth = this.mask12.style.borderBottomWidth = HR.$$('img', this.a2)[0].width*this.h/(this.s*this.w) + 'px';

this.mask21.style.borderLeftWidth = this.mask21.style.borderRightWidth = this.mask22.style.borderLeftWidth = this.mask22.style.borderRightWidth = HR.$$('img', this.a2)[0].width/2 + 'px';

this.mask21.style.borderTopWidth = this.mask21.style.borderBottomWidth = this.mask22.style.borderTopWidth = this.mask22.style.borderBottomWidth = this.h/this.s - HR.$$('img', this.a2)[0].width*this.h/(this.s*this.w) + 'px';

if (!this.au) this.auto();

}

},

auto : function () {

var _this = this;

this.au = setInterval(function(){_this.move()}, this.at*1000);

},

move : function () {

var n = this.cur==this.l-1 ? 0 : this.cur+1;

this.pos(n);

}

}

return init;

}();

var mySlider = new HR.slider3D({

id: 'slider',

maskSize: 6,

navId: 'nav',

auto: 4

})</script></body>

</html><br /><center>如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码:<a href='http://www.veryhuo.com/' target='_blank'>http://www.veryhuo.com/</a></center>


文章源自:烈火网,原文:http://www.veryhuo.com/a/view/28450.html



分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-1-6 20:14:25 |只看该作者

   
   
   
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-5-18 23:19:14 |只看该作者
谢谢楼主,真是太实用了
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-5-29 23:19:32 |只看该作者
俺是新人,这厢有礼了!
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-6-27 23:23:05 |只看该作者
谢谢楼主,真是太实用了
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-6-28 23:25:20 |只看该作者
都闪开,介个帖子,偶来顶
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-6-29 23:22:38 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-7-4 23:23:59 |只看该作者
好可爱的字,学习了
回复

使用道具 举报

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

9#
发表于 2012-8-10 00:04:08 |只看该作者
加精、加亮滴铁子,尤其要多丁页丁页
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-9-3 01:21:08 |只看该作者
加精、加亮滴铁子,尤其要多丁页丁页
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-14 15:39 , Processed in 0.092726 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部