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 相关文章推荐
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
js过滤HTML标签以及空格的思路及代码
May 24 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
seajs中模块的解析规则详解和模块使用总结
Mar 12 Javascript
Node.js中调用mysql存储过程示例
Dec 20 Javascript
jQuery的文档处理程序详解
May 10 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 Javascript
React 高阶组件入门介绍
Jan 11 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python删除不需要的python文件方法
2018/04/24 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
python输出决策树图形的例子
2019/08/09 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
精伦电子Java笔试题
2013/01/16 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
业务员的岗位职责
2014/03/15 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书