嗨我有一些CSS和JS代碼來創建一個有效的幻燈片,當用戶向下滾動頁面並且元素進入視圖時。我只是想知道是否有人能夠幫助解釋我將如何創建一個mixin來讓價值發生變化。sass/scss爲動畫創建混合
我的HTML元素會是這樣
<div class="animation-element slide-left"></div>
我現在的CSS是這樣的
.animation-element {
opacity: 0;
position: relative;
}
.animation-element.slide-left {
opacity: 0;
-moz-transition: all 500ms linear;
-webkit-transition: all 500ms linear;
-o-transition: all 500ms linear;
transition: all 500ms linear;
-moz-transform: translate3d(-100px, 0px, 0px);
-webkit-transform: translate3d(-100px, 0px, 0px);
-o-transform: translate(-100px, 0px);
-ms-transform: translate(-100px, 0px);
transform: translate3d(-100px, 0px, 0px);
}
.animation-element.slide-left.in-view {
opacity: 1;
-moz-transform: translate3d(0px, 0px, 0px);
-webkit-transform: translate3d(0px, 0px, 0px);
-o-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate3d(0px, 0px, 0px);
}
我的JS是
var $animation_elements = $('.animation-element');
var $window = $(window);
function check_if_in_view() {
var window_height = $window.height();
var window_top_position = $window.scrollTop();
var window_bottom_position = (window_top_position + window_height);
$.each($animation_elements, function() {
var $element = $(this);
var element_height = $element.outerHeight();
var element_top_position = $element.offset().top;
var element_bottom_position = (element_top_position + element_height);
//check to see if this current container is within viewport
if ((element_bottom_position >= window_top_position) &&
(element_top_position <= window_bottom_position)) {
$element.addClass('in-view');
} else {
$element.removeClass('in-view');
}
});
}
$window.on('scroll resize', check_if_in_view);
$window.trigger('scroll');
我希望能夠傳遞一個變量$距離,它可以動態改變元素從其滑入的距離。
在此先感謝。
您是否想要將'$ distance' var從JS傳遞給SASS mixin? –
它不能在sass中完成嗎?一切正常,但如果我想改變距離,即-100像素到-200像素爲不同的元素,我將不得不再次寫出整個CSS並給它一個新的類。我不知道是否可以通過sass傳遞距離變量?這樣我可以有一個代碼塊,只是改變每個元素的距離? – craigb88
對不起,延遲迴復。是的,你可以將一個變量傳遞給一個mixin,但據我所知,你不能將一個變量從JS傳遞給SASS。 –