前端摩天轮效果实现,鼠标移入停止,移出继续转动。

news/2024/11/7 18:29:50/

  最近实现了摩天轮的效果,记录下实现原理与过程,备忘,分享。

  兼容性不高,IE10,11,Chrome41。 360浏览器(急速模式会有卡顿的感觉)

  使用css3+js控制了摩天轮旋转,以及鼠标移入移出的停止动画的效果

  原理:css3中有旋转的特性 transform,可以用于控制一个元素的旋转。因此想要产生旋转的效果,先创建一个父级div(背景为一个圆),并且设置了旋转特性。该圆便可转动。然后圆圈上的点,用绝对定位放到想要放的位置。

如果这个时候旋转,那会发现除了父级旋转,里边的圆圈上的点也会跟着旋转,这样并不是想要的效果。因此要在子元素,一个个的点上边也设置旋转动画,而且角度与父级相反,旋转的周期设置成相同,产生的效果便会是跟摩天轮一样的效果了

对应分别为旋转的角度,周期,线性旋转,循环。

 而鼠标悬停,则是由停止动画的属性

存在的问题与想法

1.以上是使用css3实现的,感觉兼容性不高,如果要兼容ie早期版本,目前想法只能是用js去实现了。

js实现看了下搜到的例子,感觉卡顿感也是较为严重,暂时想不懂如何优化了

2.这个css3实现的,也可以改为js控制旋转,但是会有问题。实现原理为,用js控制div的旋转角度,

(1)设置父元素子元素旋转的角度,angel=0;

-webkit-transform:rotate((angel+=10)deg); 子元素就 (angel-=10)deg,

(2)写一个定时器循环转动角度,设置转动时间不大于动画效果的时间

'-webkit-transform':'rotate('+nowAngel2+'deg)',
'-webkit-transition':'-webkit-transform 10s linear'

然后就可以循环的转了,需要注意的是,js转动角度,并不会到360度就相当于0度,如果设置350,然后设置转到0度,会发现圆圈会往回转,只能是角度一直叠加了。

这种效果的问题有:1.卡顿明显些 2.鼠标移入停止不好做,因为鼠标移入时,定时器还在走,所以会有个延迟的停止动画的效果,交互差 3.转动过程中,我点击到其他网页或其他软件,过一段时间再回来看这个旋转,会发现速度急速转,因为定时器将之前的度数已经加了很多了,而时间设置的还是10s,这个问题是因为切换到其他页面是,定时器继续走,而圈可能是停止转动了,只有等我点回来是,圈旋转才开始响应。

有空再写下如何点击旋转控制一定的角度,而且一直曹一个方向,而不是反方向往回转


http://www.ppmy.cn/news/911179.html

相关文章

css33d摩天轮动画

摩天轮代码 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>*{margin: 0;padding: 0;}html,body{height:100%;}body{background: url("img3/2.jpg")no-repeat;background-size:100%…

【力扣1599】 经营摩天轮的最大利润

你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱&#xff0c;但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。 给你一个长度为 n 的数组 customers &…

摩天大楼

Problem:摩天大楼 Description: 随着科技的发展&#xff0c;某国家准备修建一座高楼&#xff0c;高度为n&#xff08;n<1e18&#xff09;&#xff0c;来展现他们国家的强大国力&#xff0c;他们国家有两支强大的施工队&#xff0c;国家于是把修建计划给了这两只施工队&…

css3实现摩天轮特效

css3效果摩天轮 效果图html代码css3代码完整代码 效果图 html代码 <div class"box"><div class"wheel"><ul><li></li><li></li><li></li><li></li><li></li><li>&l…

LC-1599. 经营摩天轮的最大利润(贪心)

1599. 经营摩天轮的最大利润 难度中等39 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱&#xff0c;但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。…

LeetCode 1599. 经营摩天轮的最大利润

【LetMeFly】1599.经营摩天轮的最大利润 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-profit-of-operating-a-centennial-wheel/ 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮…

前端HTMl摩天轮展示

前端HTMl摩天轮展示 效果图演示&#xff1a; 主要函数&#xff1a; transform函数&#xff1a; -360度是指逆时针旋转360度 transform: rotate(-360deg);绝对定位&#xff1a; 绝对定位是找到自己的拥有定位的父级节点位置&#xff0c;父级没有就继续向上&#xff0c;最后都…

巴黎没有摩天轮

巴黎没有摩天轮(穷忙时代最触动内心的超人气畅销书&#xff0c;在职场中面对自己&#xff0c;在「摩天轮」里贴近爱情) 内容简介 有一种人生&#xff0c;叫做“摩天轮”&#xff1a;你始终站在观光舱里透过玻璃看风景&#xff0c;即使转到最高点&#xff0c;即使无限接近&#…