0

我在尝试制作仅显示我的社交媒体按钮的标记解决方案时遇到了更糟糕的情况。我有两个用于 facebook 和 twitter 的占位符按钮,我想设置它,以便当用户将鼠标悬停在占位符上时,它会淡出并且共享按钮会淡入。

现在,我让它在所有好的浏览器中都能正常工作,但当然,IE(每个版本)都不喜欢它。虽然按钮会淡入,但任何鼠标移动都会导致它们闪烁,就像 IE 无法确定鼠标是否仍在悬停的元素上一样。

这就是我的意思:

http://jsfiddle.net/cKKxF/

任何不想离开堆栈的人的代码:

   <div class="share-buttons-wrapper">
      <div class="buttons-wrapper">
        <div class="facebook share-button">F</div>
        <div class="twitter share-button">T</div>
        <div class="rendered-buttons">
            <div class="fb-like" data-send="false" data-width="450" data-show-faces="false"></div>
            <a href="https://twitter.com/share" class="twitter-share-button"></a>
        </div>
      </div>
    </div>

.share-buttons-wrapper{
    float:left;
    border-left:1px solid #dfdfdf;
    height:75px;
    width:55px;
    padding-left:20px;
    position:relative;
}


    .share-buttons-wrapper > .buttons-wrapper
    {
        cursor:pointer;

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=196749420435782";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

我真的要在这里失去它了。我怎样才能使这项工作?

另外 - 我也尝试了 jQuery,因为我很沮丧,但似乎将鼠标移动到共享按钮(它们是 iframe)中破坏了它。所以我猜 js 似乎 iframe 的内容在悬停元素之外?我不知道。

4

1 回答 1

0

添加这个额外的脚本似乎可以解决它。http://jsfiddle.net/David_Knowles/SmEqd/

$(".buttons-wrapper").hover(
    function () {
$(".rendered-buttons").css("visibility","visible");
    },
    function () {
$(".rendered-buttons").css("visibility","hidden");
    }
);

js冒泡可以很方便

于 2013-05-14T21:00:42.073 回答