Skip to content
  • Home
  • Features
    • Matrix Framework
    • Matrix One
    • Plugin Toolkit
    • Matrix Library
  • Templates
  • Support
  • Pricing
  • Home
  • Features
    • Matrix Framework
    • Matrix One
    • Plugin Toolkit
    • Matrix Library
  • Templates
  • Support
  • Pricing
  1. Support
Matrix Framework Motion One

Matrix Animations

GPU-accelerated motion built into Matrix Framework — entrance reveals, scroll parallax, sticky card stacks, animated links and buttons, split text, and odometer-style counters. No WOW.js, no jQuery, no extra CDN scripts.

18 min read
Motion One

On this page

  • Overview
  • Global animations
  • Custom animations
  • Scroll animations
  • Sticky animations
  • Animated links
  • Animated buttons
  • Floating animations
  • Animated text
  • Slot counter
  • Troubleshooting
  • Next steps

Overview

Matrix Framework ships a complete animation toolkit powered by Motion One. Everything runs from the main bundle — viewport entrance effects, scroll parallax, sticky pinning, CSS link/button micro-interactions, split text, and slot counters.

  • Global animations — one HTML widget applies entrance motion to all content modules
  • Custom classes — add motion-* classes to any element
  • Scroll effects — parallax, spin, zoom, opacity, blur via data-motion-scroll
  • Sticky sections — pin cards while scrolling with has-sticky
  • Split text & counters — word/letter reveals and odometer numbers
Preview on the live site: Most entrance and scroll animations are disabled in Jimdo edit mode (body.matrix). Open the public page in a browser tab to see them in action.
Prefer click-to-insert? Many animation classes are also available from the Matrix Variables popup under the Animations category.

1 Global animations

Paste the snippet below into a Widget/HTML module in the content area (or footer) to apply one entrance effect to every Jimdo module in .hs-content.

      Widget/HTML — global animations
<script type="text/javascript">
//<![CDATA[
(function() {
  'use strict';
  var config = {
    effect: 'motion-fadeInUp',   // motion-fadeIn, motion-slideUp, motion-zoomIn, etc.
    speed: 'motion-normal',      // motion-slower … motion-fastest
    offset: 100,                 // viewport offset in px (0, 25, 50, 100)
    sequential: false            // true = 25ms stagger between modules
    // delay: 'motion-delay-x1'  // optional: motion-delay-x1, x2, x3
    // mobile: 'motion-mobile-hidden' // optional: disable on mobile
  };
})();
//]]>
</script>
<div class="matrix-msg invisible">Global animations</div>

 
Use sparingly: Global animations on every module (especially in the footer) can hurt performance and feel repetitive. Prefer per-element motion-* classes or is-anim-block on key sections.

How targeting works

  • Regular modules animate as a whole when they enter the viewport
  • Modules containing .is-fullwidth or .hs-fullwidth only animate inner .is-anim-block children
  • Elements with text-split are skipped — split text manages its own reveal

2 Custom animations

Add a motion-* class directly to any element. The animation runs when the element scrolls into view.

HTML
<div class="motion-fadeIn">Fades in on scroll</div>

<div class="motion-slideUp motion-faster motion-delay-x1 motion-mobile-hidden">
  Fast slide-up with delay, disabled on mobile
</div>

Motion One entrance classes

Class Effect
motion-fadeIn Simple fade in
motion-fadeInUp / Down / Left / Right Fade with directional movement
motion-slideUp / Down / Left / Right Slide from edge
motion-zoomIn / zoomOut Scale in or out
motion-bounceIn Bounce entrance
motion-flipInX / flipInY 2D flip
motion-rotateIn Rotate in
motion-lightSpeedIn Light-speed sweep

Fold, flip & skew classes

Class Effect
motion-foldLeft / Right / Top / Bottom Fold from edge
motion-foldMiddleLeftRight / TopBottom / Corner Fold from center
motion-foldBlur Blur reveal
motion-flipLeftRight / flipRightLeft 3D flip
motion-skewLeft / skewRight Skew reveal

Utility classes

Class Description
motion-slower / slow / normal / fast / faster / fastest Speed multiplier (default: normal)
motion-delay-x1 / x2 / x3 0.1s / 0.2s / 0.3s delay
motion-mobile-hidden Disables animation on mobile (≤768px)

Matrix Variables

Insert animation classes via a Variables tag on a columns module:

HTML
<var> motion-slideUp motion-delay-x1 </var>

With <var>, the effect applies to the whole columns module. For per-column control, use <ins> inside each column instead.

3 Scroll animations

Motion Scroll Effects replace the legacy enllax.js library. Add data-motion-scroll attributes to move, spin, zoom, or fade elements as the user scrolls.

HTML
<!-- Background parallax -->
<div data-motion-scroll="background" data-motion-ratio="0.5">
  Background moves slower than scroll
</div>

<!-- Foreground parallax -->
<img src="photo.jpg" alt=""
     data-motion-scroll="foreground"
     data-motion-ratio="0.8"
     data-motion-direction="horizontal-reverse" />

<!-- Spin on scroll -->
<div data-motion-scroll="spin" data-motion-ratio="0.5">
  <div class="fa fa-thumbs-up fa-5x"></div>
</div>

<!-- Zoom out while scrolling -->
<img src="hero.jpg" alt="" data-motion-scroll="zoom-out" />

Available scroll effects

data-motion-scroll Description
background Background image parallax
foreground Element moves with scroll
spin Rotation tied to scroll position
zoom-in / zoom-out Scale up or down while scrolling
opacity Fade in/out during scroll
blur Blur intensity tied to scroll
color Color transition (use data-motion-color-start / end)

Direction & ratio

Attribute Values
data-motion-direction vertical (default), horizontal, vertical-reverse, horizontal-reverse
data-motion-ratio 0.0–1.0 — intensity (default 0.5)
data-motion-offset Custom starting offset in pixels

Legacy support: Old data-enllax-* attributes still work — Matrix maps them to the new Motion Scroll system automatically.

4 Sticky animations

Pin sections while scrolling, then release them when a destroy trigger or the next card reaches the top. Built into Matrix Framework v1.7.6+ — no ScrollMagic, no jQuery.

HTML
<!-- Card that sticks while scrolling -->
<div class="is-matrix is-card has-sticky">…</div>

<!-- Next card stacks on top (cascading peek) -->
<div class="is-matrix is-card has-sticky has-sticky-top-margin">…</div>

<!-- End the sticky sequence -->
<div class="has-sticky-destroy">…</div>

Key classes

Class Effect
has-sticky Enable sticky pinning on this element
has-sticky-destroy Unpin all stickies when this section reaches the top
has-sticky-top-margin Cascading peek — each card sticks slightly lower
has-sticky-top-20 … top-50 Explicit extra top offset in pixels
has-sticky-anchor-middle / bottom Stick centered or near bottom of viewport
has-sticky-front / has-sticky-stack Force front-pin or card-stack mode

Sticky animations are automatically disabled in the Jimdo editor (body.matrix) so they never interfere with editing.

5 Animated links

CSS-only link hover effects — add classes to any <a> tag.

Class Style
link-flash Animated underline flash on hover
link-outlined Outlined underline animation
line-bold / line-extra-bold / line-small Modifiers for link-outlined line weight
no-line Arrow only, no underline (with SVG arrow)
arrow-link Animated arrow that slides on hover
arrow-link is-dark / is-white Dark or white arrow variant

HTML
<a class="link-flash has-link-dark" href="#">Link Flash</a>

<a class="link-outlined line-bold" href="#">Link Outlined bold</a>

<a class="arrow-link" href="#">See more<span class="arrow">&#160;</span></a>

6 Animated buttons

Add anim-btn to any hs-button for a hover sweep effect. Combine with ghost and color classes.

Classes Look
hs-button anim-btn Default primary sweep
anim-btn ghost-primary Ghost with primary border
anim-btn ghost-dark / ghost-white Dark or white ghost variants
anim-btn bg-dark / bg-white Solid dark or white fill
has-border-shadow / has-primary-color-border-shadow Border shadow modifiers

HTML
<a class="hs-button anim-btn" href="#">Animated button</a>

<a class="hs-button anim-btn ghost-primary" href="#">Ghost primary</a>

<a class="hs-button anim-btn ghost-white has-white-color-border-shadow" href="#">
  Ghost white with shadow
</a>

For full button styling (colors, padding, radius, hover states), use the Style Editor Buttons panel — including hover animations in Advanced.

7 Floating animations

Continuous gentle movement — ideal for icons, badges, or decorative elements.

Class Effect
anim-up-down Floats up and down in a loop
anim-left-right Floats left and right in a loop

HTML
<div class="anim-up-down">…</div>

<!-- Or via Matrix Variables on a columns module -->
<var> anim-left-right </var>

8 Animated text

Scroll-triggered split text built with Motion One and SplitType. Add text-split plus one effect attribute. No extra CDN scripts required.

Attribute / class Effect
words-slide-up Words slide up sequentially
words-rotate-in Words rotate into place
words-slide-from-right Words enter from the right
letters-slide-up / letters-slide-down Per-letter vertical reveal
letters-fade-in / letters-fade-in-random Letter fade (sequential or random)
scrub-each-word Words animate as you scroll (scrubbed)

HTML

<h2 words-slide-up text-split>Words Slide Up Effect</h2>

<h2 letters-fade-in-random text-split>Letters Fade In Random</h2>

<p scrub-each-word text-split>
  This sentence scrubs word by word as you scroll.
</p>

Page Builder: Split text effects are also available per widget in the Page Builder animation panel.

9 Slot counter

Odometer-style animation for numbers and text — each character scrolls through a vertical reel before landing on the final value. Respects prefers-reduced-motion.

HTML
<!-- Numbers -->
<p class="counter" data-counter-effect="slot">25</p>
<p class="counter-slot-slow">5000</p>

<!-- Words (auto-detected) -->
<h1 class="counter counter-slow center-align size-30"
    data-counter-effect="slot"
    data-counter-alternate-speed
    data-counter-spins="2">
  The choice is yours.
</h1>

Useful attributes

Attribute / class Description
counter-slot / counter-slot-slow / slower Speed presets for numbers
data-counter-effect="slot" Enable slot reel on a .counter element
data-counter-alternate-speed Even chars faster, odd chars slower
data-counter-spins="2" Number of full reel spins before landing
data-counter-speed-ratio="0.6,1.8" Custom fast/slow speed multipliers

Troubleshooting

Issue Fix
Animations not visible in editor Expected — preview the public page. Entrance, scroll, sticky, and split text are disabled when body.matrix is present.
Global animation not applying Confirm the config snippet is in a saved Widget/HTML module and includes var config = { effect: … }. Check the console with debugMode: true.
Scroll parallax not moving Use data-motion-scroll (not only legacy data-enllax-type without the new attribute). Verify ratio is between 0 and 1.
Sticky section jumps or overlaps header Ensure a .sticky-wrapper or .hs-header exists so Matrix can measure the header offset. Try has-sticky-top-margin for stacked cards.
Split text not splitting Both text-split and an effect attribute (e.g. words-slide-up) are required on the same element.
Chrome tab freeze on old sites Legacy WOW Fold/Flip/Skew affects Matrix One/Themes only. Matrix Framework uses Motion One — see the Chrome freeze guide.

Next steps

​

Matrix Variables

Insert animation, spacing, and layout classes from the Variables popup — no manual typing.

Open Variables guide →
​

Page Builder

Add entrance animations and split text per widget from the visual builder toolbar.

Open Page Builder guide →
​

Style Editor

Configure button hover animations, colors, and global motion-friendly design tokens.

Open Style Editor →

    

Get started
Gobal colors
  bg-primary
  bg-primary-light
  bg-primary-dark
  bg-secondary
  bg-secondary-dark
Template colors
  body
  top-header
  top-header-inner
  header
  header-inner
  navigation-inner
  navigation color
  dropdown background color
  content
Footer Styles
  background
  text color
  link color
  horizontal line
Buttons
  style 1
  style 2
  style 3
  text color
Mobile navigation
  background color
  navigation color
Other elements
  social icons
  top header border
  header border
  nav inner border
  footer border
 
Template configurations
 
has-sticky-logo has-large-header primary-font has-center-nav has-header-blur no-shopping-cart
 
Top header inner
 
 
 
Header inner
 
 
 
Navigation inner
 
 
 
Navigation styles
 
size-15 weight-400 color-nav
 
Sub-menu (breadcrumbs) styles
 
size-15
 
Mobile Navigation styles
 
size-30
 
Content styles
 
form-white
 
Footer styles
 
o-form has-thin-border has-border-style-solid has-border-top has-footer-border-color
 
Footer background image
 
 

 

Typography

Heading H1
weight-400
 
Heading H2
weight-400
 
Heading H3
weight-400
 
Body text (p, table, td)
 
 
Buttons
weight-400
 
 
Advanced settings
 
Custom CSS

#cc-inner .my-class {

color:#f0f0f0;

}

/* MATRIX-CUSTOM-MODULES-START */

#cc-m-7792741551 h1, #cc-m-7792741551 h2, #cc-m-7792741551 h3 {font-size:20px !important;}

#cc-m-7792741851 h1, #cc-m-7792741851 h2, #cc-m-7792741851 h3 {font-size:20px !important;}

#cc-m-7792930551 h1, #cc-m-7792930551 h2, #cc-m-7792930551 h3 {font-size:20px !important;}

#cc-m-12388126494 h1, #cc-m-12388126494 h2, #cc-m-12388126494 h3 {font-weight:600 !important;}

#cc-m-12388126494 h1, #cc-m-12388126494 h2, #cc-m-12388126494 h3 {font-size:40px !important;}

/* MATRIX-CUSTOM-MODULES-END */

/* MATRIX-GLOBAL-SETTINGS-START */

:root {

--content-width: 1170px;

--special-pages-content-width: 900px;

}

/* HAMBURGER-BAR-START */

:root { --hamburger-btn-background: transparent; --hamburger-btn-bg: transparent; --hamburger-btn-bg-active: transparent; }

/* HAMBURGER-BAR-END */

#cc-inner #hs-container .j-formnew input[type='submit'],

#cc-inner #hs-container input.submitUser,

#cc-inner .hs-button,

#cc-inner .j-calltoaction-link,

#cc-inner input.cc-checkout-btn,

#cc-inner a.cc-shop-addtocard {

padding: 14px 35px !important;

border-radius: 8px;

}

/* MOBILE-FULLWIDTH-BUTTONS-START */

@media only screen and (width <= 746px) {

#cc-inner #hs-container .j-formnew input[type='submit'],

#cc-inner #hs-container input.submitUser,

#cc-inner .hs-button,

#cc-inner .j-calltoaction-link {

width: 100% !important;

margin: 5px auto 0 auto;

box-sizing: border-box;

text-align: center !important;

}

}

/* MOBILE-FULLWIDTH-BUTTONS-END */

/* MATRIX-GLOBAL-SETTINGS-END */


Note:
All changes made here will be applied to your entire website.
Matrix Framework
draggable-logo

Matrix Framework

Build faster, smarter, and more flexible Jimdo websites.

has-right-col-border

Products

Matrix Framework

Matrix One

Matrix Plugin Toolkit

Resources

Support

Matrix Academy

FAQs

Changelog

Community

Showcase

Marketplace

Blog

Archive


About | Privacy Policy | Cookie Policy | Sitemap | Withdraw contract
Created with Jimdo
Log in Log out | Edit
  • Scroll to top
Close