JS实现兼容性好,带缓冲的动感网页右键菜单效果


Posted in Javascript onSeptember 18, 2015

本文实例讲述了JS实现兼容性好,带缓冲的动感网页右键菜单效果。分享给大家供大家参考。具体如下:

这是一款兼容好带缓冲的动感网页右键菜单,应该来说做的非常棒,完全JavaScript的实现,我觉得挺不错,感谢作者。

运行效果截图如下:

JS实现兼容性好,带缓冲的动感网页右键菜单效果

在线演示地址如下:

具体代码如下:

<!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=gb2312" />
<title>右键菜单</title>
<style type="text/css">
div,body,span,ul,li {padding:0;margin:0;font-size:12px;}
ul,ol {list-style-type:none;}
#div1 {width:196px;height:296px;padding:2px;overflow:hidden;position:absolute;border:1px solid #666;left:200px;top:50px;display:none;z-index=1;-webkit-box-shadow:1px 3px 4px #888;box-shadow:1px 3px 4px #888;-moz-box-shadow:1px 3px 4px #888;}
#ul li {width:176px;height:25px;line-height:25px;cursor:pointer;overflow:hidden;padding-left:20px;}
.tip {width:500px;height:25px;font-size:20px;margin:50px 200px;color:red;}
</style>
<script type="text/javascript">
var g_oDiv={};
var oDiv=null;
var g_iSpeed=0;
var t=null;
window.onload=function(){
 opUl();
 oDiv=document.getElementById("div1");
 oDiv.style.height="0px";
 document.oncontextmenu=function(ev){
   var oEvent=window.event||ev;
   cancelDefault(oEvent);
   g_oDiv.MouseX=oEvent.clientX;
   g_oDiv.MouseY=oEvent.clientY;
   oDiv.style.left=g_oDiv.MouseX+"px";
   oDiv.style.top=g_oDiv.MouseY+"px";
   /* 初始化经过背景为空 */
   var oUl=document.getElementById("ul");
   var aLi=oUl.getElementsByTagName("li");
   for(var i=0;i<aLi.length;i++){
    aLi[i].style.background="none";
   }
   clearInterval(t);
   doDiv();
 }
 document.body.onmousedown=function(ev){
  var oEvent=window.event||ev;
  clearInterval(t);
  g_iSpeed=0;
  g_oDiv.h=0;
  oDiv.style.height=g_oDiv.h+"px";
  oDiv.style.display="none";
 }
 oDiv.onmousedown=function(ev){
  var oEvent=window.event||ev;
  oEvent.cancelBubble=true;
 }
}
function doDiv(ev){
 var oEvent=window.event||ev;
 oDiv.style.display="block";
 t=setInterval(doMove,30);
}
function doMove(){
 if(oDiv.offsetHeight>=302){
  g_iSpeed*=-0.7;
  oDiv.style.height=302+"px";
 }
 g_oDiv.h=g_iSpeed+oDiv.offsetHeight;
 g_iSpeed+=10; 
 oDiv.style.height=g_oDiv.h+"px";
}
function cancelDefault(oEvent){
 if(oEvent.preventDefault){
  oEvent.preventDefault();
 }
 else{
  oEvent.returnValue=false;
 }
}
/* 对li操作后的动作的定义 */
function opUl(){
 var oUl=document.getElementById("ul");
 var aLi=oUl.getElementsByTagName("li");
 for(var i=0;i<aLi.length;i++){
  aLi[i].aIndex=i;
  aLi[i].onmouseover=function(){
   for(j=0;j<aLi.length;j++){
    aLi[j].style.background="none";
   }
   aLi[this.aIndex].style.background="#ffbb66";
  }
  aLi[i].onclick=function(){
   clearInterval(t);
   oDiv.style.display="none";
   alert(this.innerHTML+" 你可以在这里自定义自己的方法啦");
  }
 }
}
</script>
</head>
<body style="width:2000px;height:800px;">
<div class="tip">右键点击游览器呗</div>
 <div id="div1">
  <ul id="ul">
   <li>这是第一行</li>
   <li>这是第二行</li>
   <li>这是第三行</li>
   <li>这是第四行</li>
   <li>这是第五行</li>
   <li>这是第六行</li>
   <li>这是第一行</li>
   <li>这是第二行</li>
   <li>这是第三行</li>
   <li>这是第四行</li>
   <li>这是第五行</li>
   <li>这是第六行</li>
  </ul>
 </div>
</body>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
Mar 01 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
jquery动态添加元素事件失效问题解决方法
May 23 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
一段非常简单的js判断浏览器的内核
Aug 17 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
js本地图片预览实现代码
Oct 09 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
Nov 17 Javascript
JS计算两个时间相差分钟数的方法示例
Jan 10 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 #Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 #Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 #Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 #Javascript
11种ASP连接数据库的方法
Sep 18 #Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 #Javascript
JS+CSS实现简易实用的滑动门菜单效果
Sep 18 #Javascript
You might like
php下使用以下代码连接并测试
2008/04/09 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
jquery 3D球状导航的文章分类
2010/07/06 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Pytorch 实现自定义参数层的例子
2019/08/17 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
手机银行营销方案
2014/03/14 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
交通事故调解协议书
2015/05/20 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python