【问题标题】:Control CSS via JavaScript or jQuery通过 JavaScript 或 jQuery 控制 CSS
【发布时间】:2014-04-28 20:54:11
【问题描述】:

我正在寻找一种方法来控制悬停时特定项目的 CSS。由于它不是直接在父系谱系中的元素,所以我不能使用 CSS。

<article class="portfolio-item web">
  <a data-rel="prettyPhoto" href="http://vimeo.com/34266952">
    <img src="http://localhost/wordpress/wp-content/themes/dewuske/images/portfolio/introspection.jpg" alt="">
    <span class="genericBeaconIsotope">
      <span class="beaconContainer">
        <span class="beaconBar"></span>
        <span class="beaconCircle1"></span>
        <span class="beaconCircle2"></span>
        <span class="beaconText">Introspection</span>
      </span>
    </span>
  </a>
</article>

我正在尝试将鼠标悬停在 beaconContainer 上并影响图像。它应该像翻转一样起作用。这是我想要在 CSS 中完成的工作:

    -webkit-transform: scale(10);    
    -moz-transform: scale(10);    
    -o-transform: scale(10);    
    -ms-transform: scale(10); 
    transform: scale(10);    
    -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: alpha(opacity=0);
    opacity:0;
    transition: all 1s ease-out 0s;
    transition-property: all;
    transition-duration: 1s;
    transition-timing-function: ease-out;
    transition-delay: 0s;
}

我该怎么做呢?我对 JavaScript 或 jQuery 或如何从它们调用事件知之甚少,尤其是像这样。谢谢

【问题讨论】:

    标签: javascript jquery function css onmouseover


    【解决方案1】:

    JQuery 提供了几种可能对你有帮助的方法。

    您可以使用 .css() 方法手动设置 CSS,或者使用 .addClass().removeClass() 方法将 CSS 类动态应用于元素(这是我的首选方式),以响应用户事件比如鼠标悬停等。

    注意:这是专门针对您的问题提出的问题的 jQuery 解决方案。

    【讨论】:

    • 仅适用于 jQuery 库。你应该提到这一点。
    【解决方案2】:

    在 jQuery 中,您可以使用 addClass 和 removeClass 函数。将所有的 css 保留在 css 文件中,然后只需更改每个元素的类。

    http://api.jquery.com/addclass/

    【讨论】:

      【解决方案3】:

      您需要创建一个带有您想要应用的样式的 CSS 类:

      .rollover {
          /* your styles here */
      }
      

      还有一些 jQuery 可以在鼠标悬停在 beaconContainer 上时启用样式:

      $('article.portfolio-item.web').each(function(index, articleElem) {
         var article = $(articleElem);
         var image = article.find('img');
         var container = article.find('.beaconContainer');
         container.mouseover(function() { image.addClass("rollover"); });
         container.mouseout(function() { image.removeClass("rollover"); });
      });
      

      如果页面上有多篇文章,它也可以工作。

      【讨论】:

      • 我是这个网站的新手,所以我无法评价这个答案,但请给 Maciej 积极的反馈。这个答案就像我需要的那样工作。我不完全确定它是如何知道它需要影响的“this”元素,但它就像一个魅力。
      • 我认为您可以通过接受我的回答 (meta.stackexchange.com/questions/5234/…) 来奖励我 25 个代表。干杯。
      【解决方案4】:

      您可以创建 CSS 类,然后在悬停时将其添加到容器中,然后在鼠标移出时删除该类:

      $('.beaconContainer img').hover(function(){
          $( this ).addClass(cssClassName);
        }, function() {
         $( this ).removeClass(cssClassName);
        }
      );
      

      【讨论】:

      • 他想影响形象,而不是beaconContainer。否则你真的不应该为此使用 jQuery。
      • 谢谢,但他是对的。我会使用 CSS 来控制它,除了它不在直接层次结构中。它上升了几个级别,然后它是兄弟元素的子元素。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多