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 相关文章推荐
js下弹出窗口的变通
Apr 18 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
js实现仿阿里巴巴城市选择框效果实例
Jun 24 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
vue+mock.js实现前后端分离
Jul 24 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
详解react组件通讯方式(多种)
May 06 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 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
php 网上商城促销设计实例代码
2012/02/17 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
python 删除非空文件夹的实例
2018/04/26 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
药物学专业学生的自我评价
2013/10/27 职场文书
学生实习介绍信
2014/01/15 职场文书
党员领导干部承诺书
2014/05/28 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
推普周国旗下讲话稿
2014/09/21 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书