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 相关文章推荐
IE7提供XMLHttpRequest对象为兼容
Mar 08 Javascript
jQuery温习篇 强大的JQuery选择器
Apr 24 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
May 25 Javascript
js 实现css风格选择器(压缩后2KB)
Jan 12 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
JS运动相关知识点小结(附弹性运动示例)
Jan 08 Javascript
jQuery过滤选择器经典应用
Aug 18 Javascript
基于angular实现模拟微信小程序swiper组件
Jun 11 Javascript
使用async、enterproxy控制并发数量的方法详解
Jan 02 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 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函数
2011/05/31 PHP
一个好用的PHP验证码类实例分享
2013/12/27 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
学习python类方法与对象方法
2016/03/15 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Django中Model的使用方法教程
2018/03/07 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
关于python字符串方法分类详解
2019/08/20 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
物业管理应届生求职信
2013/10/28 职场文书
医学生职业规划范文
2014/01/05 职场文书
战略合作意向书
2014/07/29 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
2014年协会工作总结
2014/11/22 职场文书
旷课检讨书范文
2015/01/27 职场文书
个人专业技术总结
2015/03/05 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
2016中秋节广告语
2016/01/28 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
Python使用Web框架Flask开发项目
2022/06/01 Python