`

Web页面中实现鼠标中键缩放

阅读更多
在MapXtreme 2005中,在Windows应用程序中自带鼠标中键缩放的功能,而有Web应用程序中却没有,如果能够实现会显得更加人性化。在百度里面一搜,还真有位高人实现了,于是借鉴了一下,作了一些修改,在这里和大家共享一下,你可能通过修改程序代码,控制每次缩放的比例,也可以选择等差或等比的方式进行缩放,代码比较简单,只要稍作修改就可以实现。
复制内容到剪贴板
代码:
(1)在页面的</form>之前添加如下JavaScript代码:


<script type="text/javascript">
var Img = document.getElementById("MapControl1_Image");
if(Img != null)
{
Img.attachEvent('onmousewheel', GetMouseWheelEvent);
}
function GetMouseWheelEvent()
{
var mapImage = document.getElementById("MapControl1_Image");
var url = "MapController.ashx?Command=WheelZoom&Width=" + mapImage.width +"&Height=" + mapImage.height
+ "&ExportFormat=" + mapImage.exportFormat + "&Ran=" + Math.random() + "&wheelvalue=" + event.wheelDelta;
if (mapImage.mapAlias)
url += "&MapAlias=" + mapImage.mapAlias;
try
{
mapImage.src = url;
}
catch(e)
{
alert("Error!");
}
}
</script>



(2)在后台代码中,如自定义命令的文件CustomerCommands.cs中的添加如下类:


[Serializable]
public class WheelZoom : MapBaseCommand
{
public WheelZoom()
{
Name = "WheelZoom";
}

public override void Process()
{
int wheelvalue = int.Parse(System.Convert.ToString(HttpContext.Current.Request["wheelvalue"]));

MapControlModel model = MapControlModel.GetModelFromSession();
model.SetMapSize(MapAlias, MapWidth, MapHeight);
try
{
MapInfo.Mapping.Map map = model.GetMapObj(MapAlias);

MapInfo.Geometry.Distance d;
if (wheelvalue > 0)
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 0.5, map.Zoom.Unit);
}
else
{
d = new MapInfo.Geometry.Distance(map.Zoom.Value * 2, map.Zoom.Unit);
}
map.Zoom = d;
}
finally
{
System.IO.MemoryStream ms = model.GetMap(MapAlias, MapWidth, MapHeight, ExportFormat);
StreamImageToClient(ms);
}
}
}



(3)在页面加载处注册Command:


if(Session.IsNewSession)
{
MapControlModel model = MapControlModel.SetDefaultModelInSession();
model.Commands.Add(new WheelZoom());
}
UID1 帖子177 精华1 积分489 阅读权限200 在线时间85 小时 注册时间2008-7-18 最后登录2009-3-13 查看详细资料
TOP

分享到:
评论

相关推荐

    VML极道教程 WEB页面的矢量图型标记代码

    VML以最简洁的标记代码,在WEB页快速绘制输出矢量...几乎支持CSS2样式表所有的样式属性(宽度、高度、3D-XYZ位置、鼠标形状、裁剪、排版缩进、缩放等等)。 这是我按网上的极道教程网页版做的CHM格式文件,利于阅读。

    web 视频播放器 js

    当该值设置为’true’的时候,会自动根据鼠标滚动播放列表。 displaywidth(number of pixes):设置显示区域的宽度,当设置的比较小的时候,播放列表会显示在显示区域的右侧而不是底部。 kenburns* (true,false): 用以...

    API之网络函数---整理网络函数及功能

    GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条...

    leaflet中文文档-api

    Map:Leaflet的核心组件,负责在页面中创建地图并操纵地图。Map对象可以通过构造函数`L.map()`或`new L.Map()`创建,需要传入一个div元素的ID和可选的地图选项对象。 构造函数:`L.Map( |String&gt; id, &lt;Map options&gt;...

    超实用的jQuery代码段

    10.24 在列表框中实现加载更多效果 10.25 自定义选择菜单 10.26 使用多个选择菜单进行组合选择 10.27 使用多选菜单选择多个值 10.28 创建双重范围的滑块 10.29 实现开关效果的选择功能 10.30 创建主题化的表单效果 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    9.23 用键盘上下键实现表格行的上下选择 9.24 用JavaScript隐藏或显示表格列 9.25 滚动的表格 9.26 交换表的行 9.27 动态拖放表格的宽度 9.28 可输入内容的表格 9.29 可以分级的表格隐藏 9.30 动态创建表格并实现...

    程序天下:JavaScript实例自学手册

    9.23 用键盘上下键实现表格行的上下选择 9.24 用JavaScript隐藏或显示表格列 9.25 滚动的表格 9.26 交换表的行 9.27 动态拖放表格的宽度 9.28 可输入内容的表格 9.29 可以分级的表格隐藏 9.30 动态创建表格并实现...

    web开发常用js库(效果库、架构库)

    17.滚屏效果-手指上下滑动或鼠标滚轮滚动切换页面,可自己配一些动效!!!!!!; 18.常用表单验证; 19.左滑删除; 20.复选框全选与取消选中; 21.内容拖动!!!!!!; 22.dom输入; 23.单例定时器; 24.ios软键盘弹出...

    傲游浏览器v3.3.6.2000 [2012-3-22]

    本次更新包含下列新特性: + 国际版加入标签同步...* 某特定页面鼠标手势和新建标签失效 * window.onstorage事件会重复触发 * File System API: requestFileSystem 初始化失败 [插件平台] * 解决一些接口实现问题

    CSPhoto 图片查看组件 for ASP v1.0.5.rar

    3.支持鼠标滚轴缩放图片大小 1.0.5更新内容 修正了加载XML数据缓存问题 右上上角广告可以自行设置,参数“rightHTML” 免费版赞助商广告从右下角弹出,定时消失 可以点击的地方全部加上鼠标样式 优化了...

    Audion-3.0.9.zip

    名称:Audion ...4.您可以使用鼠标和滚轮进行平移和缩放。单击&ldquo;自动调整&rdquo;按钮以使图表适合面板内的大小。 访问GitHub以关注此项目、报告问题并做出贡献:https://github.com/GoogleChrome/audion

    Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案

    最近在使用的过程中发现其中上传的图片(或者插入已有的表情包图片)都无法正常缩放,选中图片,用鼠标点击并拖动图片边沿的小标签,图片只能缩小不能放大。尝试过很多方法都没办法解决,甚至检查了js源码,也没有...

    搜一搜浏览器 安装版 2.0.1.20121124

     中键关闭标签功能,F2 F3切换左右标签。  打开上次关闭页面 可选打开上次关闭页面,上次打开页面,本次关闭页面,本次过滤页面,功能非常强大。  默认浏览器功能 可默认所有网页在Webso打开。  标签置底功能 可...

    变焦轮「zoomWheel」-crx插件

    *放大镜(镜头)图标:您可以通过双击鼠标将其隐藏,然后按住鼠标左键再单击鼠标右键以重新显示它,或者在“选项”页面中更改设置 (由于安全原因,扩展名无法在https://chrome.google.com/*上使用)(如果您使用的...

    微软UWP开发教程_2263页.pdf

    实现基本导航 导航历史记录和向后导航 命令基础知识 内容基础知识 教程 创建用户界面 创建自适应布局 设置控件的样式 布局 概述 页面布局 屏幕大小和断点 响应式设计技术 使用 XAML 的布局 显示多个视图 显示多个...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

    Vieb:受Vim启发的电子浏览器-Web设计的Vim绑定

    可通过自定义主题,完整的界面和字体大小缩放,页面缩放和鼠标支持进行访问 具有权限,缓存使用率,cookie管理,(自动)下载设置等的安全设置 具有split,Vexplore和Ctrl-w绑定的窗口拆分,用于多窗口浏览 映射命令...

    unity Embedded Browser(ZFBrowser) v3.0.0 内附下载链接,完整包 放心下载

    - 控制:url、退后、重新加载、重缩放大小等等。 - Mipmap 模拟着色器:更快的纹理更新且无火花 - 拦截新窗口并为其创建场景内对象 - 极简 JSON 库 - 提供 Chromium 的公开编码支持(非实时的 YouTube 视频应能使用...

    kizmic:让您的手远离那只鼠标,并注视着该奖品

    Kizmic是一个Web界面,旨在使您的手远离鼠标,而您不会注视着该奖项。禅与计算机的交互最好分开三个阵营。 用户可能想要查看当前适用于当前部分的操作,更改为其他部分或执行操作。 Kizmic将所有交互限制在这三个...

    ActionScript开发人员指南中文版

    外部API示例:在ActionScript和Web浏览器中的JavaScript之间进行通信 第章:AIR中的XML签名验证 XML签名验证的基础知识 关于XML签名 实现IURIDereferencer接口 第章:客户端系统环境 客户端系统环境基础知识 使用...

Global site tag (gtag.js) - Google Analytics