JS基础入门篇(二十)—事件对象以及案例(二)
案例一.点击按钮,选中input中的全部内容
select()方法:选中全部。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
input,
button{
margin: 0;
padding: 0;
outline: none;
}
input{
width:200px;
height:40px;
border:1px solid black;
font-size: 20px;
}
button{
width: 300px;
line-height: 40px;
vertical-align: top;
}
</style>
</head>
<body>
<input type="text">
<button>点击此按钮选中input的全部内容</button>
<script>
var input=document.getElementsByTagName("input")[0];
var button=document.getElementsByTagName("button")[0];
button.onclick=function () {
input.select();
}
</script>
</body>
</html>
案例二.点击按钮,选中input中的全部内容,并复制到粘贴板上。
document.execCommand("copy");//复制到粘贴板上。
<body>
<input type="text">
<button>点击此按钮选中input的全部内容</button>
<script>
var input=document.getElementsByTagName("input")[0];
var button=document.getElementsByTagName("button")[0];
button.onclick=function () {
input.select();//选中input的所有内容
document.execCommand("copy");//复制到粘贴板上
}
</script>
</body>
事件对象
事件:当用户对页面进行操作的交互时,会触发对应元素的事件。
事件对象:
event
当发生事件,执行事件处理函数的时候,该时刻的详细信息。
注意:如果函数是直接调用的,则没有事件对象
注意:不同事件中的event对象可能有不同
举例说明:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#box{
width:100px;
height:100px;
background-color:red;
}
</style>
</head>
<body>
<div id="box"></div>
<script>
var box = document.getElementById("box");
// box.onmouseover = fn;//打印undefined
// box.onmousedown = fn;//打印undefined
document.onkeydown = fn;//打印按下的键值
// fn();//报错
function fn(){
// console.log( typeof event );
console.log( event.keyCode );
}
</script>
</body>
</html>
案例三:模拟苹果电脑菜单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{
margin: 0;
padding: 0;
}
.wrap{
border:1px solid black;
position: absolute;
bottom:100px;
text-align: center;
width: 100%;
}
.wrap div{
width: 100px;
height: 100px;
background: cornflowerblue;
display: inline-block;
vertical-align: bottom;
}
</style>
</head>
<body>
<div class="wrap">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
var wrap=document.getElementsByClassName("wrap")[0];
var divs=wrap.getElementsByTagName("div");
document.onmousemove=function () {
for(var i=0;i<divs.length;i++){
calc( divs[i],event);
}
}
function calc( obj,mouseEvent ){
var objPos = {
//offsetLeft:相对于最近定位父级定位元素
x: obj.offsetLeft + 50,
//obj.getBoundingClientRect().top:距离文档顶部位置
y: obj.getBoundingClientRect().top + 50
}//元素中心点坐标
var mosPos = {
x: mouseEvent.clientX,
y: mouseEvent.clientY
}//鼠标所在位置
var dis = Math.sqrt( Math.pow( objPos.x-mosPos.x,2 ) + Math.pow( objPos.y-mosPos.y,2 ) );
var scale = 1;
//当鼠标离原点中心距离小于200时,则放大
if( dis < 200 ){
scale = (200 - dis) / 200 + 1;
}
obj.style.width = 100 * scale + "px";
obj.style.height = 100 * scale + "px";
}
</script>
</body>
</html>
JS基础入门篇(二十)—事件对象以及案例(二)的更多相关文章
- JS基础入门篇(十八)—日期对象
1.日期对象 日期对象: 通过new Date()就能创建一个日期对象,这个对象中有当前系统时间的所有详细信息. 以下代码可以获取当前时间: <script> var t = new Da ...
- JS基础入门篇(十二)—JSON和Math
1.JSON JSON: 对象格式的字符串 轻量的数据传输格式 注意事项: 键名 需要 使用 双引号 包起来 JOSN有两个方法:JSON.parse和 JSON.stringify. JSON.pa ...
- JS基础入门篇(四十三)—ES6(二)
1.对象简洁表示法 原来写法 var name = "lzf"; var gender = "male"; var fn = function(){consol ...
- JS基础入门篇(十)— 数组方法
1.join 作用: 将数组通过指定字符拼接成字符串.语法: string arr.join([separator = ',']);参数: separator可选,如果省略的话,默认为一个逗号.如果 ...
- JS基础入门篇(三十五)—面向对象(二)
如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)
- JS基础入门篇(二十七)—BOM
虽然上次写到js基础篇(二十四),这次直接写到(二十七).是为了提醒自己中间有几篇没写.特此说明一下啊. 1.window.open() 使用a标签呢,点击一下a标签页面才会跳转,有时候我们需要做的操 ...
- JS基础入门篇(三十六)—面向对象( 三 )
1.class class es6 中 为 关键字用来声明 一个 类 1.只能通过new调用 2.不存在变量提升 3.多个方法之间直接书写,不需要,隔开 4.类的方法是直接定义在类的原型上的 5.定义 ...
- JS基础入门篇(二十四)—DOM(下)
1.offsetLeft/offsetTop offsetLeft/offsetTop : 到定位父级节点的距离. <!DOCTYPE html> <html lang=" ...
- JS基础入门篇(二十四)—DOM(上)
1.常用的节点类型,nodeType,attributes,childNodes. 1.元素节点 - 1 2.属性节点 - 2 3.文本节点 - 3 4.注释节点 - 8 5.文档节点 - 9 查看节 ...
随机推荐
- D - Project Presentation(DFS序+倍增LCA)
You are given a tree that represents a hierarchy in a company, where the parent of node u is their d ...
- Android activity 亮度调整
注意点 screenBrightness 取值范围0-1 不是0-255一定要注意 scanForActivity(context) 是根据上下文获取所在的activity如果直接在activity ...
- nginx+php+扩展件安装实践版
一.安装各种软件包 yum -y install wget git vim lrzsz unzip zip gcc make gd-devel bzip2 bzip2-devel libcurl li ...
- MySQL数据库简单操作
title date tags layout MySQL简单操作 2018-07-16 Linux post 登录mysql mysql -h 主机名 -u 用户名 -p 查看所有数据库 show d ...
- pip install torch出现错误
首先使用Python的pip安装命令: pip install torch 出现错误 解决办法:这时需要先下载pytorch包,根据自己的python版本选择.pytorch包链接: https:// ...
- JAVA循环结构学校上机经常遇到的几题 笔记
package homework.class4; import java.util.*; import java.util.stream.Collectors; import java.util.st ...
- python数据类型:Number数字
Python Number数据类型用于存储数值 数据类型是不允许改变的,如果改变Number数据类型的值,将从新分配内存空间 整型(int):整型或整数,是正或者负整数,不带小数点 长整型(long) ...
- Java IO: 序列化与ObjectInputStream、ObjectOutputStream
作者:Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和O ...
- java面试题 - 框架
1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.resp ...
- npm镜像源
1.国内用户,建议将npm的注册表源设置为国内的镜像,可以大幅提升安装速度,先查看本机地址 npm config get registry 2.国内优秀npm镜像推荐及使用 淘宝npm镜像 ·搜索地址 ...