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 相关文章推荐
Javascript 写的简单进度条控件
Jan 22 Javascript
js 操作符实例代码
Oct 24 Javascript
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
jquery animate图片模向滑动示例代码
Jan 26 Javascript
js中直接声明一个对象的方法
Aug 10 Javascript
深入了解JavaScript中的Symbol的使用方法
Jul 28 Javascript
javascript实现状态栏中文字动态显示的方法
Oct 20 Javascript
Javascript将数字转化成为货币格式字符串
Jun 22 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
Jun 05 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 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
构建简单的Webmail系统
2006/10/09 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
Vue.js创建Calendar日历效果
2016/11/03 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
2018/09/30 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
主题酒店策划书
2014/01/28 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
班班通校本培训方案
2014/03/12 职场文书
高中教师评语大全
2014/04/25 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技