鼠标跟随代码,转动的文字_浏览器特效
2015-09-07 09:31
656 查看
<style type="text/css"> font-style: italic; font-weight: bold; font-family: 'comic sans ms', verdana, arial; color: #000; position: absolute;top: 0;left: 0;z-index: 3000;cursor: default;} #outerCircleText div {position: relative;} #outerCircleText div div {position: absolute;top: 0;left: 0;text-align: center;} </style> <script type="text/javascript"> ;(function(){ var msg = "Www.mb5u.com 源 码 爱 好 者 、 一 个 有 质 量 源 码 站"; var size = 23; var circleY = 0.75; var circleX = 2; var letter_spacing = 5; var diameter = 10; var rotation = 0.4; var speed = 0.3; if (!window.addEventListener && !window.attachEvent || !document.createElement) return; msg = msg.split(''); var n = msg.length - 1, a = Math.round(size * diameter * 0.208333), currStep = 20, ymouse = a * circleY + 20, xmouse = a * circleX + 20, y = [], x = [], Y = [], X = [], o = document.createElement('div'), oi = document.createElement('div'), b = document.compatMode && document.compatMode != "BackCompat"? document.documentElement : document.body, mouse = function(e){ e = e || window.event; ymouse = !isNaN(e.pageY)? e.pageY : e.clientY; xmouse = !isNaN(e.pageX)? e.pageX : e.clientX; }, makecircle = function(){ // rotation/positioning if(init.nopy){ o.style.top = (b || document.body).scrollTop + 'px'; o.style.left = (b || document.body).scrollLeft + 'px'; }; currStep -= rotation; for (var d, i = n; i > -1; --i){ d = document.getElementById('iemsg' + i).style; d.top = Math.round(y[i] + a * Math.sin((currStep + i) / letter_spacing) * circleY - 15) + 'px'; d.left = Math.round(x[i] + a * Math.cos((currStep + i) / letter_spacing) * circleX) + 'px'; }; }, drag = function(){ y[0] = Y[0] += (ymouse - Y[0]) * speed; x[0] = X[0] += (xmouse - 20 - X[0]) * speed; for (var i = n; i > 0; --i){ y[i] = Y[i] += (y[i-1] - Y[i]) * speed; x[i] = X[i] += (x[i-1] - X[i]) * speed; }; makecircle(); }, init = function(){ if(!isNaN(window.pageYOffset)){ ymouse += window.pageYOffset; xmouse += window.pageXOffset; } else init.nopy = true; for (var d, i = n; i > -1; --i){ d = document.createElement('div'); d.id = 'iemsg' + i; d.style.height = d.style.width = a + 'px'; d.appendChild(document.createTextNode(msg[i])); oi.appendChild(d); y[i] = x[i] = Y[i] = X[i] = 0; }; o.appendChild(oi); document.body.appendChild(o); setInterval(drag, 25); }, ascroll = function(){ ymouse += window.pageYOffset; xmouse += window.pageXOffset; window.removeEventListener('scroll', ascroll, false); }; o.id = 'outerCircleText'; o.style.fontSize = size + 'px'; if (window.addEventListener){ window.addEventListener('load', init, false); document.addEventListener('mouseover', mouse, false); document.addEventListener('mousemove', mouse, false); if (/Apple/.test(navigator.vendor)) window.addEventListener('scroll', ascroll, false); } else if (window.attachEvent){ window.attachEvent('onload', init); document.attachEvent('onmousemove', mouse); }; })(); </script>
相关文章推荐
- Thinking in java 之:内部类
- 61单片机项目 - 使用C语言实现A/B口的输出
- Java IO流学习总结
- Spring MVC+Mybatis入门学习小项目实例
- 用Eclipse运行selenium脚本时弹出浏览器导入向导设置的解决方法
- 认识理解zygote
- C++ 防 陷阱0 宏定义
- [leetcode-149]Max Points on a Line(java)
- 【哥德巴赫猜想】POJ Goldbach's Conjecture 2262
- ibooking项目设计介绍(一个基于SSH的外卖点餐系统)
- PHP URL参数获取方式的四种例子
- ftp传输文件
- Spring的方法注入
- C++标准库vector及迭代器
- VB短信接口开发经验及具体开发实现
- ASP.NET MVC5添加验证(4)
- JPA一对多,多对一双向关联
- Java设计模式 - 装饰器模式
- django中给ajax提交加上csrf
- CLR via C# 提纲