原生js实现图片放大缩小计时器效果


Posted in Javascript onJanuary 20, 2017

知识要点

var fn=setInterval(function(){},1000)

每隔1秒执行一次函数

clearInterval(fn)

清除计时器

判断当图片放大缩小到固定大小时,清除计时器

完整代码

<!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>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
body,button,input,select,textarea{font:12px/1.5 tahoma,arial,\5b8b\4f53;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
small{font-size:12px;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:underline;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
</style> 
</head> 
<body>
<div style="width:400px;margin:0 auto;">
 <img src="http://img.mukewang.com/53577ee900016c2102080260.jpg" id="myImage" /><br>
 <input type="button" id="max" value="放大" />
 <input type="button" id="min" value="缩小" />
</div>
<script type="text/javascript">
function pic_max(){
 var maxBtn=document.getElementById("max");
 var minBtn=document.getElementById("min"); 
 maxBtn.onclick=function(){
 max();
 }
 var img=document.getElementById("myImage");
 var maxHeight=img.height*2;
 var maxWidth=img.width*2;
 function max(){
 var endHeight=img.height*1.3;
 var endWidth=img.width*1.3;
 var maxTime=setInterval(function(){
 if(img.height<endHeight&&img.width<endWidth){
  if(img.height<maxHeight&&img.width<maxWidth){
  img.height=img.height*1.05;
  img.width=img.width*1.05;
  }else{
  alert("图片已经是最大值了")
  clearInterval(maxTime);
  }
 }else{
  clearInterval(maxTime);
 }
 },20);
 }
 minBtn.onclick=function(){
 min();
 }
 var img=document.getElementById("myImage");
 var minHeight=img.height*0.5;
 var minWidth=img.width*0.5;
 function min(){
 var overHeight=img.height*0.7;
 var overWidth=img.width*0.7;
 var minTime=setInterval(function(){
 if(img.height>overHeight&&img.width>overWidth){
  if(img.height>minHeight&&img.width>minWidth){
  img.height=img.height*0.95;
  img.width=img.width*0.95;
  }else{
  alert("图片已经是最小值了")
  clearInterval(minTime);
  }
 }else{
  clearInterval(minTime);
 }

 },20);
 }
}
window.onload=function(){
 pic_max();
}
</script> 
</body> 
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript jscroll模拟html元素滚动条
Dec 18 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
浅谈jQuery hover(over, out)事件函数
Dec 03 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 Javascript
JavaScript实现动态增删表格的方法
Mar 09 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
Aug 25 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
JS前端轻量fabric.js系列物体基类
Aug 05 Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 #Javascript
原生js实现新闻列表展开/收起全文功能
Jan 20 #Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 #Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 #Javascript
微信小程序通过api接口将json数据展现到小程序示例
Jan 20 #Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 #Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 #Javascript
You might like
PHP和JAVA中的重载(overload)和覆盖(override) 介绍
2012/03/01 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
javascript语言结构小记(一)
2011/09/10 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
node.js实现端口转发
2016/04/14 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
Python3 伪装浏览器的方法示例
2017/11/23 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
解决Python对齐文本字符串问题
2019/08/28 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
Shell编程面试题
2012/05/30 面试题
酒店员工检讨书
2014/02/18 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
给全校老师的建议书
2014/03/13 职场文书
环保建议书500字
2014/05/14 职场文书
实习公司领导推荐函
2014/05/21 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
努力学习保证书
2015/02/26 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL