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脚本 Node.js 使用入门
Mar 07 Javascript
js里怎么取select标签里的值并修改
Dec 10 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
Feb 23 Javascript
浅谈下拉菜单中的Option对象
May 10 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
Aug 22 Javascript
jQuery实现的多滑动门,多选项卡效果代码
Mar 28 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
JS插入排序简单理解与实现方法分析
Nov 25 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 str_pad 函数用法简介
2009/07/11 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
2016/04/20 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
详解React中的组件通信问题
2017/07/31 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
python使用cookielib库示例分享
2014/03/03 Python
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Django实现自定义404,500页面教程
2017/03/26 Python
详解Python3 基本数据类型
2019/04/19 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
django 类视图的使用方法详解
2019/07/24 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
python 下划线的不同用法
2020/10/24 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
英文自我鉴定
2013/12/10 职场文书
平安校园建设方案
2014/05/02 职场文书
公司人力资源管理制度
2015/08/05 职场文书