原生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取消文本选定的实现代码
Nov 14 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
js取整数、取余数的方法
May 11 Javascript
Augularjs-起步详解
Jul 08 Javascript
jquery心形点赞关注效果的简单实现
Nov 14 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
Vue2.0组件间数据传递示例
Mar 07 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
Sep 01 Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 Javascript
小程序自定义组件实现城市选择功能
Jul 18 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
Jun 10 Javascript
小程序实现长按保存图片的方法
Dec 31 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
PHP5中MVC结构学习
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
php去除数组中重复数据
2014/11/18 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
React中的refs的使用教程
2018/02/13 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
建筑项目策划书
2014/01/13 职场文书
课题研究阶段性总结
2015/08/13 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Django中session进行权限管理的使用
2021/07/09 Python