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 相关文章推荐
utf8的编码算法 转载
Dec 27 Javascript
JavaScript 学习笔记(十二) dom
Jan 21 Javascript
jQuery 选择器理解
Mar 16 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
Jan 24 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
javascript中闭包(Closure)详解
Jan 06 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
javascript时间差插件分享
Jul 18 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
PHP操作Memcache实例介绍
2013/06/14 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
javascript父子页面通讯实例详解
2015/07/17 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Keras实现DenseNet结构操作
2020/07/06 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
整改报告格式
2014/11/06 职场文书
公司的力量观后感
2015/06/05 职场文书
团结友爱主题班会
2015/08/13 职场文书
2019军训心得体会
2019/06/27 职场文书
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS