立体导航翻转案例

 <div class="box"><!-- 立方体 --><ul><li><img src="img1/1.jpg" alt=""></li><li><img src="img1/2.jpg" alt=""></li><li><img src="img1/3.jpg" alt=""></li><li><img src="img1/4.jpg" alt=""></li></ul><!-- 按钮 --><div class="btns"><a href="javascript:;"><</a><a href="javascript:;">></a></div></div>
  * {margin: 0;padding: 0;list-style: none;}.box {width: 560px;height: 300px;border: 1px solid #ccc;margin: 50px auto;position: relative;}ul {width: 100%;height: 100%;position: relative;/* 转化为立方体 */transform-style: preserve-3d;}li {width: 100%;height: 100%;position: absolute;}/* 前面 */li:nth-child(1) {transform: translateZ(150px);}/* 上面 */li:nth-child(2) {transform: rotateX(90deg) translateZ(150px);}/* 后面 */li:nth-child(3) {/* //先让元素背向我们, */transform: rotateX(180deg)translateZ(150px);}/* 下面 */li:nth-child(4) {transform: rotateX(-90deg) translateZ(150px);}/* 按钮 */.btns {width: 100%;height: 60px;position: absolute;top: 50%;transform: translateY(-50%) translateZ(150px);}.btns a {width: 40px;height: 60px;display: block;background-color: rgba(0,0,0,.5);color: #fff;text-align: center;line-height: 60px;text-decoration: none;float: left;}.btns a:last-child {float: right;}
  <script>//要实现的效果: 点击左右两侧的按钮,让立方体ul 旋转 沿着X轴旋转90deg//1. 分别获取左右两侧的按钮var rBtn = document.querySelector('.btns a:last-child');var lBtn = document.querySelector('.btns a:first-child');//2. 获取ul标签var  ul = document.querySelector('ul');//3. 点击按钮,让ul旋转(给ul设置旋转的样式)//设置一个变量,来实现左右点击键的翻转数var i = 0;//定义一个变量,告诉程序当前动画是否结束flag = true; //节流阀或者设置标志位rBtn.onclick = function() {if(flag){//动画正在执行标记flag = false;i--;//旋转的角度是一个可变的角度ul.style.transform = 'rotateX('+i*90+'deg)';ul.style.transition = 'all 1s linear';}}lBtn.onclick = function () {if (flag) {//动画正在执行标记flag = false;i++;ul.style.transform = 'rotateX('+i*90+'deg)';ul.style.transition = 'all 1s linear';}}//给 ul 注册这个事件//ontransitionend : 当动画执行结束后就会执行这个事件ul.ontransitionend = function(){//当动画执行完成后,将falg改为trueflag = true;}</script>

实现效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Uncontrolled memory mapping in camera driver (CVE-2013-2595)

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主同意不得转载。https://blog.csdn.net/hu3167343/article/details/34434235 /* 本文章由 莫灰灰 编写&#xff0c;转载请注明出处。 作者&#xff1a;莫灰灰 邮箱&#xff1a; minzhenfei163.com */ 1漏洞描写…

表格隔行变色

<body><table border"0" align"center" cellspacing"1" cellpadding"0"><caption>恭喜发财</caption><thead><tr><th>代码</th><th>名称</th><th>最新公布净值<…

启动Cognos时报0106错误

1. 问题描述 启动Cognos失败&#xff0c;报错代码为0106。 2. 问题分析 是jdk版本不兼容。 3. 解决方案 方案一&#xff1a;更换jdk1.6&#xff0c;可以使用免安装版&#xff0c;不需要卸载原有的jdk将java_home的路径替换成jdk1.6的路径。 方案二&#xff1a;使用Cognos自带jd…

项目管理的测试版发布

最近有时间将以前没有写完的项目管理程序进一步完善&#xff0c;加入了项目任务之间的关连。功能&#xff1a;1、任务的关连Start to finishStart to startFinish to startFinish to finish2、任务关连表环路检测3、采用MVC模式进行开发4、自动导出XML5、双击连接线可以设置、删…

剑指offer.机器人的运动范围

地上有一个 m 行和 n 列的方格&#xff0c;横纵坐标范围分别是 0∼m−1 和 0∼∼n−1。一个机器人从坐标0,0的格子开始移动&#xff0c;每一次只能向左&#xff0c;右&#xff0c;上&#xff0c;下四个方向移动一格。但是不能进入行坐标和列坐标的数位之和大于 kk 的格子。请问…

Tab栏切换布局分析

<body><div class"tab"><div class"tab_list"><ul><li class"current">商品介绍</li><li>规格与包装</li><li>售后包装</li><li>商品评价(50000)</li><li>手机社…

CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码

CLR是Common Language Runtime的缩写&#xff0c;是.NET程序集或可执行程序运行的一个虚拟环境。CLR用于管理托管代码&#xff0c;但是它本身是由非托管代码编写的&#xff0c;并不是一个包含了托管代码的程序集&#xff0c;所以不能使用IL DASM进行查看&#xff0c;但CLR以dll…

表单的全选取消全选

<div class"wrap"><table border"1" cellspacing"0" cellpadding"0"><caption>恭喜发财</caption><thead><tr><th><input type"checkbox" id"j_cbAll" checked&quo…

VUE 数据绑定模块渲染 computed(实现通过路由id 查询数据json结构,对应的值来放在面包屑中)...

异步请求的值放在vuex中&#xff0c;然后页面挂载该数据和渲染页面 computed 计算属性是基于它的依赖缓存的。计算属性在它的相关依赖发生改变时会重新取值&#xff0c;所以当ajax请求回来的数据发生变化时&#xff0c;计算属性的值会进行更新&#xff0c;相关的模板引用也会重…

ThinkJs笔记琐碎

ThinkJs笔记琐碎 记录一些琐碎的在使用ThinkJs遇到的问题 静态资源访问 ThinkJs默认production环境关闭对www下资源的相对路径的访问&#xff0c;官方建议通过nginx转向的地址的绝对路径访问&#xff0c;想要在production环境访问相对路径的话需要到src/config/middleware.js里…

js(Dom+Bom)第二天(1)

JavaScript-DOM操作 核心知识点 className操作标签样式style属性方式操作标签样式操作表单控件 学习目标 能够通过className方式给标签设置样式能够通过style方式给标签设置样式能够获取表单控件中的值 操作元素样式 语法&#xff1a;1.dom.className 类名;2.dom.style.属…

HDU 4339 Query

算法: 比赛时没有想到好的算法&#xff0c;暴力是O&#xff08; Q * N &#xff09;肯定超时。 赛后&#xff0c;线段树&#xff0c;树状数组&#xff0c;HASH都能AC&#xff0c;想了下&#xff0c;的确用树状数组 时间复杂度就可以优化到O&#xff08;Q * lgN * lgN) 2000msAC…

201904快速阅读术

在看过了几本数之后&#xff0c;发现原来培养读书的习惯好像也不太难&#xff0c;“将读书融入生活&#xff0c;框定读书时间” 生活中&#xff0c;我确实也是这样执行了。利用每天上下班的时间听书&#xff0c;有些觉得可以读快的书籍用了1.5倍速度在听&#xff0c;难懂的部分…

js(Dom+Bom)第二天(2)

webAPI 00-操作图片 知识点-获取图片src属性 图片对象.src ----> 获取图片路径注意: 1. 获取到的图片路径是一个绝对路径知识点-动态的给图片标签设置路径 图片对象.src 图片路径;注意: 1.可以设置绝对路径(不推荐) 2.可以设置相对路径课堂案例-切换图片案例 01-操作标…

javaScript今日总结

javascript简单介绍ECMAScript 1.语法 2.变量&#xff1a;只能使用var定义&#xff0c;如果在函数的内容使用var定义&#xff0c;那么它是一个局部变量&#xff0c;如果没有使用var它是一个全局的。弱类型&#xff01; 3.数据类型&#xff1a;原始数据类型(undefined/null/stri…

使用Connector / Python连接MySQL/查询数据

使用Connector / Python连接MySQL connect()构造函数创建到MySQL服务器的连接并返回一个 MySQLConnection对象 在python中有以下几种方法可以连接到MySQL数据库&#xff1a; 1.使用connect&#xff08;&#xff09;构造函数import mysql.connectorcnx mysql.connector.connect…

最简方式 表格编辑 基于 el-table

共下面5点1.新增一个显示和隐藏的参数2.在显示那边新增一个input框&#xff0c;用v-model绑定数据&#xff0c;用v-if来显示和隐藏3.给之前的显示的span标签添加v-else 和上面形成if else4.编辑和保存按钮同理&#xff0c;然后编辑按钮触发的任务将所有输入打开。即seen置为tru…

js(Dom+Bom)第三天(1)

JavaScript-DOM 节点的层次结构 hasChildNodes() 【父元素中是否包含子节点】 dom.hasChildNodes() 总结&#xff1a;1.该方法返回的是一个布尔类型的结果用来判断当前元素中是否存在子节点。2.该方法会将元素中所有的节点都获取&#xff08;包括空格&#xff0c;回车符&#…

Spring Boot 自动配置原理

自动配置原理配置文件到底能写什么&#xff1f;怎么写&#xff1f;自动配置原理&#xff1b; 参考&#xff1a;https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#common-application-properties配置文件能配置的属性参照1、自动配置原理&#xff…

这 4 款实用小工具,能让你的电脑变得好用又骚气

在日常生活中&#xff0c;我们总会遇到一些重复又繁琐的工作&#xff0c;它们不仅容易令人烦躁&#xff0c;也极大拖累了咱们的效率。其实&#xff0c;咱们完全可以通过一些工具提升效率&#xff0c;为自己节约出大量时间来干别的~今天就再给大家推荐 4 个免费的 Windows 平台的…