原生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 相关文章推荐
20款超赞的jQuery插件 Web开发人员必备
Feb 26 Javascript
ModelDialog JavaScript模态对话框类代码
Apr 17 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
javascript 实现键盘上下左右功能的小例子
Sep 15 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
node.js中的console.log方法使用说明
Dec 09 Javascript
Ajax使用原生态JS验证用户名是否存在
May 26 Javascript
JS 实现 ajax 异步浏览器兼容问题
Jan 21 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 Javascript
详解Vue 动态组件与全局事件绑定总结
Nov 11 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 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图片验证码代码
2008/03/27 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
求职自荐信
2013/12/14 职场文书
学校安全检查制度
2014/01/27 职场文书
新春文艺演出主持词
2014/03/27 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
情感电台广播稿
2015/08/18 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript