javascript - jQuery Toggle Slide 在 Safari 中不起作用

标签 javascript jquery html css slide

我有一个带有悬停效果的砌体网格。悬停效果在 Chrome 中运行良好,但在 Safari 中不起作用。在这里查看代码:

http://codepen.io/ameliarae/pen/MbKjWv

当您在 Safari 中将鼠标悬停在图像上时,会发生以下情况:

enter image description here

紫色叠加层没有滑出,没有达到其容器的整个宽度,并且看起来在水平和垂直方向上都被裁剪了。在 Chrome 中,它正常工作(滑出并且紫色覆盖层是容器的整个宽度和高度)。

相关代码如下:

HTML:

<article>
  <section class="portfolio-item">
    <div class="overlay">
    <div class="text-bloq">
    <p>How Truthful are Food Labels? Interactive Quiz</p><br>
    <span class="type">Design &amp; Dev</span>
    </div>
    </div>
    </section>
</article>

SCSS:

 article {
     -moz-column-width: 16em;
     -webkit-column-width: 16em;
     -moz-column-gap: 1em;
     -webkit-column-gap: 1em; 
     section {
         display: inline-block;
         margin:  0.25rem;
         padding:  1rem;
         width:  100%; 
         background:  $purple;

     }

 }
 .overlay{
    position:absolute;
    width: 100%;
    display: block;
    top:0;
    left: 0;
    text-align: left;
    font-size: 1.55em;
    font-family: $light;
    color: $white;
    opacity: 0.8;
    height: 100%;
    background: $purple;
    .text-bloq{
        display: block;
        position: absolute;
        margin: 50% auto;
        left: 0;
        right: 0;
        padding:1em;
        .description{
            font-family: $light;
            font-size: 0.75em;
        }
        .type{
            font-family: $light;
            font-size: 0.75em;
            padding: 0.5em 0.65em;
            border: 2px solid $white;
            margin-top: 1em;
        }
    }
}
.portfolio-item{
    position:relative;
    overflow:hidden;
    background-size:cover;
    background-position:100%;
    &:hover{
        cursor: pointer;
    }
}
.portfolio-item:nth-child(1){
    background-image:url('http://placehold.it/600x600');
    min-height: 600px;
    &:hover{
       @include animation('animatedBackgroundWork 10s linear infinite');
   }
}

jQuery:

$(document).ready(function(){
$(".portfolio-item").hover(function(){
     $(this).find(".overlay").toggle("slide", { direction: "right" }, 1000);
     });
});

完整代码在这里:http://codepen.io/ameliarae/pen/MbKjWv

最佳答案

我刚刚弄明白了。我必须将 .portfolio-item 类的 overflow:hidden 替换为 overflow:visible; 以使其在 Chrome 和 Safari 中工作。

所以现在看起来像这样:

.portfolio-item{
     position:relative;
     overflow:visible;
     background-size:cover;
     background-position:100%;
&:hover{
    cursor: pointer;
}
}

关于javascript - jQuery Toggle Slide 在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40533680/

相关文章:

javascript - 滚动动画结合 snap.js

javascript - 如何用jquery改变 polymer 元素的属性? (修复应用程序抽屉加载时的故障)

javascript - 生成多个jquery点击函数

javascript - 过滤器 :nth-child ignoring where css display is none

javascript - 移动一个与鼠标移动相反的大 div

javascript - 使用 javascript 函数对 Div 进行编号

javascript - JQuery Lipsum 生成器不生成单词

javascript - D3 v4 - 获取轴上每个刻度的值?

javascript - 如何添加输入字段,一旦输入值就会更新?

html - 使用预定义的网格类在断点处隐藏 div