JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】


Posted in Javascript onAugust 23, 2016

本文实例讲述了JS实现放大、缩小及拖拽图片的方法。分享给大家供大家参考,具体如下:

var divId;
var v_left;
var v_top;
window.onload=function(){
divId = document.getElementById("block1");
var height1 = images1.height;//图片的高度
var width1 = images1.width;//图片的宽度
v_left=(document.body.clientWidth-width1)/2;
v_top=(document.body.clientHeight-height1)/2;
divId.style.left=v_left;
divId.style.top=v_top;
}
drag = 0;
move = 0;
// 拖拽对象
var ie = document.all;
var nn6 = document.getElementById && !document.all;
var isdrag = false;
var y, x;
var oDragObj;
function moveMouse(e) {
if (isdrag) {
oDragObj.style.top = (nn6 ? nTY + e.clientY - y : nTY + event.clientY - y) + "px";
oDragObj.style.left = (nn6 ? nTX + e.clientX - x : nTX + event.clientX - x) + "px";
return false;
}
}
// 拖拽方法
function initDrag(e) {
var oDragHandle = nn6 ? e.target : event.srcElement;
var topElement = "HTML";
while (oDragHandle.tagName != topElement && oDragHandle.className != "dragAble") {
oDragHandle = nn6 ? oDragHandle.parentNode : oDragHandle.parentElement;
}
if (oDragHandle.className == "dragAble") {
isdrag = true;
oDragObj = oDragHandle;
nTY = parseInt(oDragObj.style.top + 0);
y = nn6 ? e.clientY : event.clientY;
nTX = parseInt(oDragObj.style.left + 0);
x = nn6 ? e.clientX : event.clientX;
document.onmousemove = moveMouse;
//document.onmouseup=MUp;// 事件会在鼠标按键被松开时发生
return false;
}
}
document.onmousedown = initDrag;
document.onmouseup = new Function("isdrag=false");
//上下左右移动
function clickMove(s) {
if (s == "up") {
dragObj.style.top = parseInt(dragObj.style.top) + 100;
} else {
if (s == "down") {
dragObj.style.top = parseInt(dragObj.style.top) - 100;
} else {
if (s == "left") {
dragObj.style.left = parseInt(dragObj.style.left) + 100;
} else {
if (s == "right") {
dragObj.style.left = parseInt(dragObj.style.left) - 100;
}
}
}
}
}
//缩小倍数
function smallit() {
//将图片缩小,失去热点
height1 = images1.height;
width1 = images1.width;
images1.height = height1 / 1.1;
images1.width = width1 / 1.1;
}
//放大倍数
function bigit() {
/*//将图片放大,不失热点
var zoom = parseInt(images1.style.zoom, 10) || 100;
zoom += event.wheelDelta / 12;
if (zoom > 0) {
images1.style.zoom = (zoom+10) + "%";
}*/
//将图片放大,失去热点
height1 = images1.height;
width1 = images1.width;
images1.height = height1 * 1.1;
images1.width = width1 * 1.1;
}
//还原
function realsize() {
images1.style.zoom=100+"%";
images1.height = images2.height;
images1.width = images2.width;
divId.style.left=v_left;
divId.style.top=v_top;
}
function featsize() {
var width1 = images2.width;
var height1 = images2.height;
var width2 = 360;
var height2 = 200;
var h = height1 / height2;
var w = width1 / width2;
if (height1 < height2 && width1 < width2) {
images1.height = height1;
images1.width = width1;
} else {
if (h > w) {
images1.height = height2;
images1.width = width1 * height2 / height1;
} else {
images1.width = width2;
images1.height = height1 * width2 / width1;
}
}
block1.style.left = 0;
block1.style.top = 0;
}
//鼠标滚轮放大缩小
function bbimg(o) {
/*var eleLeft;
var eleTop;
if(document.documentElement){
eleLeft = document.documentElement.scrollLeft;
eleTop = document.documentElement.scrollTop;
}
else{
eleLeft = document.body.scrollLeft;
eleTop = document.body.scrollTop;
}
v_left+=eleLeft;
v_top+=eleTop;
//divId.style.left=v_left;
//divId.style.top=v_top;
alert(document.documentElement.scrollTop +"----xxx"+document.body.scrollTop+window.pageyoffset);*/
var zoom = parseInt(o.style.zoom, 10) || 100;
zoom += event.wheelDelta / 12;
if (zoom > 0) {
o.style.zoom = zoom + "%";
}
return false;
}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 扑捉回车键事件代码
Apr 24 Javascript
一个JavaScript的求爱小特效
May 09 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
js实现文本框支持加减运算的方法
Aug 19 Javascript
JS面向对象编程详解
Mar 06 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
Jun 06 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
Jun 30 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
js实现五星评价功能
Mar 08 Javascript
layer弹出层框架alert与msg详解
Mar 14 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
Aug 23 #Javascript
AngularJS使用ng-options指令实现下拉框
Aug 23 #Javascript
js简单获取表单中单选按钮值的方法
Aug 23 #Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
Aug 23 #Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 #Javascript
JavaScript DOM节点操作方法总结
Aug 23 #Javascript
EasyUI创建对话框的两种方式
Aug 23 #Javascript
You might like
用PHP和ACCESS写聊天室(一)
2006/10/09 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
JSON JQUERY模板实现说明
2010/07/03 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
高中毕业生个人自我鉴定
2013/11/24 职场文书
《钱学森》听课反思
2014/03/01 职场文书
人事专员的岗位职责
2014/03/01 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
新闻通讯稿范文
2015/07/22 职场文书
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang