html js 鼠标变图片大小,js之图片变大变小效果

1、当鼠标移到图片上,图片变大;当鼠标移出图片,图片变小,效果如图:

c163c928e3d53b6757b3c778431f385d.png

363ce0be4a2f8670d738315cd869359d.png

2、原理不难,就是鼠标over时,设置一个定时器,让图片逐渐变大,鼠标out时同理,看下最初的简略代码你就会明白:

html>

div {

width: 200px;           /* 宽度 */

height: 100px;          /* 高度 */

border: 1px solid red;  /* 边框 */

margin: 100px auto;     /* 外边距 */

overflow: hidden;       /* 溢出隐藏 */

}

img {

width: 200px;           /* 宽度 */

height: 100px;          /* 高度 */

cursor: pointer;        /* 鼠标变手 */

}

// js代码

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);

};

};

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值