随机漂浮图片JS:

//公共脚本文件 main.js
function addEvent(obj,evtType,func,cap){
cap=cap||false;
if(obj.addEventListener){
obj.addEventListener(evtType,func,cap);
return true;
}else if(cap){
if(document.all){
obj.setCapture();
}else{
document.captureEvents(Event.MOUSEMOVE);
}
return true;
}else if(obj.attachEvent){
return obj.attachEvent("on" + evtType,func);
}else{
return false;
}
}
function removeEvent(obj,evtType,func,cap){
cap=cap||false;
if(obj.removeEventListener){
obj.removeEventListener(evtType,func,cap);
return true;
}else if(cap){
if(document.all){
obj.releaseCapture();
}else{
document.releaseEvents(obj.MOUSEMOVE);
}
return true;
}else if(obj.detachEvent){
return obj.detachEvent("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;
} //广告脚本文件 AdMove.js
/*
例子
<div id="Div2">
***** content ******
</div>
var ad=new AdMove("Div2");
ad.Run();
*/
var AdMoveConfig=new Object();
AdMoveConfig.IsInitialized=false;
AdMoveConfig.AdCount=0;
AdMoveConfig.ScrollX=0;
AdMoveConfig.ScrollY=0;
AdMoveConfig.MoveWidth=0;
AdMoveConfig.MoveHeight=0;
AdMoveConfig.Resize=function(){
var winsize=GetPageSize();
AdMoveConfig.MoveWidth=winsize[2];
AdMoveConfig.MoveHeight=winsize[3];
AdMoveConfig.Scroll();
}
AdMoveConfig.Scroll=function(){
var winscroll=getPageScroll();
AdMoveConfig.ScrollX=winscroll[0];
AdMoveConfig.ScrollY=winscroll[1];
}
addEvent(window,"resize",AdMoveConfig.Resize);
addEvent(window,"scroll",AdMoveConfig.Scroll);
function AdMove(id,addCloseButton){
if(!AdMoveConfig.IsInitialized){
AdMoveConfig.Resize();
AdMoveConfig.IsInitialized=true;
}
AdMoveConfig.AdCount++;
var obj=document.getElementById(id);
obj.style.position="absolute";
var W=AdMoveConfig.MoveWidth-obj.offsetWidth;
var H=AdMoveConfig.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;
if(addCloseButton){
/*var closebtn=document.createElement("div");
obj.appendChild(closebtn);
closebtn.style.position="absolute";
closebtn.style.top="1px";
closebtn.style.left=(obj.offsetWidth-28) + "px";
closebtn.style.width="24px";
closebtn.style.height="12px";
closebtn.style.borderStyle="solid";
closebtn.style.borderWidth="1px";
closebtn.style.borderColor="#000";
closebtn.style.backgroundColor="#fff";
closebtn.style.fontSize="12px";
closebtn.style.color="#000";
closebtn.style.cursor="pointer";
closebtn.innerHTML="关闭";
closebtn.onclick=function(){
clearInterval(interval);
closebtn.onclick=null;
obj.onmouseover=null;
obj.onmouseout=null;
obj.MoveHandler=null;
AdMoveConfig.AdCount--;
if(AdMoveConfig.AdCount<=0){
removeEvent(window,"resize",AdMoveConfig.Resize);
removeEvent(window,"scroll",AdMoveConfig.Scroll);
AdMoveConfig.Resize=null;
AdMoveConfig.Scroll=null;
AdMoveConfig=null;
}
obj.removeChild(closebtn);
obj.style.overflow="hidden";
setTimeout(function(){CloseIt(obj);},0);
}*/
/*var movebtn=document.createElement("div");
obj.appendChild(movebtn);
movebtn.style.position="absolute";
movebtn.style.top="1px";
movebtn.style.left=(obj.offsetWidth-56) + "px";
movebtn.style.width="24px";
movebtn.style.height="12px";
movebtn.style.borderStyle="solid";
movebtn.style.borderWidth="1px";
movebtn.style.borderColor="#000";
movebtn.style.backgroundColor="#fff";
movebtn.style.fontSize="12px";
movebtn.style.color="#000";
movebtn.style.cursor="pointer";
movebtn.innerHTML="移动";
function BoxMouseMove(e){
if(movebtn.moveflag){
var mx,my;
if(e){
mx=e.pageX;
my=e.pageY;
}else{
mx=event.x;
my=event.y;
}
x=mx-movebtn.lastleft;
y=my-movebtn.lasttop;
movebtn.parentNode.style.left = x + "px";
movebtn.parentNode.style.top = y + "px";
}
}
movebtn.onmousemove=function(e){
BoxMouseMove(e);
}
movebtn.onmousedown=function(e){
var mx,my;
if(e){
mx=e.pageX;
my=e.pageY;
}else{
mx=event.x;
my=event.y;
}
addEvent(movebtn,"mousemove",BoxMouseMove,true);
movebtn.lastleft=mx-parseInt(movebtn.parentNode.offsetLeft);
movebtn.lasttop=my-parseInt(movebtn.parentNode.offsetTop);
movebtn.moveflag=true;
movebtn.style.cursor="move";
document.onmousemove=movebtn.onmousemove;
document.onmouseup=movebtn.onmouseup;
}
movebtn.onmouseup=function(){
movebtn.moveflag=false;
removeEvent(movebtn,"mousemove",BoxMouseMove,true);
movebtn.style.cursor="pointer";
document.onmousemove=null;
document.onmouseup=null;
}*/
}
obj.MoveHandler=function(){
obj.style.left = (x + AdMoveConfig.ScrollX) + "px";
obj.style.top = (y + AdMoveConfig.ScrollY) + "px";
rad=(Math.random()+1)*Math.PI/6;
W=AdMoveConfig.MoveWidth-obj.offsetWidth;
H=AdMoveConfig.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.SetLocation=function(vx,vy){x=vx;y=vy;}
this.SetDirection=function(vx,vy){dirx=vx;diry=vy;}
this.Run=function(){
var delay = 10;
interval=setInterval(obj.MoveHandler,delay);
obj.onmouseover=function(){clearInterval(interval);document.onmousemove = mouseMove;}
obj.onmouseout=function(){interval=setInterval(obj.MoveHandler, delay);document.onmousemove = null;}
}
}
function CloseIt(obj){
var w=parseInt(obj.style.width);
var h=parseInt(obj.style.height);
if(isNaN(w))w=3;
if(isNaN(h))h=3;
w-=3;
h-=3;
if(w<=0&&h<=0){
obj.style.display="none";
return;
}
if(w>0){
obj.style.width=w + "px";
}
if(h>0){
obj.style.height=h + "px";
}
setTimeout(function(){CloseIt(obj);},2);
} //判断鼠标点击的范围,确定是超连接还是关闭图片
function isURL()
{
var image=document.getElementById('showImg');
var imgX=getLeft(image);
var imgY=getTop(image);
var mouseX=event.clientX;
var mouseY=event.clientY; if( ( mouseX>(imgX+$("#showImg").attr("width")-20) && (mouseX<(imgX+$("#showImg").attr("width"))) &&
( mouseY>imgY) && (mouseY<(imgY+20)))
)
{
var imgUrl=document.getElementById('imgUrl');
imgUrl.target='_self';
imgUrl.href='#';
var div=document.getElementById('img');
div.style.display="none";
}
} function getTop(e)
{
var offset=e.offsetTop;
if(e.offsetParent!=null)
offset+=getTop(e.offsetParent);
return offset;
}
//获取图片的横坐标
function getLeft(e)
{
var offset=e.offsetLeft;
if(e.offsetParent!=null)
offset+=getLeft(e.offsetParent);
return offset;
}
function mouseMove(ev){
ev = ev || window.event;
var img=document.getElementById('showImg');
var imgX=getLeft(img);
var imgY=getTop(img);
var mousePos = mouseCoords(ev);
var mouseX =mousePos.x;
var mouseY =mousePos.y; //window.status="X:"+mouseX+" Y:"+mouseY+" imgX:"+imgX+" imgX:"+imgY;
//当鼠标位置进入到关闭区域的时候,改变鼠标样式
if( ( mouseX>(imgX+$("#showImg").attr("width")-20) && (mouseX<(imgX+$("#showImg").attr("width"))) &&
( mouseY>imgY) && (mouseY<(imgY+20)))
)
{
document.getElementById('showImg').style.cursor='hand';
//document.getElementById('showImg').alt='关闭';
$("#showImg").attr("title","关闭"); }
else
{
document.getElementById('showImg').style.cursor='default';
//document.getElementById('showImg').alt='';
$("#showImg").attr("title","");
}
}
function mouseCoords(ev)
{
if(ev.pageX || ev.pageY)
{
return {x:ev.pageX, y:ev.pageY};
}
return {
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y:ev.clientY + document.body.scrollTop - document.body.clientTop
};
}

漂浮图片HTML:

<div id="img" style="z-index: 10; position: absolute; margin: 0px; width: 180px;
height: 100px; top: 157px; left: 180px">
<div>
<a id="imgUrl" href="<%= strUrls%>" target="_blank">
<img id="showImg" src="../windowPic/<%= filePath%>" width="180" height="100" border="0"
name="pic" onclick="isURL();" style="filter: revealtrans(duration=2.0,transition=19)">
</a>
</div>
<iframe src="javascript:false" style="z-index: -1; position: absolute; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);
width: 180px; height: 100px; visibility: inherit; top: 0px; left: 0px; border: 0px;">
</iframe>
</div>

参考:http://www.sheitc.gov.cn/

改动:注释了“移动”、“关闭”功能,将右上角20×20像素设置成关闭按钮区域,鼠标到该区域自动出"关闭"title,点击则关闭随机浮动图片。(用到了jQuery)

使用iframe使浮动图片显示在顶层。

使用示例:

<script type="text/javascript">
var ad1=new AdMove("img",true);
ad1.Run();
</script>

右侧上下浮动窗口JS:

var lastScrollY=0;
function heartBeat(){
var diffY;
if (document.documentElement && document.documentElement.scrollTop){
diffY = document.documentElement.scrollTop;
}
else if (document.body){
diffY = document.body.scrollTop;
}else{
/*Netscape stuff*/
}
percent=.1*(diffY-lastScrollY);
if(percent>0)percent=Math.ceil(percent);
else percent=Math.floor(percent);
document.getElementById("track").style.top=parseInt(document.getElementById("track").style.top)+percent+"px";
lastScrollY=lastScrollY+percent;
} window.setInterval(heartBeat,40);

右侧浮动窗口HTML就不贴出了,就是一DIV,ID为“track”,基本CSS为“z-index: 6; position: absolute; height: 150px; _width: 210px;right: 0px; top: 242px;”。

随机漂浮图片、右侧上下浮动快捷栏JS的更多相关文章

  1. JS实现的随机显示图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  2. 随机获取图片的api接口

    http://lorempixel.com/1600/900 https://unsplash.it/1600/900?random(国内加载略慢) https://uploadbeta.com/ap ...

  3. php 随机显示图片的函数(实例分享)

    转自:http://www.jbxue.com/article/12695.html 发布:thatboy   来源:Net     [大 中 小] 本文分享一个php实现的随机显示图片的函数,可以将 ...

  4. php 随机显示图片的函数(实例)

    转自:http://www.jbxue.com/article/12695.html   发布:thatboy   来源:Net     [大 中 小] 本文分享一个php实现的随机显示图片的函数,可 ...

  5. 用javascript预加载图片、css、js的方法研究

    预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提 ...

  6. wp加载本地HTML(附带图片,CSS,JS)

    wp加载本地HTML(附带图片,CSS,JS) Windows Phone:Load Local HTML with Img,Css,Js by 唐小崇 http://www.cnblogs.com/ ...

  7. PHP生成随机水印图片

    基于PHP的GD图形库,自己生成一张图片.仅限初识GD库,实例学习. 一.需求 网站的布局用到了类似慕课网课程列表的风格,每一个课程是一个banner图,图下面是标题加简介.因为课程的数量较大没有为所 ...

  8. jq图片展示插件highslide.js简单dom

    今天用用了一款图片展示插件highslide.js,感觉用起来很是舒畅,几乎不用怎么写代码,只需要知道如何写参数就行了. 那么这么牛叉的插件我们该如何用哪,下面我就跟大家讲解一下. 一.引入   首先 ...

  9. 外贸建站之图片预加载JS代码分享

    外贸建站之图片预加载JS代码分享 function preloadimg() { setTimeout(function() { new Image().src = "images/2017 ...

随机推荐

  1. HTML学习总结(作业五)

    1:HTML简介 超文本标记语言,标准通用标记语言下的一个应用.是 网页制作必备的编程语言“超文本”就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素.超文本标记语言的结构包括“头”部分(英语 ...

  2. IPC,Hz(Hertz) and Clock Speed

    How do we measure a CPU's work? Whether it's fast or not depends on three factors: IPC, Hz, Clock sp ...

  3. Docker 启动不了容器的问题

    今天在运行 docker 的时候,就是执行 docker exec 命令的时候,发现一直报错.具体的报错信息如下: Error response from daemon: Container XXX ...

  4. JS中多维数组的深拷贝的多种实现方式

    因为javascript分原始类型与引用类型(与java.c#类似).Array是引用类型,所以直接用=号赋值的话,只是把源数组的地址(或叫指针)赋值给目的数组,并没有实现数组的数据的拷贝.另外对一维 ...

  5. redis 分布式读写锁

    http://zhangtielei.com/posts/blog-redlock-reasoning.html 链接里这篇 blog 讨论了 redis 分布式锁的实现以及安全性 我要参考 基于单R ...

  6. API接口设计:防参数篡改+防二次请求

    API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数 为了防止被第别有用心之人获取到真实请求参数后再次发起请求获取信息,需要采取很多安全机制 1.首先: 需要采用ht ...

  7. unity2d开发windows phone游戏按钮问题

    今天在进行unity2d项目对windows phone工程的编译过程中,发现了一个很蛋疼的bug,windows phone编译运行后,GUILayout.Button出现自动点击的现象,这带来了很 ...

  8. javascript 最全面的数组操作合集

    一.数组添加.删除.替换.截取操作 1.arr.unshift(1) 在数组头部添加一个元素 1 (直接改变原数组,返回值为添加元素后数组的length) 2.arr.shift() 在数组的头部删除 ...

  9. 【LeetCode】7. 整数反转python3

    题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1:输入: 123 输出: 321  示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出 ...

  10. 通过Postman进行post请求时传递X-XSRF-TOKEN

    前言介绍 这段时间一个项目后端用的是laravel.在写API接口时通过Postman6进行测试.但是在测试后形式的接口时laravel自带了CSRF验证机制.这就很尴尬了... 所以我们的目的在使用 ...