JS实现网页游戏中滑块响应鼠标点击移动效果
更新时间:2015年10月21日 21:47 点击:2880
本文实例讲述了JS实现网页游戏中滑块响应鼠标点击移动效果。分享给大家供大家参考,具体如下:
这是网页游戏中的一个有趣效果,可以完成以下几个动作:滚动、scroll 8个方向、鼠标坐标获娶对象上下左右位置获取,大家可以自己添加、MoveReady和ScrollReady两个注释掉了 取消注释后防止鼠标连续点击效果叠加。
在线演示地址如下:
http://demo.jb51.net/js/2015/js-web-game-click-move-demo/
具体代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>网页游戏中的一个有趣效果</title><style type="text/css">html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,address,big,cite,del,em,img,ins,small,strong,sub,sup,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,tbody,tfoot,tr,th,td{margin: 0;padding: 0;border: 0;outline: 0;font-size: 100%;vertical-align: baseline;background: transparent;}body{font:12px/24px "宋体";background:#fff;color:#333;}ol, ul{list-style:none;}blockquote, q {quotes:none;}blockquote:before, blockquote:after,q:before, q:after {content: '';content:none;}:focus {outline:0;}ins {text-decoration:none;}del {text-decoration:line-through;}table {border-collapse:collapse;border-spacing:0;}label{cursor:pointer}input[type="button"]{cursor:pointer}button{cursor:pointer}strong{font-weight:normal;}em{font-style:normal}a{text-decoration:none;color:#f60}a:hover{text-decoration:underline;}.block{width:200px;height:200px;background:#e63;position:absolute;left:50%;top:50%;border:3px solid #fdd;overflow:hidden;}.moveBlock{width:1900px;height:2728px;background:url("http://files.jb51.net/file_images/article/201510/2015101993654799.jpg") left top;}</style><script type="text/javascript">var ie = ! -[1, ], myDate = new Date();function Sin(x,v) { var y = Math.round(Math.sin(Math.PI*x/180)*100)/100; return ie?y*v*3:y*v;}/*返回数组序号*/Num = function(e, eles) { for (var i = 0; i < eles.length; i++) { if (eles[i] == e) { return i; } }}/*字符串判定*/GetCur = function(Str, cur) { var str = new RegExp(cur, "gi") return str.test(Str);}/*DOM构造*/var div=function(id){return new HtmlEle.init(id);}HtmlEle={ init:function(id){ this[0]=id==Object?id:document.getElementById(id); return this; }, css:function(s){ for(var i in s){ this[0].style[i]=s[i]; } }, Obj:function(){ var obj=this[0]; var objTop=obj.offsetTop,objLeft=obj.offsetLeft,objWidth=obj.offsetWidth,objHeight=obj.offsetHeight; return {top:objTop,right:objLeft+objWidth,bottom:objTop+objHeight,left:objLeft,width:objWidth,height:objHeight} }, MoveReady:true, Move:function(s,point){ var obj=this[0],n=0,v=s,main=this,v2=90; if(this.MoveReady==true){ //main.MoveReady=false; var Top=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.style.top=P-m+"px"}else{obj.style.top=P-s+"px";clearInterval(myMove);main.MoveReady=true;}; } var Right=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.style.left=P+m+"px"}else{obj.style.right=P+s+"px";clearInterval(myMove);main.MoveReady=true;}; } var Bottom=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.style.top=P+m+"px"}else{obj.style.top=P+s+"px";clearInterval(myMove);main.MoveReady=true;}; } var Left=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.style.left=P-m+"px"}else{obj.style.left=P-s+"px";clearInterval(myMove);main.MoveReady=true;}; } switch(point){ case "top" : var P=obj.offsetTop,Point=Top;break; case "right" : var P=obj.offsetLeft,Point=Right;break; case "bottom" : var P=obj.offsetTop,Point=Bottom;break; case "left" : var P=obj.offsetLeft,Point=Left;break; } var myMove=setInterval(Point,5) } }, ScrollReady:true, Scroll:function(s,point){ var obj=this[0],n=0,v=s,main=this,v2=90; if(this.ScrollReady==true){ //main.ScrollReady=false; var Top=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.scrollTop=P+m}else{obj.scrollTop=P+s;clearInterval(myMove);main.ScrollReady=true;}; } var Right=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.scrollLeft=P-m}else{obj.scrollLeft=P-s;clearInterval(myMove);main.ScrollReady=true;}; } var Bottom=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.scrollTop=P-m}else{obj.scrollTop=P-s;clearInterval(myMove);main.ScrollReady=true;}; } var Left=function(){ n=n<v2?n+1:n; var m=Sin(n,v); if(m<Math.abs(s)){obj.scrollLeft=P+m}else{obj.scrollLeft=P+s;clearInterval(myMove);main.ScrollReady=true;}; } switch(point){ case "top" : var P=obj.scrollTop,Point=Top;break; case "right" : var P=obj.scrollLeft,Point=Right;break; case "bottom" : var P=obj.scrollTop,Point=Bottom;break; case "left" : var P=obj.scrollLeft,Point=Left;break; } var myMove=setInterval(Point,5) } }, Mouse:function(e,f){ switch(e){ case "click" : this[0].onclick=f;break; case "dbclick" : this[0].ondblclick=f;break; case "over" : this[0].onmouseover=f;break; case "out" : this[0].onmouseout=f;break; } }, MouseSite:function(e){ var e=e?e:window.event; return {x:e.clientX,y:e.clientY} }}HtmlEle.init.prototype=HtmlEle;</script></head><body><div class="block" id="moveBlock"> <div class="moveBlock"></div></div><script type="text/javascript">var sBlock=new div("moveBlock");document.onclick=function(){ var site=sBlock.MouseSite(arguments[0]),s=200,b=30; var objSite=sBlock.Obj(); if(objSite.left<site.x && objSite.left+objSite.width/2-b>site.x && objSite.top<site.y &&objSite.bottom>site.y) sBlock.Scroll(s,"left"); if(objSite.right>site.x && objSite.right-objSite.width/2+b<site.x && objSite.top<site.y &&objSite.bottom>site.y) sBlock.Scroll(s,"right"); if(objSite.top<site.y && objSite.top+objSite.height/2-b>site.y && objSite.left<site.x && objSite.right>site.x) sBlock.Scroll(s,"top"); if(objSite.bottom>site.y && objSite.bottom-objSite.height/2+b<site.y) sBlock.Scroll(s,"bottom"); if(objSite.left>site.x) sBlock.Move(s,"left"); if(objSite.right<site.x) sBlock.Move(s,"right"); if(objSite.top>site.y) sBlock.Move(s,"top"); if(objSite.bottom<site.y) sBlock.Move(s,"bottom");}window.onload=function(){sBlock[0].scrollTop=0;sBlock[0].scrollLeft=0;}</script></body></html>
希望本文所述对大家JavaScript程序设计有所帮助。
相关文章
- 代码如下:$('#<%=AllEvent.ClientID%> tr:not(:has("th"))').hover(function () { $bg = $(this).css('background-color'); $(this).css('background-...2013-10-03
- 下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
- 鼠标划过实现延迟加载并隐藏层的js代码...2013-10-13
- 这篇文章主要介绍了C#模拟window操作鼠标的方法,可实现模拟鼠标移动到固定位置后点击右键的功能,涉及鼠标常用事件的操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了基于JavaScript获取鼠标位置的各种方法 ,需要的朋友可以参考下...2015-12-18
- 本文实例讲述了JS实现网页游戏中滑块响应鼠标点击移动效果。分享给大家供大家参考,具体如下:这是网页游戏中的一个有趣效果,可以完成以下几个动作:滚动、scroll 8个方向、鼠标坐标获娶对象上下左右位置获取,大家可以自己添...2015-10-21
- 下面小编就为大家带来一篇C#获取鼠标在listview右键点击单元格的内容方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 今天小编在这里就来给Photoshop的这一款软件的使用者们来说下用鼠标绘制一颗一星龙珠的教程,各位想知道具体绘制方法的使用者们,那么下面就快来跟着小编一起看一看吧。...2016-09-14
- javascript代码判断按钮是否被点击了在项目中经常会遇到这个需求,今天小编抽点时间给大家分享一段代码关于javascript判断按钮是否被点击的方法,感兴趣的朋友一起学习吧...2015-12-14
- 这篇文章主要介绍了unity 判断鼠标是否在哪个UI上的两种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-10
- 这篇文章主要介绍了微信小程序点击滚动到指定位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-23
- 下面小编就为大家带来一篇JS判断键盘是否按的回车键并触发指定按钮点击操作的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-02-19
- 这篇文章主要介绍了C#简单获取全屏中鼠标焦点位置坐标的方法,涉及C#针对鼠标位置Position属性的简单操作技巧,需要的朋友可以参考下...2020-06-25
input 点击事件无效 [Element Migrating][ElInput][Event]: click is removed.
点击无效 解决办法:可以使用 v-on 的修饰符 .native。例如:@click.native="getContentData(item)" <el-input v-for="(item,index) in voiceRetrievalData.oldContent"...2022-09-21- 这篇文章主要介绍了JavaScript鼠标悬停事件用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-15
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
多网站的需要填写的文本框在默认状态下都会给出一个默认的提示语言,当鼠标点击此文本框的时候能够将里面的默认文本清除,当删除输入的文本且焦点离开文本框的时候再将默认的文本写入文本框...2016-01-14- 这篇文章主要为大家详细介绍了JS实现鼠标按下拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-07-24
- 这篇文章主要介绍了HTML5实现移动端点击翻牌功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-12-08
- 下面小编就为大家带来一篇设置点击文本框或图片弹出日历控件的实现代码。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-05-14
- 这篇文章主要介绍了基于JavaScript实现图片点击弹出窗口而不是保存的相关资料,需要的朋友可以参考下...2016-02-12