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 相关文章推荐
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
Nov 18 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
Jan 17 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
Aug 04 jQuery
JavaScript事件对象深入详解
Dec 30 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
Sep 14 Javascript
javascript 数组(list)添加/删除的实现
Dec 17 Javascript
React实现todolist功能
Dec 28 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
[01:54]TI珍贵瞬间系列(三):翻盘
2020/08/28 DOTA
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python 重定向获取真实url的方法
2018/05/11 Python
python 搜索大文件的实例代码
2019/07/08 Python
python如何编写win程序
2020/06/08 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
人力资源专员岗位职责
2014/01/30 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
融资合作协议书范本
2014/10/17 职场文书
培训通知书模板
2015/04/17 职场文书
捐书活动倡议书
2015/04/27 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL