首页 > 代码库 > js之图片变大变小效果
js之图片变大变小效果
1、当鼠标移到图片上,图片变大;当鼠标移出图片,图片变小,效果如图:
2、原理不难,就是鼠标over时,设置一个定时器,让图片逐渐变大,鼠标out时同理,看下最初的简略代码你就会明白:
<!DOCTYPE html> <html> <head> <style type="text/css"> div { width: 200px; /* 宽度 */ height: 100px; /* 高度 */ border: 1px solid red; /* 边框 */ margin: 100px auto; /* 外边距 */ overflow: hidden; /* 溢出隐藏 */ } img { width: 200px; /* 宽度 */ height: 100px; /* 高度 */ cursor: pointer; /* 鼠标变手 */ } </style> </head> <body> <div> <img src=http://www.mamicode.com/"1.jpg" id="img" />>
js代码:
window.onload = function(){ var img = document.getElementById(‘img‘); // 获取img标签 var width = img.width; // 初始化img宽度 var height = img.height; // 初始化img高度 var marginLeft = 0; // 初始化img左外边距 var marginTop = 0; // 初始化img上外边距 var overTimer = null; // 初始化定时器,用于鼠标接触时 var outTimer = null; // 初始化定时器,用于鼠标离开时 img.onmouseover = function(){ // 鼠标接触img clearInterval(outTimer); // 清除鼠标离开的定时器 overTimer = setInterval(function(){ // 设置鼠标接触触发的定时器,时距15毫秒 width = width + 2; // 宽度+2 height = height + 1; // 高度+1 marginLeft = marginLeft - 1; // 左外边距-1 marginTop = marginTop - 0.5; // 上外边距-0.5 img.style.width = width + ‘px‘; // 设置img宽度 img.style.height = height + ‘px‘; // 设置img高度 img.style.marginLeft = marginLeft + ‘px‘; // 设置img左外边距 img.style.marginTop = marginTop + ‘px‘; // 设置img上外边距 if (width >= 270) { // 如果img宽度大于某值 clearInterval(overTimer); // 清除定时器 }; }, 15); }; img.onmouseout = function(){ // 鼠标离开img clearInterval(overTimer); // 清除鼠标接触的定时器 outTimer = setInterval(function(){ // 设置鼠标离开触发的定时器,时距15毫秒 width = width - 2; // 宽度-2 height = height - 1; // 高度-1 marginLeft = marginLeft + 1; // 左外边距+1 marginTop = marginTop + 0.5; // 上外边距+0.5 img.style.width = width + ‘px‘; // 设置img宽度 img.style.height = height + ‘px‘; // 设置img高度 img.style.marginLeft = marginLeft + ‘px‘; // 设置img左外边距 img.style.marginTop = marginTop + ‘px‘; // 设置img上外边距 if (width <= 200) { // 如果img宽度小于某值 clearInterval(outTimer); // 清除定时器 }; }, 15); }; };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。