<body>
<!--页面布局:一张图片两个按钮-->
<div style = "width:400px;margin:0 auto"> <!--设置div,目的使图片居中-->
<img src = "./wolf.jpg" id="image"/><br/>
<input type = "button" id = "max" value = "放大"/>
<input type = "button" id = "min" value = "缩小"/>
</div>
<script>
//获取元素,添加点击事件
window.onload = function() {
var img = document.getElementById("image");
var maxBtn = document.getElementById("max");
var minBtn = document.getElementById("min"); var maxWidth = img.width * 2;//定义放大的极限宽度值
var minWidth = img.width * 0.5;//定义缩小的极限宽度值 maxBtn.onclick = function () {//添加放大的点击事件
maxFun();//调用放大函数
}; minBtn.onclick = function(){//添加缩小的点击事件
console.log("click minbutton");
minFun();//调用缩小函数
};
//定义放大函数
function maxFun() {
var endWidth = img.width * 1.3;//定义每次点击后放大的宽度
var endHeight = img.height * 1.3;//定义每次点击后放大的高度 var maxTimer = setInterval(function () {//设置定时器
if (img.width < endWidth) {//判断点击结束后的图片宽度是否小于每次点击的最大宽度
if (img.width < maxWidth) {//判断点击结束后的图片宽度是否小于放大的极限宽度
img.width = img.width * 1.05;//每次点击的宽度放大幅度
img.height = img.height * 1.05;//每次点击的高度放大幅度
} else {
alert("已经放大到最大值");
clearInterval(maxTimer);
}
} else {
clearInterval(maxTimer);
}
}, 10);
}
//定义缩小函数
function minFun(){
var endWidth = img.width * 0.7;//定义每次点击后缩小的宽度
var endHeight = img.height * 0.7;//定义每次点击后缩小的高度
var minTimer = setInterval(function(){
if(img.width > endWidth){//判断点击结束后的图片宽度是否大于每次点击的最小宽度
if(img.width > minWidth){//判断点击结束后的图片宽度是否大于缩小的极限宽度
img.width = img.width * 0.95;//每次点击的宽度缩小幅度
img.height = img.height * 0.95;//每次点击的高度缩小幅度
console.log("img.height = img.height * 0.95;");
}else{
alert("已经缩小到最小值");
clearInterval(minTimer);
console.log("clear Interval");
}
}else{
clearInterval(minTimer);
}
},10);
}
} </script>
</body>

用Javascript实现图片的缓慢缩放效果的更多相关文章

  1. ASP.NET中使用JavaScript实现图片自动水平滚动效果

    参照网上的资料,在ASP.NET中使用JavaScript实现图片自动水平滚动效果. 1.页面前台代码: <%@ Page Language="C#" AutoEventWi ...

  2. javascript 单个图片的淡入淡出效果和多张图片的淡入淡出效果

    最近刚好在看之前妙趣网站的javascript 初级运动教程,教程里说设置图片的透明度使用了一个变量.这种方法确实不错,但是燕姐喜欢麻烦.就用自己的理解方法写了一遍.其中也是各种坑.现在先把一个图片的 ...

  3. JavaScript实现图片裁剪预览效果~(第一个小玩具)

    感觉开始学习的前一个月真的太不珍惜慕课网的资源了  上面蛮多小玩意真的蛮适合我这样刚入门JavaScript的同学加深使用理解 大概收藏了百来门或大或小的课程  有一个感觉就是学这个真的比光是看书看概 ...

  4. javascript控制图片等比例缩放

    <SCRIPT language="JavaScript"> function DrawImage(ImgD,FitWidth,FitHeight){ var imag ...

  5. HTML5+javascript实现图片加载进度动画效果

    在网上找资料的时候,看到网上有图片加载进度的效果,手痒就自己也写了一个. 图片加载完后,隐藏loading效果. 想看加载效果,请ctrel+F5强制刷新或者清理缓存. 效果预览:   0%   // ...

  6. 利用CSS3实现鼠标悬停在图片上图片缓慢缩放的两种方法

    1.改变background-size属性 将图片作为某个html元素的背景图片,用transition属性改变图片的大小. .container{ background-size: 100% 100 ...

  7. 《JavaScript 实战》:JavaScript 实现拖拽缩放效果

    拖拉缩放效果,实现通过鼠标拖动来调整层的面积(宽高)大小,例如选框效果.这里的拖拉缩放比一般的选框复杂一点,能设置八个方位(方向)的固定触发点,能设置最小范围,最大范围和比例缩放. 跟拖放效果一样,程 ...

  8. 《JavaScript 实战》:JavaScript 实现图片切割效果

    很久之前就在一个网站的截取相片的功能中看到这个效果,也叫图片裁剪.图片剪切(设置一下也可以做出放大镜等类似的效果).当时觉得很神奇,碍于水平有限,没做出来.前些日子突然想做一个透镜效果,就突然想到了这 ...

  9. 图片的滑动缩放html、css、js代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

随机推荐

  1. 在CesiumVR基础上实现3D左右立体视觉

    整体思路 在VR模块的基础上调整视差,使其随距离发生变化: 左右分屏时,需要将左右屏的横向进行1/2压缩:这是因为3D-TV在对左右格式影像进行合并时,会进行拉伸: 左屏幕的相机相对于原来的(右屏)相 ...

  2. Python XML 解析

    什么是 XML? XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并 ...

  3. 将数据表中的数据添加到ComboBox控件中

    实现效果: 知识运用: ComboBox控件的DataSource 属性 //获取或设置ComboBox的数据源 public Object DataResouce{get;set;} //属性值:任 ...

  4. 2018.3.5 Java语言基础与面向对象编程实践

    Java语言基础与面向对象编程实践 第一章 初识Java 1.Java特点 http://www.manew.com/blog-166576-20164.html Java语言面向对象的 Java语言 ...

  5. Opencascade术语笔记。

    1. chamfer 倒角 vs fillet  圆角: 2.boolean operatiron(布尔操作): common(相加),fuse(相交),cut(相减): 3.depressions( ...

  6. x86,x64,i386,i686

    x64其实就是64位, x86其实就是32位. 1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu. intel平台包括8086,80286,80386 ...

  7. java从键盘输入三个整数,实现从小到大排序

    package study01; import java.util.Scanner; public class Sort { /** * 需求:由键盘输入三个整数分别存入变量a.b.c,对他们进行 排 ...

  8. mutt+msmtp做linux邮件客户端

    mutt+msmtp做linux邮件客户端 1. 安装配置msmtp l  安装 wget https://sourceforge.net/projects/msmtp/files/msmtp/1.4 ...

  9. Java String Integer转换 练习:编程求字符串“100”和“150”按十进制数值做差后的结果以字符串形式输出。

    package com.swift; public class String_To_Integer_Test { public static void main(String[] args) { /* ...

  10. [LUOGU] P2634 [国家集训队]聪聪可可

    点分治裸题,甚至不需要栈回撤. 尝试用容斥写了一波,就是把所有子树混一块计算,最后减去子树内路径条数. #include<iostream> #include<cstring> ...