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 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
jQuery 加上最后自己的验证
Nov 04 Javascript
JavaScript日历实现代码
Sep 12 Javascript
当鼠标移动时出现特效的JQuery代码
Nov 08 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
js canvas实现擦除动画
Jul 16 Javascript
react开发教程之React 组件之间的通信方式
Aug 12 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
Jul 19 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
解决vue组件中click事件失效的问题
Nov 09 Javascript
原生js+canvas实现验证码
Nov 29 Javascript
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
虫族 Zerg 热键控制
2020/03/14 星际争霸
给php新手谈谈我的学习心得
2007/02/25 PHP
php 启动报错如何解决
2014/01/17 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
广告显示判断
2006/08/31 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JQuery读取XML文件数据并显示的实现代码
2009/12/16 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python深入学习之闭包
2014/08/31 Python
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
Django admin美化插件suit使用示例
2017/12/12 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
python定义具名元组实例操作
2021/02/28 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
运动会广播稿20字
2014/02/18 职场文书
师范生求职信
2014/06/14 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
稽核岗位职责范本
2015/04/13 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
实现GO语言对数组切片去重
2022/04/20 Golang
Nginx 常用配置
2022/05/15 Servers