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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
IE与FireFox中的childNodes区别
Oct 20 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
Mar 31 Javascript
JQuery.get提交页面不跳转的解决方法
Jan 13 Javascript
Jquery 效果使用详解
Nov 23 Javascript
html5+javascript实现简单上传的注意细节
Apr 18 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
jQuery实现可兼容IE6的遮罩功能详解
Sep 19 jQuery
微信小程序实现侧边分类栏
Oct 21 Javascript
Vue.js暴露方法给WebView的使用操作
Sep 07 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编程中echo用逗号和用点号连接的区别
2016/03/26 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
js如何获取file控件的完整路径具体实现代码
2013/05/15 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JsRender实用入门教程
2014/10/31 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python计算回文数的方法
2015/03/11 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python的re正则表达式实例代码
2018/01/24 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
Python类的继承用法示例
2019/01/31 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
pandas-resample按时间聚合实例
2019/12/27 Python
python 6行代码制作月历生成器
2020/09/18 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
迟到检讨书5000字
2014/01/31 职场文书
学生评语集锦
2015/01/04 职场文书
公司员工体检通知
2015/04/21 职场文书
高中团支书竞选稿
2015/11/21 职场文书
素质教育学习心得体会
2016/01/19 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python