javascript实例——鼠标特效篇(包含2个实例)

鼠标是现在电脑的基本配置之一,也是最常用的输入命令的工具之一。本文将将一些与鼠标有关系的特效。

1、跟随鼠标移动的彩色星星

如题,会根据鼠标的移动而移动,并在鼠标周围随机来回移动,让人感觉在放大缩小。根据书上的代码做了一些修改。比如,如果用户不移动鼠标,是不会显示星星效果的:其次就是将源代码中的亮度调节等去掉了,因为效果并不是很明显。截了三幅图,黑点近似代表鼠标的位置。效果图如下:

源代码:

<html>
<head><title>Twinkle stars</title><style>.iestars{ position:absolute; top:00px; left:00px; height:50px; width:50px; padding-top:15px;text-align:center;display:none;}</style>
</head>
<body><script language = "JavaScript">//数组保存星星的颜色,也可以设置为其它颜色,也可以增加或减少颜色数量var colours=new Array('ff0000','00ff00','0000ff','ff00ff','00ffff','ffff00');var amount=colours.length;//初始化参数var Ydelay=0,Xdelay=0;    //圆环中心的位置var step=0.2;var currStep=0;var my=0,mx=0;    //记录鼠标当前位置var flag=0;//在容器中写入"."字符,闪烁的星星即是从"."变化而来的for (i=0; i < amount; i++){document.write('<div class = "iestars" >...</div>');}//处理鼠标事件function iMouse(){my = event.y;mx = event.x;//第一次初始化,只运行一次if (flag==0){delay();flag=1;} }document.onmousemove = iMouse;var iestars=document.getElementsByClassName("iestars");function stars(){for(i = 0;i < amount;i++){var style = iestars[i].style;    //访问每个容器的style属性
        style.color=colours[i];style.display="block";style.top = Ydelay+80*Math.sin(currStep/2+i*3.1416/3)*Math.sin((currStep)/10);    //竖直位置
        style.left = Xdelay+80*Math.cos(currStep/2+i*3.1416/3)*Math.sin((currStep)/10);    //水平位置
      }currStep += step;}//计算圆环中心的位置,为当前圆环中心位置和鼠标位置的加权平均function delay(){Ydelay += (my-Ydelay)*1/20;
      Xdelay += (mx-Xdelay)*1/20;
      stars();setTimeout('delay()',10);}</script>
</body>
</html>
View Code

 

2、水中鼠标特效

鼠标上方不断地冒出气泡,这些气泡在上升中不断摇晃,慢慢的变大,直到消失在窗口。

效果图:

源代码:

<html>
<head>
<meta charset="utf-8"><title>Water Bubbles</title><style>.center{position: absolute;top:50%;left: 50%;transform: translate(-50%, -50%);border: 2px solid yellow;width: 220px;height: 42px;padding: 10px;z-index: 3;}img{position:absolute;top:0px;left:0px;filter:alpha(opacity=40);}</style>
</head><body>
<div id="low">
</div>
<div class="center">
eret
<a href="#">erte</a>
rt<p>rtdfffffffffff</p>
</div>
</body>
<script language="JavaScript"> var bubble={imgsrc : "img/1.gif",Amount : 15,my : 10,     //初始位置 
       mx : 10,      //初始位置
       Ypos : [],  //y数组,记录图片的位置
       Xpos : [],  //x数组
       Speed :[],  //上升速度
       size : [], //范围
       sizegrow :[],   //增长速度
       angle :[],  //余弦曲线的角度
       anglegrow :[],  //每次余弦曲线角度变化
       img:"", }//鼠标事件
    document.onmousemove=MouseMove; function MouseMove(){ bubble.my = event.y-20; bubble.mx = event.x; }//初始化数据for (i = 0; i < bubble.Amount; i++){ bubble.Ypos[i] = bubble.my-20; bubble.Xpos[i] = bubble.mx; bubble.Speed[i] = Math.random()*1+3;   //速度在[1,4) 
      bubble.angle[i] = 0;         bubble.anglegrow[i] = Math.random()*0.5+0.1;   //角度变换[0.2,0.6)
      bubble.size[i] = 8; bubble.sizegrow[i] = Math.random()*1+2;    //尺寸变换[0.5,0.6)
    } for (i = 0; i < bubble.Amount; i++){bubble.img+='<img class="si" src="' + bubble.imgsrc + '" >'; }var low=document.getElementById("low");low.innerHTML=bubble.img;var si=document.getElementsByTagName("img");//创建冒泡程序function MouseBubbles(){for (var i = 0; i < bubble.Amount; i++){bubble.Ypos[i] += bubble.Speed[i] * (-1)        bubble.Xpos[i] += bubble.Speed[i] * Math.cos(bubble.angle[i]); ;   if(bubble.Ypos[i]<-25){//当到达最上方后,重新初始化
                bubble.Ypos[i] = bubble.my; bubble.Xpos[i] = bubble.mx; bubble.Speed[i] = Math.random() * 4 + 1;     bubble.size[i] = 8;    //初始尺寸,上限25
              }        console.log(si[i]+"  "+i);si[i].style.left = bubble.Xpos[i];   //左右变化
si[i].style.top = bubble.Ypos[i] ; si[i].style.width = bubble.size[i];    //改变尺寸
            si[i].style.height = bubble.size[i]; console.log(bubble.Ypos[i]);//组四行放怀
            bubble.size[i] += bubble.sizegrow[i];     bubble.angle[i] += bubble.anglegrow[i];   if (bubble.size[i] > 24) bubble.size[i] = 25;  } setTimeout('MouseBubbles()', 15); }MouseBubbles();</script>
</html>
View Code

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Perforce使用指南_forP4V

第一章 前言 Perforce SCM System是一款构建于可伸缩客户/服务器结构之上的软件配置管理工具。仅仅应用 TCP/IP&#xff0c;开发人员就能够通过多种Perforce客户端&#xff08;几种平台的GUI、WEB、或命令行&#xff09;访问 Perforce服务器。Perforce能够被快速和容易地部署…

曙光服务器优势,5大核心优势 探秘曙光Cloudview三大平台

1Cloudview1.5核心优势对于云计算而言&#xff0c;国产厂商也有着自己独到的云方案。曙光Cloudview云计算操作系统采用新一代云计算中心的全新的管理模型&#xff0c;充分考虑云计算中心的资源分配、业务运行和运维服务等各种管理要素&#xff0c;实现云计算中心的软硬件平台资…

直连测速服务器异常,求证! 网件R7800, Speedtest测速的怪现象,200M宽带+R7800者进...

本帖最后由 毛毛雨 于 2017-11-18 18:50 编辑宽带是联通FTTH 200M&#xff0c;标准千兆网线&#xff0c;千兆网卡。问题前的插曲&#xff1a;R7800刚到手&#xff0c;就迫不及待的换上了&#xff0c;结果&#xff0c;无论是路由器内置Speedtest册数&#xff0c;还是电脑端的Spe…

iOS socket

为什么80%的码农都做不了架构师&#xff1f;>>> #import "ViewController.h"interface ViewController ()<NSStreamDelegate,UITextFieldDelegate,UITableViewDataSource,UITableViewDelegate>{NSInputStream *_inputStream;//对应输入流NSOutputS…

Macosx 安装 ionic 成功教程

2019独角兽企业重金招聘Python工程师标准>>> 一、首先介绍一下ionic ionic是一个用来开发混合手机应用的&#xff0c;开源的&#xff0c;免费的代码库。可以优化html、css和js的性能&#xff0c;构建高效的应用程序&#xff0c;而且还可以用于构建Sass和AngularJS的…

mac显示无法连接adobe服务器,Mac安装Adobe软件,如遇Error提示解决方法

Mac10.15.3 安装Adobe Photoshop 2020的时候一直提示Error错误The installation cannot continue as the installer file may be damaged. Download the installer file again.看到这种问题&#xff0c;一般第一想法就是安装包损坏了&#xff0c;本能的会再下载一遍甚至多遍&am…

Grovvy初识

1.Groovy和Java对比 Groovy的松散的语法允许省略分号和修饰符除非另行指定&#xff0c;Grovvy的所有内容都为publicGrovvy允许定义简单脚本&#xff0c;同时无需定义正规的class对象Grovvy在普通的常用java对象上增加了一些独特的方法和快捷方式&#xff0c;使得他们更容易使用…

一个服务器多个网站多个域名,多个域名一个服务器吗

多个域名一个服务器吗 内容精选换一换PAS(Primary Application Server)&#xff1a;主应用服务器。AAS(Additional Application Server)&#xff1a;扩展应用服务器。ASCS(ABAP Central Services)&#xff1a;SAP应用核心服务&#xff0c;是SAP应用的一个核心控件&#xff0c;包…

Spring源码解析——如何阅读源码

阅读目录 下面看一下如何使用jar包以及源码的source包  下面给出一个简单的spring样例  如何阅读源码最近没什么实质性的工作&#xff0c;正好有点时间&#xff0c;就想学学别人的代码。也看过一点源码&#xff0c;算是有了点阅读的经验&#xff0c;于是下定决心看下spring…

ajax当页post请求,tag落地页--通过ajax-post请求数据

查询所有tag及其对应跳转链接$tags get_tags(array(get>all));$output . ;if($tags) {foreach ($tags as $tag):$output . . $tag->name .;endforeach;} else {_e(No tags created., text-domain);}$output . ;echo $output;交互tag查询image场景如下&#xff0c;通过页…

如何手工抓取dump文件及分析

在生产环境下进行故障诊断时&#xff0c;为了不终止正在运行的服务或应用程序&#xff0c;有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试。 首先一种比较直观简洁的方式就是用WinDbg等调试器直接attach到需要调试的进程&#xff0c;调试完毕之后再detach即可。…

Java 类加载机制详解

2019独角兽企业重金招聘Python工程师标准>>> 一、类加载器 类加载器&#xff08;ClassLoader&#xff09;&#xff0c;顾名思义&#xff0c;即加载类的东西。在我们使用一个类之前&#xff0c;JVM需要先将该类的字节码文件&#xff08;.class文件&#xff09;从磁盘…

Nginx+PHP实时生成不同尺寸图片

原来图片服务器采用Windows .net架构&#xff0c;鉴于需求需要生成各种尺寸图片。流程说明:用户从Nginx请求对应的图片,判断是否存在_200x300的对应参数&#xff0c;如果没有就直接请求到对应目录的原图&#xff0c;否则继续判断是否在本地已经生成了对应的缓存图片&#xff0c…

掌握VS2010调试 -- 入门指南

1 导言 在软件开发周期中&#xff0c;测试和修正缺陷&#xff08;defect&#xff0c;defect与bug的区别&#xff1a;Bug是缺陷的一种表现形式&#xff0c;而一个缺陷是可以引起多种Bug的&#xff09;的时间远多于写代码的时间。通常&#xff0c;debug是指发现缺陷并改正的过程。…

【操作系统】进程管理

进程管理 进程的基本概念 程序的顺序执行及其特征 程序的顺序执行:仅当前一操作(程序段)执行完后&#xff0c;才能执行后续操作。 程序顺序执行时的特征&#xff1a;顺序性&#xff0c;封闭性&#xff0c;可再见性。 前趋图 前趋图(Precedence Graph)是一个有向无循环图&#…

va_list va_start va_end的使用

<pre name"code" class"cpp" style"color: rgb(51, 51, 51); white-space: pre-wrap; word-wrap: break-word;"><strong>一、 从printf()开始</strong> 从大家都很熟悉的格式化字符串函数开始介绍可变参数函数。 原型&#xf…

Linux学习之CentOS(三)----将Cent0S 7的网卡名称eno16777736改为eth0

【正文】 Linux系统版本&#xff1a;CentOS_7&#xff08;64位&#xff09; 一、前言&#xff1a; 今天又从Centos 6.5装回了Centos 7&#xff0c;毕竟还是要顺应潮流嘛。安装完成之后&#xff0c;发现发现CentOS 7默认的网卡名称是eno16777736&#xff0c;如图所示&#xff1a…

数据库事务的隔离机制

数据库事务(Database Transaction) &#xff0c;是指作为单个逻辑工作单元执行的一系列操作&#xff0c;要么完全地执行&#xff0c;要么完全地不执行。----百度百科就是说你定义一组数据库操作&#xff0c;然后告诉数据库说这些操作要么都成功&#xff0c;要么都不成功。类似于…

如何使用CppUnit进行单元测试

http://www.vckbase.com/document/viewdoc/?id1762 一、前言 测试驱动开发(TDD)是以测试作为开发过程的中心&#xff0c;它坚持&#xff0c;在编写实际代码之前&#xff0c;先写好基于产品代码的测试代码。开发过程的目标就是首先使测试能够通过&#xff0c;然后再优化设计结构…

iOS开发网络篇—Reachability检测网络状态

前言&#xff1a;当应用程序需要访问网络的时候&#xff0c;它首先应该检查设备的网络状态&#xff0c;确认设备的网络环境及连接情况&#xff0c;并针对这些情况提醒用户做出相应的处理。最好能监听设备的网络状态的改变&#xff0c;当设备网络状态连接、断开时&#xff0c;程…