原生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 相关文章推荐
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
那些精彩的JavaScript代码片段
Jan 12 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
Jul 13 Javascript
JavaScript实现动态添加Form表单元素的方法示例
Aug 14 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
Sep 02 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 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 and xml示例
2006/11/22 PHP
php 分页原理详解
2009/08/21 PHP
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
Vue仿支付宝支付功能
2018/05/25 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python小程序实现刷票功能详解
2019/07/17 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
python 实现两个线程交替执行
2020/05/02 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Python实现随机爬山算法
2021/01/29 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
大学四年个人自我小结
2014/03/05 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
新手上路标语
2014/06/20 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
工人先进事迹材料
2014/12/26 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
python分分钟绘制精美地图海报
2022/02/15 Python