JS与CSS3实现图片响应鼠标移动放大效果示例


Posted in Javascript onMay 04, 2018

本文实例讲述了JS与CSS3实现图片响应鼠标移动放大效果。分享给大家供大家参考,具体如下:

今天看网易的网站上,当我把鼠标放上去的时候发现图片放大,移开图片缩小,于是自行尝试,结果如下。

方法一:使用js和css3

效果如图:

JS与CSS3实现图片响应鼠标移动放大效果示例

这样的实现非常简单,就是利用js的mouseovermouseout事件,但是不知道如何使图片从中间放大,日后再行尝试吧,代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>网易图片动画</title>
  <style>
    div.img {
      width: 220px;
      height: 170px;
      margin: 200px auto;
      overflow: hidden;
    }
    img.bigger {
      width: 100%;
      height:100%;
    }
    @keyframes bigger {
      from {width: 100%;height: 100%;}
      to {width: 110%; height: 110%;}
    }
    @keyframes smaller {
      from {width: 110%;height: 110%;}
      to {width: 100%; height: 100%;}
    }
  </style>
</head>
<body>
  <div class="img">
    <img class="bigger" src="http://cms-bucket.nosdn.127.net/d9b6afa0bad743f88c1780c3a064202c20170218074455.jpeg?imageView&thumbnail=185y116&quality=85" alt="">
  </div>
  <script>
    var img = document.querySelector("img");
    img.onmouseover = function () {
      img.style.cssText = "animation: bigger 2s;width:110%; height:110%;";
    }
    img.onmouseout = function () {
      img.style.cssText = "animation: smaller 2s";
    }
  </script>
</body>
</html>

方法二:使用css3方法

css3的确给我们带来了很多好处,是我们处理问题更加方便。 这里使用 transform:scale();即可实现,但是这个要结合hover来使用,并且设置好transition的时长才有更好的效果,话不多说效果如下:

JS与CSS3实现图片响应鼠标移动放大效果示例

这个效果是不是好了很多呢,可以看到它自身就是从中心开始扩大的。
但是只要我们添加transform-origin属性就可以很好地控制变化的中心点了,如:

transform-origin: 0 0;
transform-origin: 100% 0;
transform-origin: 0 100%;
transform-origin: 100% 100%;

分别表示从左上角、右上角、左下角、右下角扩张,可想而知,默认的transform-origin为50% 50%.

源码如下:

<!DOCTYPE html>
<html>
<head>
  <title>网易图片动画</title>
  <style>
    div.img {
      width: 220px;
      height: 170px;
      margin: 200px auto;
      overflow: hidden;
    }
    img.bigger {
      width: 100%;
      height:100%;
      transition:transform 2s;
    }
    img.bigger:hover{
      transform: scale(1.2,1.2);
    }
  </style>
</head>
<body>
  <div class="img">
    <img class="bigger" src="http://cms-bucket.nosdn.127.net/d9b6afa0bad743f88c1780c3a064202c20170218074455.jpeg?imageView&thumbnail=185y116&quality=85" alt="">
  </div>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript中的var_dump函数实现代码
Sep 07 Javascript
在javascript中对于DOM的加强
Apr 11 Javascript
javascript 得到文件后缀名的思路及实现
May 09 Javascript
Jquery 动态生成表格示例代码
Dec 24 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Dec 02 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
AngularJS 限定$scope的范围实例详解
Jun 23 Javascript
webstorm添加vue.js支持的方法教程
Jul 05 Javascript
jQuery事件委托代码实践详解
Jun 21 jQuery
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 #Javascript
JS模拟实现哈希表及应用详解
May 04 #Javascript
vue地区选择组件教程详解
May 04 #Javascript
Vue 按键修饰符处理事件的方法
May 04 #Javascript
vue mint-ui tabbar变组件使用
May 04 #Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 #Javascript
原生javascript AJAX 三级联动的实现代码
May 04 #Javascript
You might like
php计算当前程序执行时间示例
2014/04/24 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
Javascript Math对象
2009/08/13 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
Bootstrap 布局组件(全)
2016/07/18 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python同时替换多个字符串方法示例
2019/09/17 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
优秀应届毕业生自荐信
2013/11/16 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
岗位聘任书范文
2014/03/29 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
土建施工员岗位职责
2014/07/16 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
详解MySQL集群搭建
2021/05/26 MySQL
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫