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 相关文章推荐
javascript之卸载鼠标事件的代码
May 14 Javascript
前台js调用后台方法示例
Dec 02 Javascript
checkbox选中与未选中判断示例
Aug 04 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
Node.js与Sails redis组件的使用教程
Feb 14 Javascript
jQuery表格(Table)基本操作实例分析
Mar 10 Javascript
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
Session的工作方式
2006/10/09 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
php事务处理实例详解
2014/07/11 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
使用p5.js临摹动态图形
2019/10/23 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
python 消费 kafka 数据教程
2019/12/21 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python绘制分布折线图的示例
2020/09/24 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
函授本科毕业自我鉴定
2013/10/09 职场文书
办公室副主任岗位职责
2013/11/25 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
CSS的calc函数用法小结
2022/06/25 HTML / CSS