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]地图浏览:如何实现图片的放大缩小和点击之后的位置居中的更多相关文章

  1. jquery 实现点击图片居住放大缩小

    该功能是基于jquery实现的,所以 第一步则是引入jquery jquery下载地址:https://jquery.com/download/ 或者使用此时调试的版本(3版本) /*! jQuery ...

  2. Android 本地/网路下载图片实现放大缩小

     Android 本地加载/网路下载图片实现放大缩小拖拉效果,自定义控件. package com.example.ImageViewCustom; import android.app.Activi ...

  3. JS控制图片拖动 放大 缩小 旋转 支持滚轮放大缩小 IE有效

    <html> <head>     <title>图片拖动,放大,缩小,转向</title> <script type="text/ja ...

  4. JS中图片的放大缩小没反应

    这段代码无反应: 代码如下: <script type="text/javascript"> onload = function () { document.getEl ...

  5. Android DIY之路 (一) 指定区域多图片合成 放大 缩小 镜像 旋转 等(转)

    惯例先看效果图 // 注意做类似这种模板功能时候 方位由后台数据提供,这里我们用假数据 4个点 或者xy 加区域来做示例 //一开始我们公司用的是透明盖住 操作图片 但发现 局限性较大.后来直接限定区 ...

  6. Java界面程序实现图片的放大缩小

    Java界面程序实现图片的放大缩小.这个程序简单地实现了图片的打开.保存.放大一倍.缩小一倍和固定缩放尺寸,但是并没有过多的涵盖对图片的细节处理,只是简单地实现了图片大小的放缩. 思维导图如下: 效果 ...

  7. 用css3实现图片的放大缩小

    记录一个公用的css实现图片的放大缩小 @keyframes scaleDraw { /*定义关键帧.scaleDrew是需要绑定到选择器的关键帧名称*/ 0%{ transform: scale(1 ...

  8. Android 图片的放大缩小拖拉

    package com.example.ImageView; import android.annotation.SuppressLint; import android.content.Contex ...

  9. Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能

    首先推荐一下鸿洋大大的打造个性的图片预览与多点触控视频教程,这套教程教我们一步一步实现了多点触控实现对图片的平移和缩放的功能.这篇文章我将在鸿洋大大的基础之上做了一些扩展功能: 1.图片的惯性滑动 2 ...

随机推荐

  1. Swift - 让StoryBoard设计视图,程序运行时都使用横屏形式

    1,运行时横屏 将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉 2,storyboard设计视图横屏 在storyboard中,单击中间界面 ...

  2. 深入探讨MFC消息循环和消息泵

    首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情.在MFC ...

  3. 默认情况下,不使用of子句表示在select所有的数据表中加锁(转)

    Select …forupdate语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句也不 ...

  4. protobuf-2.5.0.tar.gz的下载与安装

    1.下载 hadoop使用protocol buffer进行通信,须要下载和安装protobuf-2.5.0.tar.gz.因为如今protobuf-2.5.0.tar.gz已经无法在官网https: ...

  5. C++著名类库和C++标准库介绍

    C++著名类库 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5.C++各 ...

  6. oc深坑測试题及其答案

    一.选择题(共80题,每题1分) 1. 不会立马使引用计数器改变的是: 答案:(C)  A.release  B.alloc  C.autorelease  D.retain 2. 在OC中类的接口声 ...

  7. 腾讯測试project师笔试面试记录

        从3月29日參加腾讯笔试開始,開始了为期1周的腾讯之旅,尽管最后还是跪在了二面上,可是感觉收获非常多,至少明确了自己与向往的BAT公司的差距,明确了自己还是路漫漫其修远兮.     腾讯非常注 ...

  8. 基于DSP的疲劳驾驶检测系统的研究

    原地址:http://www.chinaaet.com/article/index.aspx?id=114534 关键词:疲劳检测DSP亮瞳效应PERCLOS 摘  要: 针对汽车驾驶员疲劳驾驶检测的 ...

  9. 免费git服务器以及使用过程中遇到的问题

    1. git rm *,git pull会先git fetch后再git merge,更安全的做法是git fetch修改后再push:git remote rm origin 2. https:// ...

  10. Unity3d之MiniJson与LitJson之间的较量

    由于项目不得不用到json来解析服务器端传来的数据,于是不得不选择一种在unity3d上面可用的json.开始根据网上推荐LitJson,于是下载下来源码,导入项目: 经过测试可以用:但是移植到ipa ...