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 相关文章推荐
SyntaxHighlighter语法高亮插件使用说明
Aug 14 Javascript
javascript 按键事件(兼容各浏览器)
Dec 20 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
Javascript表单验证要注意的事项
Sep 29 Javascript
Node.js中的流(Stream)介绍
Mar 30 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
微信小程序如何实现在线客服功能
Oct 16 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三层结构(上) 简单三层结构
2010/07/04 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
通过实例了解js函数中参数的传递
2019/06/15 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
Python中的Numpy入门教程
2014/04/26 Python
python实现折半查找和归并排序算法
2017/04/14 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
WxPython建立批量录入框窗口
2019/02/27 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
比利时买床:Beter Bed
2017/12/06 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
乡镇纠风工作实施方案
2014/03/22 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
党员活动总结
2015/02/04 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android