- 浏览: 322015 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ayidaweiwei:
上面已经写得很清楚了,吧里data 里面的数据定义成一个Bea ...
json对象转换成复杂Bean(包括bean、list<Bean>、Object) -
chaohua2012:
你好,如果json是这种形式呢"type" ...
json对象转换成复杂Bean(包括bean、list<Bean>、Object) -
a6892509:
大神呀
Java异常处理心得 -
liubaolin123:
请问有源码么?
restlet2.0.6+spring3.2.2+mybatis3.2.3 集成 -
xiangqian0505:
xiangqian0505 写道duan_1991 写道文章不 ...
Java异常处理心得
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Magnifier</title>
<style type="text/css">
#magnifier{
width:500px;
height:696px;
position:absolute;
top:100px;
left:250px;
font-size:0;
border:1px solid #000;
}
#img{
width:500px;
height:696px;
}
#Browser{
border:1px solid #000;
z-index:100;
position:absolute;
background:#555;
}
#mag{
border:1px solid #000;
overflow:hidden;
z-index:100;
}
</style>
<script type="text/javascript">
function getEventObject(W3CEvent) { //事件标准化函数
return W3CEvent || window.event;
}
function getPointerPosition(e) { //兼容浏览器的鼠标x,y获得函数
e = e || getEventObject(e);
var x = e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
var y = e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
return { 'x':x,'y':y };
}
function setOpacity(elem,level) { //兼容浏览器设置透明值
if(elem.filters) {
elem.style.filter = 'alpha(opacity=' + level * 100 + ')';
} else {
elem.style.opacity = level;
}
}
function css(elem,prop) { //css设置函数,可以方便设置css值,并且兼容设置透明值
for(var i in prop) {
if(i == 'opacity') {
setOpacity(elem,prop[i]);
} else {
elem.style[i] = prop[i];
}
}
return elem;
}
var magnifier = {
m : null,
init:function(magni){
var m = this.m = magni || {
cont : null, //装载原始图像的div
img : null, //放大的图像
mag : null, //放大框
scale : 15 //比例值,设置的值越大放大越大,但是这里有个问题就是如果不可以整除时,会产生些很小的白边,目前不知道如何解决
}
css(m.img,{
'position' : 'absolute',
'width' : (m.cont.clientWidth * m.scale) + 'px', //原始图像的宽*比例值
'height' : (m.cont.clientHeight * m.scale) + 'px' //原始图像的高*比例值
})
css(m.mag,{
'display' : 'none',
'width' : m.cont.clientWidth + 'px', //m.cont为原始图像,与原始图像等宽
'height' : m.cont.clientHeight + 'px',
'position' : 'absolute',
'left' : m.cont.offsetLeft + m.cont.offsetWidth + 10 + 'px', //放大框的位置为原始图像的右方远10px
'top' : m.cont.offsetTop + 'px'
})
var borderWid = m.cont.getElementsByTagName('div')[0].offsetWidth - m.cont.getElementsByTagName('div')[0].clientWidth; //获取border的宽
css(m.cont.getElementsByTagName('div')[0],{ //m.cont.getElementsByTagName('div')[0]为浏览框
'display' : 'none', //开始设置为不可见
'width' : m.cont.clientWidth / m.scale - borderWid + 'px', //原始图片的宽/比例值 - border的宽度
'height' : m.cont.clientHeight / m.scale - borderWid + 'px', //原始图片的高/比例值 - border的宽度
'opacity' : 0.5 //设置透明度
})
m.img.src = m.cont.getElementsByTagName('img')[0].src; //让原始图像的src值给予放大图像
m.cont.style.cursor = 'crosshair';
m.cont.onmouseover = magnifier.start;
},
start:function(e){
if(document.all){ //只在IE下执行,主要避免IE6的select无法覆盖
magnifier.createIframe(magnifier.m.img);
}
this.onmousemove = magnifier.move; //this指向m.cont
this.onmouseout = magnifier.end;
},
move:function(e){
var pos = getPointerPosition(e); //事件标准化
this.getElementsByTagName('div')[0].style.display = '';
css(this.getElementsByTagName('div')[0],{
'top' : Math.min(Math.max(pos.y - this.offsetTop - parseInt(this.getElementsByTagName('div')[0].style.height) / 2,0),this.clientHeight - this.getElementsByTagName('div')[0].offsetHeight) + 'px',
'left' : Math.min(Math.max(pos.x - this.offsetLeft - parseInt(this.getElementsByTagName('div')[0].style.width) / 2,0),this.clientWidth - this.getElementsByTagName('div')[0].offsetWidth) + 'px' //left=鼠标x - this.offsetLeft - 浏览框宽/2,Math.max和Math.min让浏览框不会超出图像
})
magnifier.m.mag.style.display = '';
css(magnifier.m.img,{
'top' : - (parseInt(this.getElementsByTagName('div')[0].style.top) * magnifier.m.scale) + 'px',
'left' : - (parseInt(this.getElementsByTagName('div')[0].style.left) * magnifier.m.scale) + 'px'
})
},
end:function(e){
this.getElementsByTagName('div')[0].style.display = 'none';
magnifier.removeIframe(magnifier.m.img); //销毁iframe
magnifier.m.mag.style.display = 'none';
},
createIframe:function(elem){
var layer = document.createElement('iframe');
layer.tabIndex = '-1';
layer.src = 'javascript:false;';
elem.parentNode.appendChild(layer);
layer.style.width = elem.offsetWidth + 'px';
layer.style.height = elem.offsetHeight + 'px';
},
removeIframe:function(elem){
var layers = elem.parentNode.getElementsByTagName('iframe');
while(layers.length >0){
layers[0].parentNode.removeChild(layers[0]);
}
}
}
window.onload = function(){
magnifier.init({
cont : document.getElementById('magnifier'),
img : document.getElementById('magnifierImg'),
mag : document.getElementById('mag'),
scale : 3
});
}
</script>
</head>
<body>
<div id="magnifier">
<img src="lib/images/1.jpg" id="img" />
<div id="Browser"></div>
</div>
<div id="mag"><img id="magnifierImg" /></div>
<select style="position:absolute;top:200px;left:650px;width:100px;">
<option>select测试</option>
<option>是否能覆盖</option>
</select>
</body>
</html>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Magnifier</title>
<style type="text/css">
#magnifier{
width:500px;
height:696px;
position:absolute;
top:100px;
left:250px;
font-size:0;
border:1px solid #000;
}
#img{
width:500px;
height:696px;
}
#Browser{
border:1px solid #000;
z-index:100;
position:absolute;
background:#555;
}
#mag{
border:1px solid #000;
overflow:hidden;
z-index:100;
}
</style>
<script type="text/javascript">
function getEventObject(W3CEvent) { //事件标准化函数
return W3CEvent || window.event;
}
function getPointerPosition(e) { //兼容浏览器的鼠标x,y获得函数
e = e || getEventObject(e);
var x = e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
var y = e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
return { 'x':x,'y':y };
}
function setOpacity(elem,level) { //兼容浏览器设置透明值
if(elem.filters) {
elem.style.filter = 'alpha(opacity=' + level * 100 + ')';
} else {
elem.style.opacity = level;
}
}
function css(elem,prop) { //css设置函数,可以方便设置css值,并且兼容设置透明值
for(var i in prop) {
if(i == 'opacity') {
setOpacity(elem,prop[i]);
} else {
elem.style[i] = prop[i];
}
}
return elem;
}
var magnifier = {
m : null,
init:function(magni){
var m = this.m = magni || {
cont : null, //装载原始图像的div
img : null, //放大的图像
mag : null, //放大框
scale : 15 //比例值,设置的值越大放大越大,但是这里有个问题就是如果不可以整除时,会产生些很小的白边,目前不知道如何解决
}
css(m.img,{
'position' : 'absolute',
'width' : (m.cont.clientWidth * m.scale) + 'px', //原始图像的宽*比例值
'height' : (m.cont.clientHeight * m.scale) + 'px' //原始图像的高*比例值
})
css(m.mag,{
'display' : 'none',
'width' : m.cont.clientWidth + 'px', //m.cont为原始图像,与原始图像等宽
'height' : m.cont.clientHeight + 'px',
'position' : 'absolute',
'left' : m.cont.offsetLeft + m.cont.offsetWidth + 10 + 'px', //放大框的位置为原始图像的右方远10px
'top' : m.cont.offsetTop + 'px'
})
var borderWid = m.cont.getElementsByTagName('div')[0].offsetWidth - m.cont.getElementsByTagName('div')[0].clientWidth; //获取border的宽
css(m.cont.getElementsByTagName('div')[0],{ //m.cont.getElementsByTagName('div')[0]为浏览框
'display' : 'none', //开始设置为不可见
'width' : m.cont.clientWidth / m.scale - borderWid + 'px', //原始图片的宽/比例值 - border的宽度
'height' : m.cont.clientHeight / m.scale - borderWid + 'px', //原始图片的高/比例值 - border的宽度
'opacity' : 0.5 //设置透明度
})
m.img.src = m.cont.getElementsByTagName('img')[0].src; //让原始图像的src值给予放大图像
m.cont.style.cursor = 'crosshair';
m.cont.onmouseover = magnifier.start;
},
start:function(e){
if(document.all){ //只在IE下执行,主要避免IE6的select无法覆盖
magnifier.createIframe(magnifier.m.img);
}
this.onmousemove = magnifier.move; //this指向m.cont
this.onmouseout = magnifier.end;
},
move:function(e){
var pos = getPointerPosition(e); //事件标准化
this.getElementsByTagName('div')[0].style.display = '';
css(this.getElementsByTagName('div')[0],{
'top' : Math.min(Math.max(pos.y - this.offsetTop - parseInt(this.getElementsByTagName('div')[0].style.height) / 2,0),this.clientHeight - this.getElementsByTagName('div')[0].offsetHeight) + 'px',
'left' : Math.min(Math.max(pos.x - this.offsetLeft - parseInt(this.getElementsByTagName('div')[0].style.width) / 2,0),this.clientWidth - this.getElementsByTagName('div')[0].offsetWidth) + 'px' //left=鼠标x - this.offsetLeft - 浏览框宽/2,Math.max和Math.min让浏览框不会超出图像
})
magnifier.m.mag.style.display = '';
css(magnifier.m.img,{
'top' : - (parseInt(this.getElementsByTagName('div')[0].style.top) * magnifier.m.scale) + 'px',
'left' : - (parseInt(this.getElementsByTagName('div')[0].style.left) * magnifier.m.scale) + 'px'
})
},
end:function(e){
this.getElementsByTagName('div')[0].style.display = 'none';
magnifier.removeIframe(magnifier.m.img); //销毁iframe
magnifier.m.mag.style.display = 'none';
},
createIframe:function(elem){
var layer = document.createElement('iframe');
layer.tabIndex = '-1';
layer.src = 'javascript:false;';
elem.parentNode.appendChild(layer);
layer.style.width = elem.offsetWidth + 'px';
layer.style.height = elem.offsetHeight + 'px';
},
removeIframe:function(elem){
var layers = elem.parentNode.getElementsByTagName('iframe');
while(layers.length >0){
layers[0].parentNode.removeChild(layers[0]);
}
}
}
window.onload = function(){
magnifier.init({
cont : document.getElementById('magnifier'),
img : document.getElementById('magnifierImg'),
mag : document.getElementById('mag'),
scale : 3
});
}
</script>
</head>
<body>
<div id="magnifier">
<img src="lib/images/1.jpg" id="img" />
<div id="Browser"></div>
</div>
<div id="mag"><img id="magnifierImg" /></div>
<select style="position:absolute;top:200px;left:650px;width:100px;">
<option>select测试</option>
<option>是否能覆盖</option>
</select>
</body>
</html>
发表评论
-
js 克隆 Clone
2013-06-18 16:39 1078Object.prototype.Clone=functi ... -
使用JavaScript在IE和Firefox下进行iframe的DOM操作
2013-04-27 16:33 1133IE和Firefox对iframe document对象的差 ... -
IE文本框内容右对齐后光标消失
2012-12-20 16:42 1937<input type="text" ... -
jquery多级联动下拉插件chained(附DEMO)
2012-10-29 16:39 1750<!DOCTYPE html PUBLIC " ... -
基于jQuery的Spin Button自定义文本框数值自增或自减(测试案例)
2012-07-23 10:33 1655/** * jquery.spin.js * ... -
AJAX同步 JS方法顺序执行
2012-06-19 09:33 10899//保存前执行的方法,ajax同步调用后台验证包裹单号是否存在 ... -
JS 设置下拉选择框默认值
2012-06-14 10:12 5732//根据下拉对象默认选中后台对应的记录 function ... -
Javascript 汉字转首字母的拼音(支持多音字的选择)
2012-02-27 13:27 11591这是html代码,保存为html格式的文件,将下面的js代码保 ... -
javascript:history.go()和History.back()的区别
2012-02-10 10:35 1461<input type=button value=刷新 ... -
漂亮的时间选择框
2011-12-08 17:09 1816<html> <script langua ... -
时间 分钟 选择框
2011-12-08 17:04 1674功能预览: <html& ... -
关闭窗口产生js的事件
2011-12-05 22:15 1161/************ 关闭窗口,提交评价 **** ... -
js禁止右键、F5刷新 ctrl+回车 js格式化日期
2011-12-05 22:12 1583//js禁止右键、F5刷新 function noAcion ... -
js 弹出提示遮罩层
2011-12-03 01:10 1902<HTML> <body> ... -
js隔行,滑动,点击 变色
2011-12-03 00:56 1289<!DOCTYPE html PUBLIC " ... -
js显示动态时间
2011-12-03 00:30 17547Date对象的方法 Date 对象能够使你获得相对于国际标准 ... -
好用的jquery弹出框插件
2011-12-02 23:49 44141. jquery.ui.dialog 官方地址 http ... -
js 事件收集
2011-12-02 21:07 876一般事件 事件 浏览器支持 描述 onClick IE3|N ... -
js性能问题
2011-12-02 21:05 857随着web应用的复杂度日渐提高,JavaScript代码量也变 ... -
JS解决后台 繁体乱码 问题
2011-12-01 18:45 1464脚本处理文本框内容 var name_s= document ...
相关推荐
在C++编程环境中,Microsoft Foundation Classes (MFC) 是一个强大的库,用于构建Windows应用程序。MFC 提供了丰富的类和函数,简化了图形用户界面(GUI)的开发,包括图像处理功能。在这个主题中,我们将深入探讨...
总的来说,"JQuery点击放大缩小图片并可左右滑动"是一个综合运用了JQuery事件处理、DOM操作、CSS变换以及可能的第三方插件功能的实例。它展示了JQuery如何便捷地实现复杂的交互效果,为网页增添生动性和用户体验。
MFC实现图形放大缩小 本文将通过MFC库函数StretchBlt的使用来实现对图像位图的局部细节的放大功能,并且可以随意放大、缩小,选取到合适的放大倍数来对图像的细节进行观察。 一、引言 在观察图像时,我们经常需要...
然后,通过layui的DOM操作和事件监听,创建一个图片容器,并初始化cropper实例。当用户完成图片编辑后,可以通过cropper的API获取裁剪结果,通常是以Base64编码的图片数据,将其作为表单数据的一部分,通过AJAX发送...
VB.net图片放大缩小反转色彩实例,打开一张图片,可放大缩小图片,可将色彩反转,不知道是不是色彩反相,可看下截图所示的效果,另外还支持旋转图片,图片显示区域的窗口可以拉伸放大,这是VB.NET源码,了解一下图像...
在MFC(Microsoft Foundation Classes)框架中,加载位图并实现图片的放大和缩小功能是一项常见的任务,尤其在开发图形用户界面(GUI)应用程序时。本文将深入探讨如何使用MFC来实现这一功能。 首先,我们需要了解...
在MFC(Microsoft Foundation Class)库中,静态控件(MFC-Static)通常是用来显示文本的,但通过一些特定的技巧,我们也可以使它显示图片,并且添加滚动条及实现图片的放大缩小功能。这一过程涉及到多个MFC类的交互...
1. **图片布局**:通常,轮播图片会被设置在一个容器内,这个容器的宽度大于单个图片的宽度,以容纳中间放大后的图片。图片通常水平排列,通过CSS的`float`或`display: flex`属性进行布局。 2. **图片大小调整**:...
本项目“MFC 鼠标选定显示范围,图片放大缩小,带左右滚动条显示”就是这样一个示例,它实现了用户通过鼠标选择图像的特定区域,然后该区域会被放大显示,并且提供了左右滚动条以便浏览放大后的图像。 1. **MFC框架...
本项目“C#实现chart数据点的放大缩小显示、框选、删除、平移.rar”是关于如何通过C#语言扩展Chart控件功能的一个实例,具体涉及以下几个关键知识点: 1. **Chart控件的基本操作**:首先,我们需要了解Chart控件的...
总的来说,MSChartExtensionDemo是一个展示MSChart控件高级交互特性的实例,它可以帮助开发者更好地理解和运用MSChart控件,提升数据可视化应用的用户体验。通过学习和研究这个示例,你可以掌握如何创建具有放大、...
你需要创建一个`GestureDetector`实例,然后重写`onDown()`、`onSingleTapUp()`、`onDoubleTap()`等方法。 - 在`onDoubleTap()`方法中,根据当前图片的缩放级别,决定是放大还是缩小图片。可以使用`...
对图像进行旋转是另一个复杂的操作,因为需要考虑旋转中心点、旋转角度以及旋转后的图像是否需要填充空白区域。PB中的`Rotate`函数可以实现这个功能,通过指定旋转角度(以度为单位)和是否保持原始大小。旋转可能...
在IT行业中,图像处理是一项非常重要的技术,广泛应用于各种领域,如摄影、设计、软件开发等。本项目集成了多项图像处理功能,...同时,这也是学习图像处理和Windows编程的一个实例,有助于深入理解相关概念和技术。
首先创建一个ScaleGestureDetector实例,然后重写onScale()回调方法,在其中计算缩放比例并更新图片的Matrix,最后将更新后的Matrix应用到ImageView。同时,为了提供良好的用户体验,还需要处理单指拖动(平移)操作...
总的来说,"滑轮控制视图放大与缩小"是一个涉及到Windows消息处理、MFC视图类、坐标变换和图形渲染等多个方面的技术问题。通过理解和应用这些知识,开发者可以为用户提供更加直观且流畅的缩放体验。在实际项目中,...
本文将深入探讨如何自定义一个ImageView,以实现在屏幕上通过手势滑动图片以及支持多点触摸进行图片的放大和缩小效果。这个自定义ImageView的实现,通常会涉及到Android的触摸事件处理、Matrix变换以及手势识别等...
通过以上方式,作者展示了一个使用Vue.js和Echarts开发的图表放大缩小功能的完整实例。这个示例不仅适用于柱状图,也可以根据需要调整应用到Echarts支持的其他类型的图表上,如折线图、饼图等。这种方式为Vue.js和...
在本项目中,我们关注的是一个简单的GIS系统,它实现了基本的交互功能,如放大、缩小和漫游。这个系统是基于MFC(Microsoft Foundation Classes)开发的,MFC是微软提供的一套面向对象的C++库,用于简化Windows应用...