javascript - 当图像不在 ul li 列表中时,如何在 css 中旋转图像

标签 javascript jquery html css

这对其他人来说似乎很容易,但我无法弄清楚。当悬停在 li > a 上时,我想旋转 ul 列表之外的图像。提前谢谢你。

<div class="container">               
     <ul id="mylist" data-angle="all">
          <li class="item"><a href="#home">A</a></li>
          <li class="item"><a href="#home">B</a></li>
          <li class="item"><a href="#home">C</a></li>
          <li class="item"><a href="#home">D</a></li>
          <li class="item"><a href="#home">E</a></li>
     </ul>
     <a href="#link" class="button">
          <img src="~/assets/logo/compass.png" />
     </a>
</div>

最佳答案

这是一个 JS 解决方案。正如我在评论中提到的,由于图像在列表之外,并且您在该列表中悬停的 anchor 元素当然不是图像的 sibling 或父元素,我认为不可能基于图像仅使用纯 CSS 悬停标记中的 anchor 元素。

var els = document.getElementsByClassName("item");
for(var i = 0; i < els.length; i++) {
  var btnImg = document.getElementById("rotateImg");
  els[i].addEventListener("mouseover", function() {
    btnImg.className += " rotate";
  }, false);
  els[i].addEventListener("mouseout", function() {
    btnImg.classList.remove("rotate");
  }, false);
}
#rotateImg {
  transition: transform 1s linear;
}
#rotateImg.rotate {
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
}
<div class="container">               
     <ul id="mylist" data-angle="all">
          <li class="item"><a href="#home">A</a></li>
          <li class="item"><a href="#home">B</a></li>
          <li class="item"><a href="#home">C</a></li>
          <li class="item"><a href="#home">D</a></li>
          <li class="item"><a href="#home">E</a></li>
     </ul>
     <a href="#link" class="button">
          <img id="rotateImg" src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRs5uw4irxGko9F06bx4-M7T8eka0R0PK79NAj2rigANKGhQs_BGwAvZg0" />
     </a>
</div>

上面的 JS 循环遍历每个列表项中 anchor 元素的每个实例,并为每个添加事件监听器(悬停和非悬停)。如果用户将鼠标悬停在 anchor 元素上,列表外的图像将旋转 180 度。一旦用户将鼠标从 anchor 元素移开,该类就会被删除。

关于javascript - 当图像不在 ul li 列表中时,如何在 css 中旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961707/

相关文章:

javascript - 如何从表的列(而不是标题)获取行的单元格值?

javascript - webAudio Panner 和/或 SteroPanner 节点是否在左右声道之间引入了合适的延迟?

jquery - 使用jquery过滤

javascript - 从 AJAX 调用返回和显示数据的最佳实践

jquery - 有没有用于在 Google 日历中制作 "quick add"功能的 js 库?

javascript - 在 React-Native 中将字符串值从一个页面传递到另一个页面

javascript - 无法从 AngularJS 数据中进行 NG-Repeat 数组(英雄联盟)

javascript - 在 web worker 和主线程之间传递大量数据

html - 转换缩放 css 在 ie8 中不起作用

javascript - 启用禁用的元素