利用css3和js实现旋转木马图片小demo
时间:2019-08-12
本文章向大家介绍利用css3和js实现旋转木马图片小demo,主要包括利用css3和js实现旋转木马图片小demo使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
先看效果图:
上源码
html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="./index.css"> </head> <body> <div class="box"> <img src="./img/1.png" alt=""> <img src="./img/2.png" alt=""> <img src="./img/3.png" alt=""> <img src="./img/4.png" alt=""> <img src="./img/5.png" alt=""> <img src="./img/6.png" alt=""> <img src="./img/1.png" alt=""> <img src="./img/2.png" alt=""> <img src="./img/3.png" alt=""> <img src="./img/4.png" alt=""> <img src="./img/5.png" alt=""> <img src="./img/6.png" alt=""> </div> <script src="./jquery-3.3.1.js"></script> <script src="./index.js"></script> </body> </html>
css代码
*{ margin:0; padding:0; } html,body{ width:100%; height:100%; background-image:radial-gradient(circle at center center,rgba(244,23,234,0.2),rgba(0,0,0)); background-color:#000; overflow: hidden; perspective: 1000px; } .box{ position: relative; width:120px; height:180px; margin:200px auto; transform-style:preserve-3d; } .box img{ position: absolute; width:100%; height:100%; -webkit-box-reflect: below 10px -webkit-linear-gradient(top,rgba(0,0,0,0) 40%,rgba(0,0,0,0.5) 100%); /*倒影*/ }
js(jquery)代码
window.onload = function () { var img = $('img'); var len = img.length; var deg = 360 / len; for (var i = 0; i < len; i++) { $('img').eq(i).css({ 'transform': 'rotateY(' + i * deg + 'deg) translateZ(300px)', 'transition': 'transform 0.5s linear ' + (len - 1 - i) * 0.1 + 's' }) //实现 刚开始的发牌效果。 }; bindEvent(); } function bindEvent() { var box = $('.box'); var body = $('body'); var lastX, lastY, nowX, nowY, disX, disY; var roX = 0, roY = 0; var timer; body.on('mousedown', function (e) { clearInterval(timer); lastX = e.clientX; lastY = e.clientY; body.on('mousemove', function (e) { nowX = e.clientX; nowY = e.clientY; disX = nowX - lastX; disY = nowY - lastY; roX -= disY * 0.2; roY += disX * 0.2; roX = roX % 360; roY = roY % 360; box.css({ 'transform': 'rotateX(' + roX + 'deg) rotateY(' + roY + 'deg)', }); lastX = nowX; lastY = nowY; }) return false; }).on('mouseup', function () { body.off('mousemove'); // 以下是缓冲 timer = setInterval(function () { disX *= 0.95; disY *= 0.95; roX -= disY * 0.5; roY += disX * 0.5; roX = roX % 360; roY = roY % 360; box.css({ 'transform': 'rotateX(' + roX + 'deg) rotateY(' + roY + 'deg)', }); if (Math.abs(disX) < 0.01 && Math.abs(disY) < 0.01) { clearInterval(timer); } }, 20); }); }
原文地址:https://www.cnblogs.com/yanggeng/p/11339543.html
- Office Web Apps
- hadoop: hive 1.2.0 在mac机上的安装与配置
- ASP.NET 5运行时升级到Beta5
- WordPress免插件仅代码实现“返回顶部、返回底部、评论”效果(样式二)
- jQuery/asp.net mvc DateTime 的处理
- WordPress主题下funtions.php的一段“恶意”代码
- eclipse/intellij idea 远程调试hadoop 2.6.0
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- 区块链技术发展前景可观,银链原子链已开始投入正常交易
- 分布式服务框架 dubbo/dubbox 入门示例
- SmtpClient发送邮件遭遇The specified string is not in the form required for a subject.
- 彻底解决WordPress 中 半角全角字符转义 的问题
- 利用Spring的@Async异步处理改善web应用中耗时操作的用户体验
- Oracle中使用Entity Framework 6.x Code-First方式开发
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring中的Spring JSR-250 注释之@Resource
- python 用opencv接口把视频逐帧转化为图片
- Element el-tree树形控件的数据处理方法
- 基于docker快速搭建hive环境
- flag区分大小写的sql盲注
- Spring中的Spring JSR-250 注释
- WebRTC 入门指南
- 【DB笔试面试844】在Oracle中,tnsnames.ora文件的作用是什么?
- Spring 基于注解(annotation)的配置之@Qualifier注解
- Spring 基于设值函数的依赖注入
- Spring 基于构造函数的依赖注入
- 绕过卡巴进程保护的一些总结
- Loki | 数据过期自动删除策略设计
- 【短道速滑二】古老的基于亮度平均值的自动Gamma校正算法。
- Docker-Compose基础与实战,看这一篇就够了