原生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学习笔记5 类和对象
Jan 11 Javascript
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
vuex实现简易计数器
Oct 27 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
详解angularjs跨页面传参遇到的一些问题
Nov 01 Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 Javascript
JavaScript将数组转换为链表的方法
Feb 16 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 Javascript
详解ES6数组方法find()、findIndex()的总结
May 12 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
vue实现通讯录功能
2018/07/14 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
python之wxPython应用实例
2014/09/28 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python的Django框架安装全攻略
2015/07/15 Python
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
浅析python参数的知识点
2018/12/10 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
python手写均值滤波
2020/02/19 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
如何定义一个可复用的服务
2014/09/30 面试题
大学生旷课检讨书
2014/01/22 职场文书
上班离岗检讨书
2014/01/27 职场文书
护士在校生自荐信
2014/02/01 职场文书
财务务虚会发言材料
2014/10/20 职场文书
2014年电厂工作总结
2014/12/04 职场文书