javascript每日一练(八)——事件三:默认行为
一、阻止默认行为
return false;
自定义右键菜单
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{ margin:0; padding:0;}
#ul1{ list-style:none; display:none; width:100px; padding:5px; background:#ddd; border:1px solid ddd; color:#333; line-height:24px; position:absolute;}
</style>
<script>
document.oncontextmenu = function(ev)
{
var oEvent = ev || event;
var oUl = document.getElementById('ul1');
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
oUl.style.left = oEvent.clientX + 'px';
oUl.style.top = oEvent.clientY + scrollTop + 'px';
oUl.style.display = 'block';
return false;
};
document.onclick = function()
{
var oUl = document.getElementById('ul1');
oUl.style.display = 'none';
};
</script>
</head>
<body style="height:2000px;">
<ul id="ul1">
<li>复制</li>
<li>粘贴</li>
<li>剪切</li>
<li>撤销</li>
</ul>
</body>
</html>
拖拽
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1{ width:100px; height:100px; background:red; position:absolute;}
</style>
<script>
window.onload = function()
{
var oDiv = document.getElementById('div1');
var disX = 0;
var disY = 0;
oDiv.onmousedown = function(ev)
{
var oEvent = ev || event;
disX = oEvent.clientX - oDiv.offsetLeft;
disY = oEvent.clientY - oDiv.offsetTop;
document.onmousemove = function(ev)
{
var oEvent = ev || event;
var iX = oEvent.clientX - disX;
var iY = oEvent.clientY - disY;
if(iX < 0)
{
iX = 0;
}
else if( iX > document.documentElement.clientWidth - oDiv.offsetWidth)
{
iX = document.documentElement.clientWidth - oDiv.offsetWidth;
}
if(iY < 0)
{
iY = 0;
}else if( iY > document.documentElement.clientHeight - oDiv.offsetHeight)
{
iY = document.documentElement.clientHeight - oDiv.offsetHeight;
}
oDiv.style.left = iX + 'px';
oDiv.style.top = iY + 'px';
};
document.onmouseup = function()
{
document.onmousemove = null;
document.onmouseup = null;
};
return false;
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
javascript每日一练(八)——事件三:默认行为的更多相关文章
- javascript每日一练(七)——事件二:键盘事件
一.键盘事件 onkeydown触发, keyCode键盘编码 ctrlKey altKey shiftKey 键盘控制div移动 <!doctype html> <html> ...
- javascript每日一练(六)——事件一
一.event对象 var oEvent = ev || event;//获取事件对象 oEvent.clientX oEvent.clientY//获取鼠标坐标 oEvent.cancelBubbl ...
- javascript每日一练(三)——DOM一
一.Dom基础 childNodes(有兼容问题),children nodeType getAttribute() firstChild,lastChild,previousSilbing,next ...
- javascript每日一练(一)——javascript基础
一.javascript的组成 ECMAScript DOM BOM 二.变量类型 常见类型有:number, string, boolean, undefined, object, function ...
- javascript每日一练(十三)——运动实例
一.图片放大缩小 <!doctype html> <html> <head> <meta charset="utf-8"> < ...
- javascript每日一练(五)——BOM
一.BOM打开,关闭窗口 window.open(); window.close(); <!doctype html> <html> <head> <meta ...
- javascript每日一练—运动
1.弹性运动 运动原理:加速运动+减速运动+摩擦运动: <!doctype html> <html> <head> <meta charset="u ...
- javascript每日一练(十四)——弹性运动
一.弹性运动 运动原理:加速运动+减速运动+摩擦运动: <!doctype html> <html> <head> <meta charset="u ...
- javascript每日一练(十二)——运动框架
运动框架 可以实现多物体任意值运动 例子: <!doctype html> <html> <head> <meta charset="utf-8&q ...
随机推荐
- HTML5.1就要来了
原文来自https://www.w3.org/blog/2016/04/working-on-html5-1/ 总结一下几个点: 1.六个月内,也就是到九月份的时候,HTML5.1会和大家见面. 2. ...
- 关于php析构函数__destruct()的问题
1.背景:在一次输出错误信息,引入Componets\下的ErrorCode的类文件报错,报错的信息是该类找不到:然而那个类文件明明存在的阿,怎么会报错呢? 2.解决过程:看类加载器如何加载该类.通过 ...
- JQuery中Checkbox的一些功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mysql 中的 IF 和 IFNULL 用法
IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. IF(S ...
- 分布式session
前端用户请求经过随机分发之后,可能会命中后端任意的Web Server,并且 Web Server 也可能会因为各种不确定的原因宕机.在这种情况下,session 是很难在集群间同步的,而通过将ses ...
- 数据层使用DBHelper.dll来减少工作量
目前在需求确定了以后进行开发的步骤一般是这样的:建立数据表,建立model,构建数据操作层,最后在页面中进行调用.关于数据操作层,因为大量的操作都集中在增加.更新.删除等简易操作,而我之前的写法是每次 ...
- Python:爬取乌云厂商列表,使用BeautifulSoup解析
在SSS论坛看到有人写的Python爬取乌云厂商,想练一下手,就照着重新写了一遍 原帖:http://bbs.sssie.com/thread-965-1-1.html #coding:utf- im ...
- [上海] 携程 门票事业部 招聘.NET 架构师 2 名 - V2EX
[上海] 携程 门票事业部 招聘.NET 架构师 2 名 - V2EX [上海] 携程 门票事业部 招聘.NET 架构师 2 名
- iOS创建本地通知和删除对应的通知,工作日通知
本文的代码主要是:创建本地通知,删除对应的本地通知,创建工作日闹钟 直接上代码: // // ViewController.m // LocalNSNotification // // Created ...
- python学习(2)
编码: 需要注意的是:python 没有字符的概念,但是比如a='abcd',当中字母a占用一个字节,通过 方法len我们可以求出这个字符变量a所有字符个数,如:print len(a)显示结果为:4 ...