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 Div中加载其他页面的实现代码
Feb 27 Javascript
javascript 自定义事件初探
Aug 21 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
Jul 10 Javascript
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
js正则表达式注册页面表单验证
Oct 11 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
Mar 26 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
May 24 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初学者头痛的十四个问题
2006/07/12 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
分享一则javascript 调试技巧
2015/01/02 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
JavaScript适配器模式详解
2017/10/19 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python2.7编程中SQLite3基本操作方法示例
2017/08/09 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
python递归函数绘制分形树的方法
2018/06/22 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python IDLE添加行号显示教程
2020/04/25 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
什么是设计模式
2012/06/17 面试题
国旗下讲话演讲稿
2014/05/08 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
小学运动会报道稿
2015/07/22 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python