Hallo Ich habe etwas CSS und JS-Code, um eine Folie im Effekt zu erstellen, wenn ein Benutzer die Seite herunterscrollt und das Element in Sicht kommt. Ich habe mich nur gefragt, ob jemand helfen könnte zu erklären, wie ich ein Mixin erstellen würde, damit sich der Wert ändern kann.sass/scss create mixin für Animationen
Mein HTML-Element wie dies
<div class="animation-element slide-left"></div>
Mein aktueller CSS ist dieser
.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);
}
Mein JS ist
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');
Ich möchte in der Lage sein, eine Variable übergibt
wäre $ distance, die dynamisch sein würde, um die 100/Entfernung zu ändern, von der das Element abgleitet.Vielen Dank im Voraus.
Möchten Sie die '$ distance' var von JS an eine SASS-Mischung übergeben? –
Kann es nicht in Sass getan werden? Alles funktioniert wie es ist, aber wenn ich den Abstand ändern wollte, d. H. -100px zu -200px für ein anderes Element, müsste ich das ganze css wieder ausschreiben und ihm eine neue Klasse geben. Ich wusste nicht, ob es möglich war, die Entfernungsvariable einfach durch den Sass zu geben. Auf diese Weise könnte ich einen Codeblock haben und einfach die Entfernung für jedes Element ändern? – craigb88
Entschuldigung für die späte Antwort. Ja, Sie können eine Variable an ein Mix-In übergeben, aber soweit ich weiß, können Sie keine Variable von JS an SASS übergeben. –