控制操作

简介: 通过按钮和上下左右键控制div中的属性向左移2像素    ← 按下时向左移10像素向右移2像素    → 按下时向右移10像素向上移2像素    ↑  按下时向上移10像素向下移2像素    ↓  按下时向下移10像素放大  ctrl + ↑  系数为1.

通过按钮和上下左右键控制div中的属性
向左移2像素    ← 按下时向左移10像素
向右移2像素    → 按下时向右移10像素
向上移2像素    ↑  按下时向上移10像素
向下移2像素    ↓  按下时向下移10像素
放大  ctrl + ↑  系数为1.01扩大   
缩小  ctrl + ↓  系数为0.99减小
快速使图片位于红色方框内
确定计算图片在红色边框内的坐标位置



<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style type="text/css"> *{margin:0px; padding: 0px;} #page{width:960px; margin: 0px auto;} #opts{width: 400px; padding: 8px; margin: 0px auto; overflow: hidden;} #opts input{margin-right: 40px; margin-bottom: 10px; padding: 6px;} #content{ width: 400px; height: 650px; margin: 0px auto; position: relative; border:1px solid #ccc; overflow: hidden; } #content .mask{width: 260px; height: 460px; position: absolute; left:70px; top: 95px; border: 2px solid #FF0000; z-index: 999;} #box{ width: 300px; height: 500px; position: absolute; left:50px; top: 75px; } #box img{width:100%; height: 100%;} </style> </head> <body> <div id="page"> <div id="opts"> <input id="left" type="button" value="向左" /> <input id="right" type="button" value="向右" /> <input id="up" type="button" value="向上" /> <input id="down" type="button" value="向下" /> <input id="enlarge" type="button" value="放大" /> <input id="narrow" type="button" value="缩小" /> <input id="fast" type="button" value="快速" /> <input id="good" type="button" value="确定" /> </div> <div id="content"> <div id="mask" class="mask"></div> <div id="box"><img alt="" src="http://images.cnblogs.com/cnblogs_com/kuikui/354173/r_test3.jpg" /></div> </div> </div> <script type="text/javascript"> function $(id){return document.getElementById(id);} function addEvent(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent("on" + type, handler); } else { element["on" + type] = handler; } } addEvent(window,"load",function(){ var oBox = $("box"); var left = $("left"); var right = $("right"); var up = $("up"); var down = $("down"); var enlarge = $("enlarge"); var narrow = $("narrow"); var fast = $("fast"); var good = $("good"); var mask = $("mask"); addEvent(left,"click",function(){ oBox.style.left = oBox.offsetLeft - 2 + "px"; return false; }); addEvent(right,"click",function(){ oBox.style.left = oBox.offsetLeft + 2 + "px"; return false; }); addEvent(up,"click",function(){ oBox.style.top = oBox.offsetTop - 2 + "px"; return false; }); addEvent(down,"click",function(){ oBox.style.top = oBox.offsetTop + 2 + "px"; return false; }); addEvent(enlarge,"click",function(){ var oldWidth = oBox.offsetWidth; var oldHeight = oBox.offsetHeight; oBox.style.width = oBox.offsetWidth * 1.01 + "px"; oBox.style.height = oBox.offsetHeight * 1.01 + "px"; oBox.style.left = oBox.offsetLeft - (oBox.offsetWidth - oldWidth) / 2 + "px"; oBox.style.top = oBox.offsetTop - (oBox.offsetHeight - oldHeight) / 2 + "px"; return false; }); addEvent(narrow,"click",function(){ var oldWidth = oBox.offsetWidth; var oldHeight = oBox.offsetHeight; oBox.style.width = oBox.offsetWidth * 0.99 + "px"; oBox.style.height = oBox.offsetHeight * 0.99 + "px"; oBox.style.left = oBox.offsetLeft - (oBox.offsetWidth - oldWidth) / 2 + "px"; oBox.style.top = oBox.offsetTop - (oBox.offsetHeight - oldHeight) / 2 + "px"; return false; }); addEvent(fast,"click",function(){ oBox.style.width = "260px"; oBox.style.height = "460px"; oBox.style.left = "72px"; oBox.style.top = "97px"; return false; }); addEvent(good,"click",function(){ var ax = mask.offsetLeft - oBox.offsetLeft; var ay = mask.offsetTop - oBox.offsetTop; var bx = mask.offsetLeft - oBox.offsetLeft + mask.offsetWidth; var by = mask.offsetTop - oBox.offsetTop; var cx = mask.offsetLeft - oBox.offsetLeft; var cy = mask.offsetTop - oBox.offsetTop + mask.offsetHeight; var dx = mask.offsetLeft - oBox.offsetLeft + mask.offsetWidth; var dy = mask.offsetTop - oBox.offsetTop + mask.offsetHeight; alert(ax+" "+ay+" "+" "+dx+" "+dy); return false; }); var bLeft = bTop = bRight = bBottom = bCtrlKey = false; setInterval(function () { if (bLeft) { oBox.style.left = oBox.offsetLeft - 10 + "px" } else if (bRight) { oBox.style.left = oBox.offsetLeft + 10 + "px" } if (bTop) { oBox.style.top = oBox.offsetTop - 10 + "px" } else if(bBottom) { oBox.style.top = oBox.offsetTop + 10 + "px" } limit(); },30); document.onkeydown = function (event) { var event = event || window.event; bCtrlKey = event.ctrlKey; switch (event.keyCode) { case 37: bLeft = true; break; case 38: if(bCtrlKey) { var oldWidth = oBox.offsetWidth; var oldHeight = oBox.offsetHeight; oBox.style.width = oBox.offsetWidth * 1.5 + "px"; oBox.style.height = oBox.offsetHeight * 1.5 + "px"; oBox.style.left = oBox.offsetLeft - (oBox.offsetWidth - oldWidth) / 2 + "px"; oBox.style.top = oBox.offsetTop - (oBox.offsetHeight - oldHeight) / 2 + "px"; break; } bTop = true; break; case 39: bRight = true; break; case 40: if(bCtrlKey) { var oldWidth = oBox.offsetWidth; var oldHeight = oBox.offsetHeight; oBox.style.width = oBox.offsetWidth * 0.75 + "px"; oBox.style.height = oBox.offsetHeight * 0.75 + "px"; oBox.style.left = oBox.offsetLeft - (oBox.offsetWidth - oldWidth) / 2 + "px"; oBox.style.top = oBox.offsetTop - (oBox.offsetHeight - oldHeight) / 2 + "px"; break; } bBottom = true; break; } return false }; document.onkeyup = function (event) { switch ((event || window.event).keyCode) { case 37: bLeft = false; break; case 38: bTop = false; break; case 39: bRight = false; break; case 40: bBottom = false; break; } }; var content = $("content"); function limit(){ var doc = [content.clientWidth, content.clientHeight] oBox.offsetLeft <=0 && (oBox.style.left = 0); oBox.offsetTop <=0 && (oBox.style.top = 0); doc[0] - oBox.offsetLeft - oBox.offsetWidth <= 0 && (oBox.style.left = doc[0] - oBox.offsetWidth + "px"); doc[1] - oBox.offsetTop - oBox.offsetHeight <= 0 && (oBox.style.top = doc[1] - oBox.offsetHeight + "px"); } }); </script> </body> </html>

目录
相关文章
|
11月前
|
监控 数据可视化 定位技术
2024年最强看板工具大对比:哪款最适合公司团建旅游活动策划?
本文介绍了5款看板工具(板栗看板、Trello、Asana、Monday.com、ClickUp)及其在公司团建旅游策划中的应用,通过具体案例展示了如何利用这些工具高效管理活动的各个环节,包括目的地规划、任务分配、预算管理、日程安排、团队沟通与反馈等,旨在提升团队协作效率和活动策划质量。
2024年最强看板工具大对比:哪款最适合公司团建旅游活动策划?
|
11月前
|
机器学习/深度学习 存储 人工智能
【AI系统】低比特量化原理
模型量化是将浮点数模型参数转化为低比特整数表示的技术,旨在减少模型大小、内存消耗及推理延迟,但会带来精度损失。本文介绍量化的基本原理、优势及挑战,涵盖量化训练、动态与静态离线量化等方法,并探讨线性与非线性量化、饱和与非饱和量化等技术细节。
527 2
【AI系统】低比特量化原理
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
576 5
|
数据采集 人工智能 自然语言处理
文档智能 & RAG让AI大模型更懂业务
文档智能 & RAG让AI大模型更懂业务
|
监控 数据可视化 搜索推荐
有哪些好用的流程管理工具?帮你快速搞定复杂工作流程
在职场中,流程管理是企业高效运转的核心。本文测评了五款热门流程管理工具:板栗看板、Trello、Asana、Jira 和 Notion,从功能、易用性和适用场景等方面进行全面分析,帮助你选择最适合的工具,提升团队协作和项目管理效率。
482 0
|
存储 持续交付 虚拟化
Docker与VMWare优缺点
【10月更文挑战第18天】Docker与VMWare优缺点
|
存储 编译器 程序员
C语言中的表达式:深入理解与应用
C语言中的表达式:深入理解与应用
908 4
|
人工智能 安全 算法
【平衡点:解锁中国大模型开源闭源的新时代】关于大模型是否开源的分析
本文探讨了开源与闭源软件在大模型技术发展中的角色,深入比较了两者在质量、安全、产业化、适应性和可靠性等方面的优缺点。开源软件得益于全球开发者社区,通常在创新和适应性上表现出色,但安全性和质量可能因分散的开发而有所波动。闭源软件则在代码质量和安全性上有一定优势,但可能限制了产业的协作与创新。 在商业模式方面,开源通常依赖服务和支持盈利,闭源则通过软件授权和订阅服务获利。开源模式的市场竞争更激烈,闭源模式则更注重市场份额和控制。企业需要根据自身情况选择合适的战略,有些可能会采用
820 1
|
前端开发 中间件 API
bottle,Python轻量级的Web框架!
bottle,Python轻量级的Web框架!
338 1