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.pswp.cn/news/458749.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458749.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458749.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Perforce使用指南_forP4V

第一章 前言 Perforce SCM System是一款構建于可伸縮客戶/服務器結構之上的軟件配置管理工具。僅僅應用 TCP/IP&#xff0c;開發人員就能夠通過多種Perforce客戶端&#xff08;幾種平臺的GUI、WEB、或命令行&#xff09;訪問 Perforce服務器。Perforce能夠被快速和容易地部署…

sql語句示例

sql語句示例&#xff1a; 選區指定的列 select 圖書編號,圖書名稱 from 圖書查詢全部信息 select * from 圖書查詢信息之后更改所獲得的列的名稱 select 姓名 as 用戶名, 電話 as 聯系電話 from 用戶也可以這樣 select 用戶名姓名,聯系電話電話 from 用戶對某些列進行計筭后在顯…

曙光服務器優勢,5大核心優勢 探秘曙光Cloudview三大平臺

1Cloudview1.5核心優勢對于云計算而言&#xff0c;國產廠商也有著自己獨到的云方案。曙光Cloudview云計算操作系統采用新一代云計算中心的全新的管理模型&#xff0c;充分考慮云計算中心的資源分配、業務運行和運維服務等各種管理要素&#xff0c;實現云計算中心的軟硬件平臺資…

Centos 下面升級系統內核(轉)

1、導入public key 1rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org2、安裝ELRepo到CentOS 6.6中 1rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm3、安裝長期支持版本 1yum --enablerepoelrepo-kernel install kernel-lt -y4、編輯g…

Mantle--國外程序員最常用的iOS模型字典轉換框架

Mantle簡介 Mantle是iOS和Mac平臺下基于Objective-C編寫的一個簡單高效的模型層框架。 Mantle能做什么 Mantle可以輕松把JSON數據、字典&#xff08;Dictionary&#xff09;和模型&#xff08;即Objective對象&#xff09;之間的相互轉換&#xff0c;支持自定義映射&#xff0c…

C++ assert() 詳解

C assert 宏的應用方式將會在這篇文章中進行詳解 相信對此有興趣的朋友們應該可以根據我們介紹的內容充分掌握這方面的應用技巧。 作為一個經驗豐富的編程人員來說&#xff0c;對于C編程語言應該不會陌生的&#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…

PHP配置,php.ini以及覆蓋問題

在部署一個cms項目到服務器上的時候&#xff0c;因為cms的模板比較老&#xff0c;服務器上用的php是5.3.3版&#xff08;大于5.3&#xff0c;可以認為是新的&#xff09;&#xff0c;有些頁面會顯示“deprecated”類別的錯誤信息。安全起見要抑制頁面中的錯誤信息輸出&#xff…

C/C++宏的使用總結

宏替換是C/C系列語言的技術特色&#xff0c;C/C語言提供了強大的宏替換功能&#xff0c;源代碼在進入編譯器之前&#xff0c;要先經過一個稱為“預處理器”的模塊&#xff0c;這個模塊將宏根據編譯參數和實際編碼進行展開&#xff0c;展開后的代碼才正式進入編譯器&#xff0c;…

Macosx 安裝 ionic 成功教程

2019獨角獸企業重金招聘Python工程師標準>>> 一、首先介紹一下ionic ionic是一個用來開發混合手機應用的&#xff0c;開源的&#xff0c;免費的代碼庫。可以優化html、css和js的性能&#xff0c;構建高效的應用程序&#xff0c;而且還可以用于構建Sass和AngularJS的…

hp g6服務器安裝系統,HPProLiantDL180G6服務器安裝圖.PDF

HPProLiantDL180G6服務器安裝圖4 前面板組件 / 25 個 2.5 英寸硬盤型號HP ProLiant DL180 G6 識別服務器組件2 光驅服務器 前面板組件 3 前部 UID LED 指示燈/開關4 系統運行狀況 LED 指示燈1 前面板組件/4 個 3.5 英寸硬盤型號 5 網卡 1 活動 LED 指示燈安裝圖 6 網卡 2 活動 …

九度OJ 1076:N的階乘 (數字特性、大數運算)

時間限制&#xff1a;3 秒 內存限制&#xff1a;128 兆 特殊判題&#xff1a;否 提交&#xff1a;6384 解決&#xff1a;2238 題目描述&#xff1a;輸入一個正整數N&#xff0c;輸出N的階乘。 輸入&#xff1a;正整數N(0<N<1000) 輸出&#xff1a;輸入可能包括多組數據&a…

Visual C++中 #include stdafx.h 頭文件的用法

今天在做VC實驗時&#xff0c;總是出現莫名其妙的錯誤。比如說&#xff1a; unexpected end of file whilelooking for precompiled header directive 再比如說這么一大串&#xff1a; mainframe.cpp 有錯誤\firstdlg.h(21) :error C2065: IDD_DIALOG_FIRST : undeclared ide…

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…

android開發中EditText自動獲取焦點時隱藏hint的代碼

只需讓EditText設置以下的OnFocusChangeListener就可以了 private OnFocusChangeListener mOnFocusChangeListener new OnFocusChangeListener() {Overridepublic void onFocusChange(View v, boolean hasFocus){EditText textView (EditText)v;String hint;if (hasFocus) {h…

Grovvy初識

1.Groovy和Java對比 Groovy的松散的語法允許省略分號和修飾符除非另行指定&#xff0c;Grovvy的所有內容都為publicGrovvy允許定義簡單腳本&#xff0c;同時無需定義正規的class對象Grovvy在普通的常用java對象上增加了一些獨特的方法和快捷方式&#xff0c;使得他們更容易使用…

C和C++混合編程(__cplusplus使用)

第一種理解 比如說你用C開發了一個DLL庫&#xff0c;為了能夠讓C語言也能夠調用你的DLL輸出(Export)的函數&#xff0c;你需要用extern "C"來強制編譯器不要修改你的 函數名。 通常&#xff0c;在C語言的頭文件中經常可以看到類似下面這種形式的代碼&#xff1a; …

$.ajax 同步一不,ajax 同步不生效

可以用的生效代碼注意 boolean 的位置var baseUrl ${pageContext.request.contextPath };function formcheck(){var flag false;var customerNameaa;var countryaa;var citybeijing;$.ajax({type: POST,url:baseUrl "/exports/credit/findBuyersBySerach",data:{&…

iOS工程中創建pch文件

1.新建pch類文件 2.在工程配置中,Build Setting 下搜索"pre"尋找Apple LLVM6.1 - Language下的 Preflx Header 3.點開Preflx Header 把左邊pch類拖拽進去 4.把/"工程名"/....前邊的內容全部換為$(SRCROOT) (具體替換內容看報錯自己靈活運用)轉載于:https:/…