- 浏览: 147593 次
- 性别:
- 来自: 广州
最新评论
-
tianmo2008:
最近在使用,遇到点问题,希望能请教一下.
请问一下,你出现过I ...
RCP中实现带有run in background按钮的进度条对话框 -
zhangzcz1999:
lin36 写道楼主的程序有问题,测试的时间包含有调用&quo ...
java写文件方法之比较 -
hnbcjzj:
FileOutputStream 用于写入诸如图像数据之类的原 ...
java写文件方法之比较 -
zhangzcz1999:
xueshuanglong 写道网上现在的资料尽是一些旧版的, ...
LifeRay安装配置开发环境全过程(一) -
xueshuanglong:
网上现在的资料尽是一些旧版的,没有最新的。
LifeRay安装配置开发环境全过程(一)
相同图片
不同图片
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Wanna tell her - interactive DHTML </title> <meta http-equiv="imagetoolbar" content="no"> <style type="text/css"> html { overflow: hidden; } body { position: absolute; margin: 0px; padding: 0px; background: #fff; width: 100%; height: 100%; } #screen { position: absolute; left: 10%; top: 10%; width: 80%; height: 80%; background: #fff; } #screen img { position: absolute; cursor: pointer; width: 0px; height: 0px; -ms-interpolation-mode:nearest-neighbor; } #bankImages { visibility: hidden; } #FPS { position: absolute; right: 5px; bottom: 5px; font-size: 10px; color: #666; font-family: verdana; } </style> <script type="text/javascript"> /* ==== Easing function ==== */ var Library = {}; Library.ease = function () { this.target = 0; this.position = 0; this.move = function (target, speed) { this.position += (target - this.position) * speed; } } var tv = { /* ==== variables ==== */ O : [], fps : 0, screen : {}, angle : { x : new Library.ease(), y : new Library.ease() }, camera : { x : new Library.ease(), y : new Library.ease() }, create3DHTML : function (i, x, y, z, sw, sh) { /* ==== create HTML image element ==== */ var o = document.createElement('img'); o.src = i.src; tv.screen.obj.appendChild(o); /* ==== 3D coordinates ==== */ o.point3D = { x : x, y : y, z : new Library.ease(), sw : sw, sh : sh, w : i.width, h : i.height }; o.point3D.z.target = z; /* ==== push object ==== */ o.point2D = {}; tv.O.push(o); /* ==== on mouse over event ==== */ o.onmouseover = function () { if (this != tv.o) { this.point3D.z.target = tv.mouseZ; tv.camera.x.target = this.point3D.x; tv.camera.y.target = this.point3D.y; if (tv.o) tv.o.point3D.z.target = 0; tv.o = this; } return false; } /* ==== on mousedown event ==== */ o.onmousedown = function () { if (this == tv.o) { if (this.point3D.z.target == tv.mouseZ) this.point3D.z.target = 0; else { tv.o = false; this.onmouseover(); } } } /* ==== main 3D function ==== */ o.animate = function () { /* ==== 3D coordinates ==== */ var x = this.point3D.x - tv.camera.x.position; var y = this.point3D.y - tv.camera.y.position; this.point3D.z.move(this.point3D.z.target, this.point3D.z.target ? .15 : .08); /* ==== rotations ==== */ var xy = tv.angle.cx * y - tv.angle.sx * this.point3D.z.position; var xz = tv.angle.sx * y + tv.angle.cx * this.point3D.z.position; var yz = tv.angle.cy * xz - tv.angle.sy * x; var yx = tv.angle.sy * xz + tv.angle.cy * x; /* ==== 2D transform ==== */ var scale = tv.camera.focalLength / (tv.camera.focalLength + yz); x = yx * scale; y = xy * scale; var w = Math.round(Math.max(0, this.point3D.w * scale * this.point3D.sw)); var h = Math.round(Math.max(0, this.point3D.h * scale * this.point3D.sh)); /* ==== HTML rendering ==== */ var o = this.style; o.left = Math.round(x + tv.screen.w - w * .5) + 'px'; o.top = Math.round(y + tv.screen.h - h * .5) + 'px'; o.width = w + 'px'; o.height = h + 'px'; o.zIndex = 10000 + Math.round(scale * 1000); } }, /* ==== init script ==== */ init : function (structure, FL, mouseZ, rx, ry) { this.screen.obj = document.getElementById('screen'); this.screen.obj.onselectstart = function () { return false; } this.screen.obj.ondrag = function () { return false; } this.mouseZ = mouseZ; this.camera.focalLength = FL; this.angle.rx = rx; this.angle.ry = ry; /* ==== create objects ==== */ var i = 0, o; while( o = structure[i++] ) this.create3DHTML(o.img, o.x, o.y, o.z, o.sw, o.sh); /* ==== start script ==== */ this.resize(); mouse.y = this.screen.y + this.screen.h; mouse.x = this.screen.x + this.screen.w; /* ==== loop ==== */ setInterval(tv.run, 16); setInterval(tv.dFPS, 1000); }, /* ==== resize window ==== */ resize : function () { var o = tv.screen.obj; if (o) { tv.screen.w = o.offsetWidth / 2; tv.screen.h = o.offsetHeight / 2; for (tv.screen.x = 0, tv.screen.y = 0; o != null; o = o.offsetParent) { tv.screen.x += o.offsetLeft; tv.screen.y += o.offsetTop; } } }, /* ==== main loop ==== */ run : function () { tv.fps++; /* ==== motion ease ==== */ tv.angle.x.move(-(mouse.y - tv.screen.h - tv.screen.y) * tv.angle.rx, .1); tv.angle.y.move( (mouse.x - tv.screen.w - tv.screen.x) * tv.angle.ry, .1); tv.camera.x.move(tv.camera.x.target, .025); tv.camera.y.move(tv.camera.y.target, .025); /* ==== angles sin and cos ==== */ tv.angle.cx = Math.cos(tv.angle.x.position); tv.angle.sx = Math.sin(tv.angle.x.position); tv.angle.cy = Math.cos(tv.angle.y.position); tv.angle.sy = Math.sin(tv.angle.y.position); /* ==== loop through images ==== */ var i = 0, o; while( o = tv.O[i++] ) o.animate(); }, /* ==== trace frames per seconds ==== */ dFPS : function () { document.getElementById('FPS').innerHTML = tv.fps + ' FPS'; tv.fps = 0; } } /* ==== global mouse position ==== */ var mouse = { x : 0, y : 0 } document.onmousemove = function(e) { if (window.event) e = window.event; mouse.x = e.clientX; mouse.y = e.clientY; return false; } /* ==== starting script ==== */ onload = function() { onresize = tv.resize; /* ==== build grid ==== */ var img = document.getElementById('bankImages').getElementsByTagName('img'); var structure = []; for (var i = -300; i <= 300; i += 120) for (var j = -300; j <= 300; j += 120) structure.push({ img:img[0], x:i, y:j, z:0, sw:.5, sh:.5 }); /* ==== let's go ==== */ tv.init(structure, 350, -200, .005, .0025); } </script> </head> <body> <div id="screen"> </div> <div id="bankImages"> <img alt="" src="http://avatar.profile.csdn.net/D/0/9/2_cicadu.jpg"> </div> <div id="FPS"> </div> </body> </html>
不同图片
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Wanna tell her - interactive DHTML </title> <meta http-equiv="imagetoolbar" content="no"> <style type="text/css"> html { overflow: hidden; } body { position: absolute; margin: 0px; padding: 0px; background: #fff; width: 100%; height: 100%; } #screen { position: absolute; left: 10%; top: 10%; width: 80%; height: 80%; background: #fff; } #screen img { position: absolute; cursor: pointer; width: 0px; height: 0px; -ms-interpolation-mode:nearest-neighbor; } #bankImages { visibility: hidden; } #FPS { position: absolute; right: 5px; bottom: 5px; font-size: 10px; color: #666; font-family: verdana; } </style> <script type="text/javascript"> /* ==== Easing function ==== */ var Library = {}; Library.ease = function () { this.target = 0; this.position = 0; this.move = function (target, speed) { this.position += (target - this.position) * speed; } } var tv = { /* ==== variables ==== */ O : [], fps : 0, screen : {}, angle : { x : new Library.ease(), y : new Library.ease() }, camera : { x : new Library.ease(), y : new Library.ease() }, create3DHTML : function (i, x, y, z, sw, sh) { /* ==== create HTML image element ==== */ var o = document.createElement('img'); o.src = i.src; tv.screen.obj.appendChild(o); /* ==== 3D coordinates ==== */ o.point3D = { x : x, y : y, z : new Library.ease(), sw : sw, sh : sh, w : i.width, h : i.height }; o.point3D.z.target = z; /* ==== push object ==== */ o.point2D = {}; tv.O.push(o); /* ==== on mouse over event ==== */ o.onmouseover = function () { if (this != tv.o) { this.point3D.z.target = tv.mouseZ; tv.camera.x.target = this.point3D.x; tv.camera.y.target = this.point3D.y; if (tv.o) tv.o.point3D.z.target = 0; tv.o = this; } return true; } /* ==== on mousedown event ==== */ o.onmousedown = function () { if (this == tv.o) { if (this.point3D.z.target == tv.mouseZ) this.point3D.z.target = 0; else { tv.o = false; this.onmouseover(); } } } /* ==== main 3D function ==== */ o.animate = function () { /* ==== 3D coordinates ==== */ var x = this.point3D.x - tv.camera.x.position; var y = this.point3D.y - tv.camera.y.position; this.point3D.z.move(this.point3D.z.target, this.point3D.z.target ? .15 : .08); /* ==== rotations ==== */ var xy = tv.angle.cx * y - tv.angle.sx * this.point3D.z.position; var xz = tv.angle.sx * y + tv.angle.cx * this.point3D.z.position; var yz = tv.angle.cy * xz - tv.angle.sy * x; var yx = tv.angle.sy * xz + tv.angle.cy * x; /* ==== 2D transform ==== */ var scale = tv.camera.focalLength / (tv.camera.focalLength + yz); x = yx * scale; y = xy * scale; var w = Math.round(Math.max(0, this.point3D.w * scale * this.point3D.sw)); var h = Math.round(Math.max(0, this.point3D.h * scale * this.point3D.sh)); /* ==== HTML rendering ==== */ var o = this.style; o.left = Math.round(x + tv.screen.w - w * .5) + 'px'; o.top = Math.round(y + tv.screen.h - h * .5) + 'px'; o.width = w + 'px'; o.height = h + 'px'; o.zIndex = 10000 + Math.round(scale * 1000); } }, /* ==== init script ==== */ init : function (structure, FL, mouseZ, rx, ry) { this.screen.obj = document.getElementById('screen'); this.screen.obj.onselectstart = function () { return false; } this.screen.obj.ondrag = function () { return false; } this.mouseZ = mouseZ; this.camera.focalLength = FL; this.angle.rx = rx; this.angle.ry = ry; /* ==== create objects ==== */ var i = 0, o; while( o = structure[i++] ) this.create3DHTML(o.img, o.x, o.y, o.z, o.sw, o.sh); /* ==== start script ==== */ this.resize(); mouse.y = this.screen.y + this.screen.h; mouse.x = this.screen.x + this.screen.w; /* ==== loop ==== */ setInterval(tv.run, 16); setInterval(tv.dFPS, 1000); }, /* ==== resize window ==== */ resize : function () { var o = tv.screen.obj; if (o) { tv.screen.w = o.offsetWidth / 2; tv.screen.h = o.offsetHeight / 2; for (tv.screen.x = 0, tv.screen.y = 0; o != null; o = o.offsetParent) { tv.screen.x += o.offsetLeft; tv.screen.y += o.offsetTop; } } }, /* ==== main loop ==== */ run : function () { tv.fps++; /* ==== motion ease ==== */ tv.angle.x.move(-(mouse.y - tv.screen.h - tv.screen.y) * tv.angle.rx, .1); tv.angle.y.move( (mouse.x - tv.screen.w - tv.screen.x) * tv.angle.ry, .1); tv.camera.x.move(tv.camera.x.target, .025); tv.camera.y.move(tv.camera.y.target, .025); /* ==== angles sin and cos ==== */ tv.angle.cx = Math.cos(tv.angle.x.position); tv.angle.sx = Math.sin(tv.angle.x.position); tv.angle.cy = Math.cos(tv.angle.y.position); tv.angle.sy = Math.sin(tv.angle.y.position); /* ==== loop through images ==== */ var i = 0, o; while( o = tv.O[i++] ) o.animate(); }, /* ==== trace frames per seconds ==== */ dFPS : function () { document.getElementById('FPS').innerHTML = tv.fps + ' FPS'; tv.fps = 0; } } /* ==== global mouse position ==== */ var mouse = { x : 0, y : 0 } document.onmousemove = function(e) { if (window.event) e = window.event; mouse.x = e.clientX; mouse.y = e.clientY; return false; } /* ==== starting script ==== */ onload = function() { onresize = tv.resize; /* ==== build grid ==== */ var img = document.getElementById('bankImages').getElementsByTagName('img'); var structure = []; var off=0; for (var i = -150; i <= 150; i += 101) for (var j = -150; j <= 150; j += 101) { structure.push({ img:img[off], x:i, y:j, z:0, sw:.5, sh:.5 }); off++; } /* ==== let's go ==== */ tv.init(structure, 350, -200, .005, .0025); } </script> </head> <body> <div id="screen"> </div> <div id="bankImages"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_001.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_002.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_003.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_004.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_005.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_006.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_007.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_008.jpg"> <img alt="" src="http://www.zz208.com/datas/pic2/i/1%20(4)/1%20(1)/ka1_009.jpg"> </div> <div id="FPS"></div> </body> </html>
相关推荐
【牛叉软件 1.10 更新信息】 广告代码管理 ·系统化管理网站上的固定、漂浮、弹窗等各种类广告代码。存储为js文件,一次创建入库,全站引用。 广告位管理 ·系统化管理网站上的广告位js文件。化繁为简,便捷管理...
牛叉广告管理优化大师【程序主要特点】 1. 可系统化管理网站内所有广告资源。 2. 可智能投放广告,最大化变现网站流量。 3. 前台广告投放采用纯js文件,网站最小负载,即使php或mysql崩溃也不影响广告投放。赞! ...
牛叉内容管理系统【程序特点】 1. 专为搜索引擎优化设计! 2. 专为网站广告收益优化设计!内含牛叉广告管理优化大师(NiuXams)插件模块。 3. 全部直接生成真静态文件,同时满足搜索引擎优化、网站最小负载。即使...
【描述】中的"牛叉广告管理优化大师NiuXams"表明这是一个专门针对广告管理和优化的工具。在互联网行业中,广告管理是关键的一环,涉及到广告投放、跟踪、分析和优化等多个方面。NiuXams可能是为了解决这些问题而设计...
牛叉广告管理优化大师【程序主要特点】 1. 可系统化管理网站内所有广告资源。 2. 可智能投放广告,最大化变现网站流量。 3. 前台广告投放采用纯js文件,网站最小负载,即使php或mysql崩溃也不影响广告投放。赞! ...
4. **Modernizr**:这是一个强大的JavaScript库,可以检测浏览器的特性,帮助你决定何时使用替代的代码路径。 5. **优雅降级与渐进增强**:设计网页时,应考虑在没有JavaScript或使用旧版浏览器的情况下的用户体验...
其中,“Imperator”是一款备受推崇的工具,因其强大的功能和高效的性能,被誉为“非常牛叉”的Flash反编译利器。 Imperator的主要功能在于将已经编译好的SWF(ShockWave Flash)文件还原成源代码,包括...
IxEdit是一个傻瓜式的JavaScript开发工具(其实就是JavaScript代码库)。无需掌握什么JavaScript基础,你就利用IxEdit方便的制作出一些常用的很牛叉的页面动态、交互效果。 此版本不需要google gears支持。 支持...
秦牛Cloud SDK for Node.js下载从npm安装这是我们建议的方式$ npm install qiniu从release版本下载下载地址: : 这里可以下载到旧版本的SDK,发布版本有版本号,有 ,使用规格比较稳定。从git库下载您可以直接用git ...
那么这么牛叉的插件我们该如何用哪,下面我就跟大家讲解一下。 一、引入 首先我们运用绝对路径引入,这一般都是在实际项目中引用的方法,我们下载时候会有个文件包,里面包含样式文件和脚本文件。 用的时候只...
在public/javascripts/addFood.js文件中,有一个addFood(step, id, callback)函数模仿了JavaScript的异步特性。 您不应在此文件中进行任何更改。 在public/javascripts/script.js文件中,我们为您提供了一
欢迎来到JavaScript狂欢节... 编写使它们膨胀的代码! 狂欢节经典影片《 Whack a Mole》在您自己的Web浏览器中立即栩栩如生。 所有的痣都去了哪里? 一个扮靓游戏,让您的小丑看起来很漂亮! 反馈! 完成这些练习
欢迎来到JavaScript狂欢节!... 编写使它们膨胀的代码! 狂欢节经典影片《 Whack a Mole》在您自己的网络浏览器中栩栩如生。 所有的痣都去了哪里? 一个扮靓游戏,让您的小丑看起来很漂亮!回馈! 完成这些练习(或尽可
这个“超牛叉的帮助”压缩包显然提供了一套全面的学习资源,涵盖了Web开发的关键方面。无论是初学者还是经验丰富的开发者,都能从中受益,通过实例学习和理解这些技术,提升自己的Web开发能力。这些文档对于实际项目...
总的来说,《TypeScript Handbook》全面覆盖了从基础到高级的TypeScript概念和技术,帮助开发者更好地理解和使用这个强大的静态类型系统,从而编写出更安全、更易于维护的JavaScript代码。随着JavaScript应用程序...
【描述】:“使用JQuery.Datatables再也不用烦恼了,非常方便的集成插件,还是老外牛叉啊!” JQuery.Datatables是一款功能强大的JavaScript库,它可以将HTML表格转化为功能丰富的数据网格,提供排序、搜索、分页等...
使用后果自负您可以克隆源代码并使用npm link安装,也可以使用npm install buffalo从npm安装最新发布的版本。运行测试使用npm test 。原料药布法罗公开了两种方法: exports.parse = function(buffer) { ... }...
评论块这是一个 Atom 包,用于帮助程序员注释他们的代码。 有很多类似的包。 我只是为了做而做。安装打开原子包管理器 > 安装包评论区安装重启(ctrl+alt+r)用法无论您选择一行还是多行,您只需要一个快捷键:Ctrl ...
Code Genius使用户可以发布和查看代码段,并提供示例代码的注释。 使用的著名技术 ReactRedux Sequelize 入门 要启动并运行本地副本,请遵循以下简单步骤。 先决条件 这是一个如何列出使用该软件所需的内容以及...
7. **前端技术**:虽然主要讨论的是后端的JSP和Servlet,但一个完整的选课系统也需要良好的前端支持,如HTML、CSS和JavaScript,用于构建用户界面和提供交互效果。 在实际开发过程中,开发者还需要考虑安全性、性能...