javascript - 如何在悬停时将元素旋转 180 度超过 150 毫秒?

标签 javascript jquery css rotation transform

鼠标悬停时,我需要在 150 毫秒的时间间隔内将元素逆时针旋转 180˚,然后在鼠标移开时,我需要在 150 毫秒内将元素逆时针旋转回原来的 0˚。

我愿意使用 CSS3、jQuery 和 JavaScript。

我使用 Chrome,但我还需要让它适用于 Firefox 和 Safari。不太担心 IE。

最佳答案

使用 CSS3 transformtransition 和 Javascript 添加/删除类。

演示:http://jsfiddle.net/ThinkingStiff/AEeWm/

HTML:

<div id="rotate">hover me</div>

CSS:

#rotate {
    border: 1px solid black;
    height: 100px;
    width: 100px;
}

.over {
    transform: rotate( -180deg );            
    transition: transform 150ms ease;
}

.out {
    transform: rotate( -360deg );            
    transition: transform 150ms ease;
}
​

脚本:

var rotate = document.getElementById( 'rotate' );

rotate.addEventListener( 'mouseover', function () {

    this.className = 'over';

}, false );

rotate.addEventListener( 'mouseout', function () {

    var rotate = this;

    rotate.className = 'out';
    window.setTimeout( function () { rotate.className = '' }, 150 );

}, false );

​

关于javascript - 如何在悬停时将元素旋转 180 度超过 150 毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441256/

相关文章:

CSS 组合表格样式

javascript - Ember 数据属于协会(JSON 格式?)

JavaScript 效率

javascript - jQuery Form to Wizard,隐藏某个步骤

javascript - 使用内部 API 调用刷新 div

javascript - 日期选择器模式向下滚动页面

javascript - jquery 滚动函数只工作一次

html - Bootstrap 4 div 高度不扩展以适合内容

javascript - 简单的 JavaScript 代码不起作用

html - 如何在 Bulma CSS 中内联放置背景图像和文本?