寻求一 HTML(用CSS也可以)环形或圆形图片滚动代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻求一 HTML(用CSS也可以)环形或圆形图片滚动代码相关的知识,希望对你有一定的参考价值。
寻求一 html(用CSS也可以)图片滚动代码 环形或圆形图片滚动,可以加超级连接。鼠标停在图片上面时滚动停止,同时图片可以稍微变大些。麻烦哪位大侠给发个!谢谢。
不知道这合不合你意,,不过你这个要求,,可以搜索一下一些JQUERY效果,,<html><head>
<title>图片环形滚动</title>
<style>
html,bodybackground:#990000;margin:0px;
#pics_3d
position:absolute;
height:300px;
width:100%;
background:#000;
top:120px;
border-bottom:20px solid #420000;
border-top:20px solid #420000;
img
position:absolute;
background:#eee;
left:0;top:0;
border:5px solid #00CCFF;
</style>
</head>
<body>
<div id="pics_3d">
<img src="/jscss/demoimg/wall5.jpg" />
<img src="/jscss/demoimg/wall6.jpg" />
<img src="/jscss/demoimg/wall7.jpg" />
</div>
</body>
<script >
Item=function(UI)
this.angle=0;
this.UI=UI;
this.update();
;
Item.ini=
axle_w:400,
axle_h:10,
cen_x:500,
cen_y:260
;
Item.prototype.update=function()
var J=this.UI.style,C=Item.ini,W=C.axle_w,H=C.axle_h,X=C.cen_x,Y=C.cen_y;
var angle=this.angle/180*Math.PI;
var left=Math.cos(angle)*W+X;
var top=Math.sin(angle)*H+Y;
var A=this.angle>270?this.angle-360:this.angle;
var size=360-Math.abs(90-A)*3;
this.UI.width=Math.max(size,120);
var opacity=Math.max(10,size-180);
J.filter='alpha(opacity='+opacity+')';
J.opacity=opacity/100;
J.left=(left-this.UI.offsetWidth/2)+'px';
top=(top-this.UI.offsetHeight)+'px';
J.top=top;
J.zIndex=parseInt(size*100);
;
Nav_3D=
items:[],
dir:1,
index:0,
hover:false,
add:function(item)
this.items.push(item);
item.index=this.items.length-1;
item.UI.onclick=function ()
var J=item.angle,M=Nav_3D;
if(M.uping)return;
if(J==90)
return alert('goto new url..')
;
M.wheel_90(item);
M.index=item.index;
;
item.UI.onmouseover=function ()
if(item.angle==90)
Nav_3D.hover=true;
clearTimeout(Nav_3D.autoTimer);
;
;
item.UI.onmouseout=function ()
if(item.angle==90)
Nav_3D.hover=false;
Nav_3D.auto();
;
;
return this;
,
wheel_90:function(hot)
if(this.uping)return;
this.uping=true;
var This=this;
this.timer=setInterval(function ()
clearTimeout(This.autoTimer);
var A=hot.angle;
This.dir=A<270&&A>90?-1:1;
if(A==90)
clearInterval(This.timer);
This.uping=false;
This.onEnd(hot);
if(A>270)A-=360;
var set=Math.ceil(Math.abs((90-A)*0.1));
for (var i=0;i<This.items.length;i++ )
var J=This.items[i];
J.angle+= (set*This.dir);
J.update();
if(J.angle>360)J.angle-=360;
if(J.angle<0)J.angle +=360;
;
,15);
,
ready:function()
var J=this.items,step=parseInt(360/J.length);
for (var i=0;i<J.length;i++) J[i].angle=i*step+90;
this.wheel_90(this.items[0]);
Nav_3D.prevHot=this.items[0].UI;
Nav_3D.setHot();
,
setHot:function(isHot)
if(!this.prevHot)return;
with(this.prevHot.style)
borderColor=isHot!==false?'#CC0000':'#00CCFF';
cursor=isHot!==false?'default':"pointer";
;
return this;
,
auto:function()
this.index--;
if(this.index<0)this.index=this.items.length-1;
var J=this.items[this.index];
this.setHot(false).prevHot=J.UI;
this.setHot();
this.wheel_90(J);
,
onEnd:function(hot)
if(this.hover)
return setTimeout(function()Nav_3D.onEnd();,100);
this.autoTimer=setTimeout(function()Nav_3D.auto();,1500);
;
var imgs=document.getElementById("pics_3d").getElementsByTagName("IMG");
for (var i=0;i<imgs.length;i++ )
Nav_3D.add(new Item(imgs[i]))
Nav_3D.ready();
</script>
</html>追问
有没有简单一点?
参考技术A我这有个,发给你看看吧,是jquery做的,看看行不行
以上是关于寻求一 HTML(用CSS也可以)环形或圆形图片滚动代码的主要内容,如果未能解决你的问题,请参考以下文章
web实现环形旋转圆形弧形querySelectorAllquerySelectorclientWidthsincosPI