需求:web页面上需要一个动态飘窗,飘窗内容是一张图片,点击图片可以跳转到指定链接
本部分代码主要使用与网站网页 飘窗
废话不多说,上代码
jsp页面中:
<body>
<div id="ad111">
<a href="这里填写点击图片的跳转链接" target="_blank" title="这里是链接的标题">
<img style=" height:171px; width:155px" src="这里是图片的路径" />
</a>
</div>
<script>
var ad1 = new AdMove("ad111");
ad1.Run();
</script>
</body>
如果需要将图片换成文字列表的话只需要改jsp里面的内容即可,比如:
<!-- 飘窗 -->
<div id="ad111" style=" height:150px; width:155px;background-color: royalblue;">
<ul>
<h2 style="font-size: 12px; color: red;">单位宣传:</h2>
<s:iterator value="entityMap.enterpriseList">
<li>
<a href="这里填写点击标题要跳转的链接" style="color: red;" title="${name}" target="_blank">
<s:property value="name" />
</a>
</li>
</s:iterator>
</ul>
</div>
其他的代码不用动;
js部分:
//公共脚本: main.js
function addEvent(obj,evtType,func,cap)
{
cap=cap||false;
if(obj.addEventListener)
{
obj.addEventListener(evtType,func,cap);
return true;
}
else if(obj.attachEvent)
{if(cap)
{
obj.setCapture();
return true;
}
else
{
return obj.attachEvent("on" + evtType,func);
}
}
else
{return false;}
}
//获取滚动条位置
function getPageScroll()
{
var xScroll,yScroll;
if (self.pageXOffset)
{xScroll = self.pageXOffset;}
else if(document.documentElement && document.documentElement.scrollLeft)
{xScroll=document.documentElement.scrollLeft;}
else if (document.body)
{xScroll=document.body.scrollLeft;}
if (self.pageYOffset)
{yScroll = self.pageYOffset;}
else if (document.documentElement && document.documentElement.scrollTop)
{yScroll = document.documentElement.scrollTop;}
else if (document.body)
{yScroll = document.body.scrollTop;}
arrayPageScroll = new Array(xScroll,yScroll);
return arrayPageScroll;
}
//获取网页大小
function GetPageSize(){
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = document.body.scrollWidth;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight){
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
} else {
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if (self.innerHeight) {
windowWidth = self.innerWidth;
windowHeight = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) {
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
} else if (document.body) {
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}
if(yScroll < windowHeight){
pageHeight = windowHeight;
} else {
pageHeight = yScroll;
}
if(xScroll < windowWidth){
pageWidth = windowWidth;
} else {
pageWidth = xScroll;
}
arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
return arrayPageSize;
}
//脚本: 图片Move.js
var PicMove=new Object();
PicMove.IsInitialized=false;
PicMove.ScrollX=0;
PicMove.ScrollY=0;
PicMove.MoveWidth=0;
PicMove.MoveHeight=0;
PicMove.Resize=function(){
var winsize=GetPageSize();
PicMove.MoveWidth=winsize[2];
PicMove.MoveHeight=winsize[3];
PicMove.Scroll();}
PicMove.Scroll=function(){
var winscroll=getPageScroll();
PicMove.ScrollX=winscroll[0];
PicMove.ScrollY=winscroll[1];}
addEvent(window,"resize",PicMove.Resize);
addEvent(window,"scroll",PicMove.Scroll);
function AdMove(id){
if(!PicMove.IsInitialized){
PicMove.Resize();
PicMove.IsInitialized=true;
}
var obj=document.getElementById(id);
obj.style.position="absolute";
var W=PicMove.MoveWidth-obj.offsetWidth;
var H=PicMove.MoveHeight-obj.offsetHeight;
var x = W*Math.random(),y = H*Math.random();
var rad=(Math.random()+1)*Math.PI/6;
var kx=Math.sin(rad),ky=Math.cos(rad);
var dirx = (Math.random()<0.5?1:-1), diry = (Math.random()<0.5?1:-1);
var step = 1;
var interval;
this.SetLocation=function(vx,vy){x=vx;y=vy;}
this.SetDirection=function(vx,vy){dirx=vx;diry=vy;}
obj.CustomMethod=function(){
obj.style.left = (x + PicMove.ScrollX) + "px";
obj.style.top = (y + PicMove.ScrollY) + "px";
rad=(Math.random()+1)*Math.PI/6;
W=PicMove.MoveWidth-obj.offsetWidth;
H=PicMove.MoveHeight-obj.offsetHeight;
x = x + step*kx*dirx;
if (x < 0){dirx = 1;x = 0;kx=Math.sin(rad);ky=Math.cos(rad);}
if (x > W){dirx = -1;x = W;kx=Math.sin(rad);ky=Math.cos(rad);}
y = y + step*ky*diry;
if (y < 0){diry = 1;y = 0;kx=Math.sin(rad);ky=Math.cos(rad);}
if (y > H){diry = -1;y = H;kx=Math.sin(rad);ky=Math.cos(rad);}
}
this.Run=function(){
var delay = 20;
interval=setInterval(obj.CustomMethod,delay);
obj.onmouseover=function(){clearInterval(interval);}
obj.onmouseout=function(){interval=setInterval(obj.CustomMethod, delay);}
}
}
希望给大家带来帮助。