1、效果图
2、此实例是在 http://yourgame.iteye.com/blog/477600 基础上进行改进并修改。
3、 js代码
var image_window = new Ext.Window({
id: 'image-window',
title : '图片浏览',
width : 750,
height : 500,
resizable : false,
closeAction :'hide',
layout:'border',
items:[{
xtype: 'panel',
region: 'center',
layout:'fit',
bodyStyle : 'background-color:#E5E3DF;',
frame:false,
border:false,
html :'<div id="mapPic"><div class="nav">'
+'<div class="up" id="up"></div><div class="right" id="right"></div>'
+'<div class="down" id="down"></div><div class="left" id="left"></div>'
+'<div class="zoom" id="zoom"></div><div class="in" id="in"></div>'
+'<div class="out" id="out"></div></div>'
+'<img id="view-image" src="" border="0" style="cursor: url(images/openhand_8_8.cur), default;" > </div>'
}],
buttons: [{
text: '取消',
handler: function() {
image_window.hide();
}
}],
listeners: {
'show': function(c) {
pageInit();
}
}
});
/**
* 初始化
*/
function pageInit(){
var image = Ext.get('view-image');
if(image!=null){
Ext.get('view-image').on({
'mousedown':{fn:function(){this.setStyle('cursor','url(images/closedhand_8_8.cur),default;');},scope:image},
'mouseup':{fn:function(){this.setStyle('cursor','url(images/openhand_8_8.cur),move;');},scope:image},
'dblclick':{fn:function(){
zoom(image,true,1.2);
}
}});
new Ext.dd.DD(image, 'pic');
//image.center();//图片居中
//获得原始尺寸
image.osize = {
width:image.getWidth(),
height:image.getHeight()
};
Ext.get('up').on('click',function(){imageMove('up',image);}); //向上移动
Ext.get('down').on('click',function(){imageMove('down',image);}); //向下移动
Ext.get('left').on('click',function(){imageMove('left',image);}); //左移
Ext.get('right').on('click',function(){imageMove('right',image);}); //右移动
Ext.get('in').on('click',function(){zoom(image,true,1.5);}); //放大
Ext.get('out').on('click',function(){zoom(image,false,1.5);}); //缩小
Ext.get('zoom').on('click',function(){restore(image);}); //还原
}
};
/**
* 图片移动
*/
function imageMove(direction, el) {
el.move(direction, 50, true);
}
/**
*
* @param el 图片对象
* @param type true放大,false缩小
* @param offset 量
*/
function zoom(el,type,offset){
var width = el.getWidth();
var height = el.getHeight();
var nwidth = type ? (width * offset) : (width / offset);
var nheight = type ? (height * offset) : (height / offset);
var left = type ? -((nwidth - width) / 2):((width - nwidth) / 2);
var top = type ? -((nheight - height) / 2):((height - nheight) / 2);
el.animate(
{
height: {to: nheight, from: height},
width: {to: nwidth, from: width},
left: {by:left},
top: {by:top}
},
null,
null,
'backBoth',
'motion'
);
}
/**
* 图片还原
*/
function restore(el) {
var size = el.osize;
//自定义回调函数
function center(el,callback){
el.center();
callback(el);
}
el.fadeOut({callback:function(){
el.setSize(size.width, size.height, {callback:function(){
center(el,function(ee){//调用回调
ee.fadeIn();
});
}});
}
});
}
4、调用该窗体js
image_window.show();
image_window.setTitle('图片预览-' + array[0].pigCode + '[' + picType + ']');
Ext.get('view-image').dom.src = 'upload/' + array[0].picName;
说明:在程序的任意处可以直接调用该窗体,只需要将src指向图片地址。
5、用到的其他css及image可以从 地址:http://yourgame.iteye.com/blog/477600 下载
- 大小: 505.1 KB
分享到:
相关推荐
2. **resources**:这个目录通常包含ExtJS应用所需的样式表(CSS)、图片和其他资源。这些文件用于定义UI的外观和感觉,例如按钮、表格、窗口等组件的样式。开发者可能会在这里找到`.css`文件,`.png`或`.gif`图像...
ExtJS4图片浏览器是一款基于ExtJS4框架开发的用于展示和浏览图片的应用程序。ExtJS是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。这款图片浏览器利用了ExtJS4的组件化、数据绑定和事件处理等特性,为...
下面将详细阐述EXTJS图片查看器的关键知识点。 1. **EXTJS框架**:EXTJS是一个用JavaScript编写的开源UI库,它提供了大量的可重用组件和布局管理,能够帮助开发者快速构建复杂的Web应用界面。它支持数据绑定、组件...
- **图片验证码的实现**:增加安全验证机制。 - **TabPanel**:创建标签页布局。 - **选项卡 (tabs)**:实现动态切换不同的页面。 - **上传文件**:实现文件上传功能。 - **ComponentQuery**:使用组件查询 API 进行...
例如,它可能支持更多的浏览器兼容性,提供了新的组件和布局选项,以及优化了性能和用户体验。此外,7.0.0版本可能还修复了一些已知的问题,并对API进行了更新和扩展。 2. **离线文档的优势**: 离线文档允许开发者...
这意味着无论后端采用Java、PHP、.NET还是其他技术,只要提供符合JSON或XML格式的数据接口,ExtJS都能通过Ajax请求与之通信,实现数据的动态加载和更新。 在压缩包内的“extjs包和相关资料”中,你可能找到以下内容...
本教程将深入探讨如何在ExtJS中实现图片的批量上传功能,以及与之相关的批量删除操作。 首先,批量上传图片的核心是利用HTML5的File API,它允许用户在不离开当前页面的情况下读取、处理和上传本地文件。在ExtJS中...
### ExtJS4之初体验 #### 一、准备工作 在开始使用ExtJS4进行开发之前,我们需要做一些基础的准备工作,确保开发环境已经搭建好,并且能够顺利地运行第一个ExtJS4程序。 ##### 1. 浏览器兼容性 ExtJS4支持大部分...
这个主题主要关注如何在ExtJS的HTMLEditor中实现图片的上传和添加网络图片功能。 首先,理解ExtJS HTMLEditor的基本结构和工作原理是至关重要的。HTMLEditor是一个组件,它可以将HTML代码作为输入,并提供类似于...
例如,对于图片上传,可能使用了像Plupload这样的文件上传库,它提供了多浏览器兼容性、断点续传等功能。同时,文章可能还会介绍如何将HtmlEditor与后端服务(如PHP、Java或Node.js)集成,实现文件的接收和存储。 ...
在批量图片预览上传场景中,EXTJS可以用于构建前端交互界面,处理用户的选择和上传逻辑。 1. **EXTJS组件使用**:EXTJS 提供了FileField组件,可以用来接收用户选择的文件。配合UploadButton或FormPanel,可以方便...
标题中的“apring+extjs 数据库浏览器”指的是一个基于Spring框架和ExtJS库开发的数据库管理工具。这个工具允许用户以图形化的方式浏览和操作数据库,提供了对数据库的便捷访问和管理功能。 Spring是一个开源的Java...
ExtJS 4 实例之数据包 ExtJS 4中动态加载的路径设置 Extjs4 API文档阅读(一)——类系统(Class System) Extjs4 API文档阅读(三)——布局和容器 Extjs4 API文档阅读(二)——MVC构架(上) Extjs4 API文档阅读(二)...
由于ExtJS本质上是一套基于JavaScript的前端组件库,因此在不涉及服务器交互的情况下,可以在本地浏览器环境中直接运行。 以下是一个简单的“Hello World”示例代码(代码2-1): ```html <TITLE>ExtJS2-Hello...
- **跨平台兼容性**:由于它是用JavaScript编写的,所以可以在任何支持JavaScript的浏览器中运行,无需考虑后端技术栈。 - **灵活性**:适用于多种开发环境,包括但不限于.NET、Java和PHP等。 - **易于集成**:...
在"ExtJS带进度条的多文件上传和图片预览"这个项目中,它展示了如何利用ExtJS来实现一个高效且用户友好的文件上传功能,尤其适用于处理大量或大体积的文件。下面将详细介绍这个项目中的关键知识点。 1. **ExtJS组件...
在ExtJS 4.2中,上传组件可能需要配合第三方插件,如SWFUpload或jQuery File Upload,以实现浏览器兼容性和异步上传。这些插件会处理文件选择、进度显示、错误处理等复杂逻辑。 删除图片的功能可能需要结合服务器端...
5. `resources`:这里是EXTJS的UI资源,如CSS样式文件、图片等,它们用于构建和美化EXTJS组件。 6. `source`:未经压缩的EXTJS完整源码,遵循Lesser GNU (LGPL) 开源协议,方便开发者查看和学习EXTJS的内部实现。 ...