[jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中
HTML代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<link rel="stylesheet" href="style.css" type="text/css" />
<script type='text/javascript' src='script.js'></script>
</head> <body> <img id="back" name="back" src="back.jpg" alt = "背景"/> <div>
<div id="larger" class="size_btn"><img src="+.png" alt="+"></div>
<div id="smaller" class="size_btn"><img src="-.png" alt="+"></div>
</div> </body>
</html>
JS代码:
$(document).ready(function(){ /******** 先将图片居中并完全显示 ********/
var proportion = 1;
if($(window).width() / $('#back').width() < $(window).height() / $('#back').height())
proportion = $(window).width()/$('#back').width();
else
proportion = $(window).height()/$('#back').height(); var back_width = $('#back').width() * proportion;
var back_height = $('#back').height() * proportion;
var back_left = ($(window).width() - back_width)/2;
var back_top = ($(window).height() - back_height)/2;
$('#back').width(back_width);
$('#back').height(back_height);
$("#back").offset({left:back_left,top:back_top}); //放大缩小操作时的尺寸变化
var sizeX = back_width/10;
var sizeY = back_height/10;
//放大缩小操作时的位置变化
var moveX = sizeX/2;
var moveY = sizeY/2; //点击放大按钮
$('#larger').click(function(){
$('#back').height("+=" + sizeX);
$('#back').width("+=" + sizeY);
$("#back").offset(function(n,c){
newPos = new Object();
newPos.left = c.left-moveX;
newPos.top = c.top-moveY;
return newPos;
});
}); //点击缩小按钮
$('#smaller').click(function(){
$('#back').height("-=" + sizeX);
$('#back').width("-=" + sizeY);
$("#back").offset(function(n,c){
newPos = new Object();
newPos.left = c.left + moveX;
newPos.top = c.top + moveY;
return newPos;
});
}); //点击图片
$('#back').click(function(event){
var x=($(window).width()/2) - event.clientX + $("#back").offset().left;
var y=($(window).height()/2) - event.clientY + $("#back").offset().top;
$("#back").animate({left:x,top:y});
});
});
css代码:
#back{
left: 0px;
top: 0px;
position:absolute;
z-index:-1;
} .size_btn{
position:absolute;
height:30px;
width:30px;
} #larger{
} #smaller{
top:60px;
}
最终效果:
点击放大按钮:
点击图片的任意位置:
[jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中的更多相关文章
- jquery 实现点击图片居住放大缩小
该功能是基于jquery实现的,所以 第一步则是引入jquery jquery下载地址:https://jquery.com/download/ 或者使用此时调试的版本(3版本) /*! jQuery ...
- Android 本地/网路下载图片实现放大缩小
Android 本地加载/网路下载图片实现放大缩小拖拉效果,自定义控件. package com.example.ImageViewCustom; import android.app.Activi ...
- JS控制图片拖动 放大 缩小 旋转 支持滚轮放大缩小 IE有效
<html> <head> <title>图片拖动,放大,缩小,转向</title> <script type="text/ja ...
- JS中图片的放大缩小没反应
这段代码无反应: 代码如下: <script type="text/javascript"> onload = function () { document.getEl ...
- Android DIY之路 (一) 指定区域多图片合成 放大 缩小 镜像 旋转 等(转)
惯例先看效果图 // 注意做类似这种模板功能时候 方位由后台数据提供,这里我们用假数据 4个点 或者xy 加区域来做示例 //一开始我们公司用的是透明盖住 操作图片 但发现 局限性较大.后来直接限定区 ...
- Java界面程序实现图片的放大缩小
Java界面程序实现图片的放大缩小.这个程序简单地实现了图片的打开.保存.放大一倍.缩小一倍和固定缩放尺寸,但是并没有过多的涵盖对图片的细节处理,只是简单地实现了图片大小的放缩. 思维导图如下: 效果 ...
- 用css3实现图片的放大缩小
记录一个公用的css实现图片的放大缩小 @keyframes scaleDraw { /*定义关键帧.scaleDrew是需要绑定到选择器的关键帧名称*/ 0%{ transform: scale(1 ...
- Android 图片的放大缩小拖拉
package com.example.ImageView; import android.annotation.SuppressLint; import android.content.Contex ...
- Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
首先推荐一下鸿洋大大的打造个性的图片预览与多点触控视频教程,这套教程教我们一步一步实现了多点触控实现对图片的平移和缩放的功能.这篇文章我将在鸿洋大大的基础之上做了一些扩展功能: 1.图片的惯性滑动 2 ...
随机推荐
- android原生browser分析(一)--Application
类Browser.java是整个应用的Application.其代码例如以下: public class Browser extends Application { @Override public ...
- 重复数据删除(De-duplication)技术研究(SourceForge上发布dedup util)
dedup util是一款开源的轻量级文件打包工具,它基于块级的重复数据删除技术,可以有效缩减数据容量,节省用户存储空间.目前已经在Sourceforge上创建项目,并且源码正在不断更新中.该工具生成 ...
- Linux下Qt4与qt5的程序使用输入法(ibus与fcitx)不冲突
这篇文章引用了较多其他作者的内容,也忘记引用的出处了,只能感谢了.以下转入正题. 对于qt5.5,要下载libqt库源码自己编译,参考解决Qt5 Creator无法切换输入法(fcitx),Ubunt ...
- windows下RabbitMQ 监控
RabbitMQ的监控很简单,网上也有很多资料,但是大都不详细,让人云里雾里,我这里详细总结下. RabbitMQ本身提供了一个web的监控页面,只需要简单的几部命令行就可以访问这个页面了. 1.打开 ...
- [More Effective C++]条款22有关返回值优化的验证结果
(这里的验证结果是针对返回值优化的,其实和条款22本身所说的,考虑以操作符复合形式(op=)取代其独身形式(op),关系不大.书生注) 在[More Effective C++]条款22的最后,在返回 ...
- [容斥原理] zoj 3556 How Many Sets I
主题链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do? problemId=4535 How Many Sets I Time Limit: 2 ...
- git版本号回滚
先说今天遇到的问题,看到一个config.php的配置文件一直在改动的状态下,可是和远程的config.php是不一致的,我不须要提交它,可是看它在 modified的状态下,非常不爽.想删除它.gi ...
- 解决Andriod使用HttpURLConnection 失败问题
在Android的Activity中使用HttpURLConnection连接到服务端时抛出异常,Access denied.第一个想到是权限问题.然后就尝试将INTERNET权限加上:在Manife ...
- c++实用技巧
原地址:http://www.cnblogs.com/easymind223/articles/2576904.html 晚上的时间总是习惯性的在cnblogs逛街,今天又看到了好文章,其c++味道浓 ...
- Qt 的内部进程通信机制
Qt 的内部进程通信机制 续欣 (xxin76@hotmail.com), 博士.大学讲师 2004 年 4 月 01 日 Qt 作为一种跨平台的基于 C++ 的 GUI 系统,能够提供给用户构造图形 ...