【发布时间】:2016-09-26 18:05:43
【问题描述】:
我编写了一个简单的小过渡动画,在页面加载时应该显示内容,有点像打开百叶窗。它使用 css3 的组合来设置转换值,并使用 jQuery 对转换应用更改:页面加载时的矩阵值。它在 Safari 中运行良好,但对于我来说,我无法理解为什么过渡效果在 FF 或 Chrome 上不起作用。在这两种浏览器中,“盲区”只是在过渡显示后消失以显示内容,而不是按应有的四个垂直条过渡。
下面的代码,我也把它放在这里(正如我所说的在 Safari 中有效,所以你可以看到我期待的那种效果):
https://jsfiddle.net/ebenezer66/783uh6k3/
基本的html:
<div class="home__columnShades__div">
<div class="home__columnShades__div__column">
<div class="home__columnShades__div__columnOne"></div>
</div>
<div class="home__columnShades__div__column">
<div class="home__columnShades__div__columnTwo"></div>
</div>
<div class="home__columnShades__div__column">
<div class="home__columnShades__div__columnThree"></div>
</div>
<div class="home__columnShades__div__column">
<div class="home__columnShades__div__columnFour"></div>
</div>
</div>
SCSS:
.home__columnShades__div {
width: 100%;
height: 100%;
position: absolute;
top: 0;
z-index: 899;
}
.home__columnShades__div__column {
width: 25%;
height: 100%;
float: left;
}
.home__columnShades__div__columnOne {
position: absolute;
left: 0;
height: 100%;
width: inherit;
background-color: #000;
transition: transform 3s;
transition-delay: 0.5s;
background-repeat: no-repeat;
background-size: cover;
background-position: top left;
}
.home__columnShades__div__columnTwo {
@extend .home__columnShades__div__columnOne;
left: 25%;
}
.home__columnShades__div__columnThree {
@extend .home__columnShades__div__columnOne;
left: 50%;
}
.home__columnShades__div__columnFour {
@extend .home__columnShades__div__columnOne;
left: 75%;
}
jQuery:
var viewWidthQuarter = $(window).width() / 4;
$('.home__columnShades__div__columnOne').css({
'transform': 'matrix(0, 0, 0, 1, -' + viewWidthQuarter / 1.5 + ', 0)'
});
$('.home__columnShades__div__columnTwo').css({
'background-position': '-' + viewWidthQuarter + 'px' + ' 0',
'transform': 'matrix(0, 0, 0, 1, -' + viewWidthQuarter / 1.5 + ', 0)'
});
$('.home__columnShades__div__columnThree').css({
'background-position': '-' + viewWidthQuarter * 2 + 'px' + ' 0',
'transform': 'matrix(0, 0, 0, 1, -' + viewWidthQuarter / 1.5 + ', 0)'
});
$('.home__columnShades__div__columnFour').css({
'background-position': '-' + viewWidthQuarter * 3 + 'px' + ' 0',
'transform': 'matrix(0, 0, 0, 1, -' + viewWidthQuarter / 1.5 + ', 0)'
});
【问题讨论】:
-
玩了一会儿之后,如果我只是在 scaleX 上执行转换,代码就可以工作,但是我想使用矩阵以便使用 translate 逐渐将每个垂直向左移动(所以看起来他们'正在向左淡化,而不是仅使用比例向中心)。
标签: jquery html css css-transitions css-transforms