使用 JavaScript 触发 CSS 转换 [重复]

Posted

技术标签:

【中文标题】使用 JavaScript 触发 CSS 转换 [重复]【英文标题】:Trigger CSS transition with JavaScript [duplicate] 【发布时间】:2016-08-29 05:08:44 【问题描述】:

我正在学习 javascript,遇到了一个简单的问题: 当另一个元素仅通过 JavaSript 悬停时,我想触发 CSS 动画(旋转蓝色螺母)。

这是我到目前为止所得到的,我不知道我在这个 sn-p 中缺少什么:

$('#menu').hover(
  function () 
    $('#nut').addClass('spin');
  ,
  function () 
    $('#nut').removeClass('spin');
  
);
#nut 
    transform-origin: center center;
    transform-style: preserve-3D;
    transition: all 1s ease;


.spin 
  transform: rotate(180deg);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg id="menu" x="0px" y="0px"   viewBox="0 0 71.39 71.39" enable-background="new 0 0 71.39 71.39" xml:space="preserve">
  <polygon id="nut" fill="#0000ff" points="66.605,53.541 35.694,71.388 4.784,53.541 4.784,17.849 35.694,0.002 66.605,17.849"/>
</svg>

非常感谢您的帮助!提前致谢!

【问题讨论】:

【参考方案1】:

唯一缺少的是jquery。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<svg id="menu" x="0px" y="0px"   viewBox="0 0 71.39 71.39" enable-background="new 0 0 71.39 71.39" xml:space="preserve">
  <polygon id="nut" fill="#0000ff" points="66.605,53.541 35.694,71.388 4.784,53.541 4.784,17.849 35.694,0.002 66.605,17.849"/>
</svg>

看看这里的代码:

https://jsfiddle.net/j2bon1gc/

其实它不仅没有jquery,而且为了工作还特地缺了一个大于2.2的jquery版本,也就是实现这个功能的版本。

看这里:jQuery SVG, why can't I addClass?

在我为此打开的元问题中:Why isn't jQuery working in this question's code snippet?

【讨论】:

效果很好,但这听起来可能很奇怪......我在 sn-p O_o 上安装 jQuery 并没有得到相同的效果(参见编辑后的帖子) 应该只是一些url访问的东西。 应该可以的。我在 meta 中打开了一个关于这个问题的问题:meta.***.com/questions/322366/…

以上是关于使用 JavaScript 触发 CSS 转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 JavaScript 设置和触发 css 转换

在 JavaScript 中触发 CSS 动画

普通 javascript 触发 css 淡出,ajax 加载内容,使用 CSS 淡入

如何使用 Javascript 键盘事件触发 CSS Sprite 动画

页面加载时触发CSS转换属性[重复]

css/javascript:检查触发悬停效果的图像像素