/* * By Elementor Team */ ( function( $ ) { var Sticky = function( element, userSettings ) { var $element, isSticky = false, isFollowingParent = false, isReachedEffectsPoint = false, elements = {}, settings, elementOffsetValue, elementWidth; var defaultSettings = { to: 'top', offset: 0, effectsOffset: 0, parent: false, classes: { sticky: 'sticky', stickyActive: 'sticky-active', stickyEffects: 'sticky-effects', spacer: 'sticky-spacer', }, isRTL: false, isScrollSnapActive: false, handleScrollbarWidth: false, }; var initElements = function() { $element = $( element ).addClass( settings.classes.sticky ); elements.$window = $( window ); elements.$body = $( document ).find( 'body' ); if ( settings.parent ) { elements.$parent = $element.parent(); if ( 'parent' !== settings.parent ) { elements.$parent = elements.$parent.closest( settings.parent ); } } }; var initSettings = function() { settings = jQuery.extend( true, defaultSettings, userSettings ); }; var bindEvents = function() { elements.$window.on( 'resize', onWindowResize ); if ( settings.isScrollSnapActive ) { elements.$body.on( 'scroll', onWindowScroll ); } else { elements.$window.on( 'scroll', onWindowScroll ); } }; var unbindEvents = function() { elements.$window .off( 'scroll', onWindowScroll ) .off( 'resize', onWindowResize ); elements.$body.off( 'scroll', onWindowScroll ); }; var init = function() { initSettings(); initElements(); bindEvents(); checkPosition(); }; var backupCSS = function( $elementBackupCSS, backupState, properties ) { var css = {}, elementStyle = $elementBackupCSS[ 0 ].style; properties.forEach( function( property ) { css[ property ] = undefined !== elementStyle[ property ] ? elementStyle[ property ] : ''; } ); $elementBackupCSS.data( 'css-backup-' + backupState, css ); }; var getCSSBackup = function( $elementCSSBackup, backupState ) { return $elementCSSBackup.data( 'css-backup-' + backupState ); }; const updateElementSizesData = () => { elementWidth = getElementOuterSize( $element, 'width' ); elementOffsetValue = $element.offset().left; if ( settings.isRTL ) { // `window.innerWidth` includes the scrollbar while `document.body.offsetWidth` doesn't. const documentWidth = settings.handleScrollbarWidth ? window.innerWidth : document.body.offsetWidth; elementOffsetValue = Math.max( documentWidth - elementWidth - elementOffsetValue, 0 ); } } var addSpacer = function() { elements.$spacer = $element.clone() .addClass( settings.classes.spacer ) .css( { visibility: 'hidden', transition: 'none', animation: 'none', } ); $element.after( elements.$spacer ); }; var removeSpacer = function() { elements.$spacer.remove(); }; var stickElement = function() { backupCSS( $element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom', 'inset-inline-start' ] ); const css = { position: 'fixed', width: elementWidth, marginTop: 0, marginBottom: 0, }; css[ settings.to ] = settings.offset; css[ 'top' === settings.to ? 'bottom' : 'top' ] = ''; if ( elementOffsetValue ) { css[ 'inset-inline-start' ] = elementOffsetValue + 'px'; } $element .css( css ) .addClass( settings.classes.stickyActive ); }; var unstickElement = function() { $element .css( getCSSBackup( $element, 'unsticky' ) ) .removeClass( settings.classes.stickyActive ); }; var followParent = function() { backupCSS( elements.$parent, 'childNotFollowing', [ 'position' ] ); elements.$parent.css( 'position', 'relative' ); backupCSS( $element, 'notFollowing', [ 'position', 'inset-inline-start', 'top', 'bottom' ] ); const css = { position: 'absolute', }; elementOffsetValue = elements.$spacer.position().left; if ( settings.isRTL ) { const parentWidth = $element.parent().outerWidth(), elementOffsetValueLeft = elements.$spacer.position().left; elementWidth = elements.$spacer.outerWidth(); elementOffsetValue = Math.max( parentWidth - elementWidth - elementOffsetValueLeft, 0 ); } css[ 'inset-inline-start' ] = elementOffsetValue + 'px'; css[ settings.to ] = ''; css[ 'top' === settings.to ? 'bottom' : 'top' ] = 0; $element.css( css ); isFollowingParent = true; }; var unfollowParent = function() { elements.$parent.css( getCSSBackup( elements.$parent, 'childNotFollowing' ) ); $element.css( getCSSBackup( $element, 'notFollowing' ) ); isFollowingParent = false; }; var getElementOuterSize = function( $elementOuterSize, dimension, includeMargins ) { var computedStyle = getComputedStyle( $elementOuterSize[ 0 ] ), elementSize = parseFloat( computedStyle[ dimension ] ), sides = 'height' === dimension ? [ 'top', 'bottom' ] : [ 'left', 'right' ], propertiesToAdd = []; if ( 'border-box' !== computedStyle.boxSizing ) { propertiesToAdd.push( 'border', 'padding' ); } if ( includeMargins ) { propertiesToAdd.push( 'margin' ); } propertiesToAdd.forEach( function( property ) { sides.forEach( function( side ) { elementSize += parseFloat( computedStyle[ property + '-' + side ] ); } ); } ); return elementSize; }; var getElementViewportOffset = function( $elementViewportOffset ) { var windowScrollTop = elements.$window.scrollTop(), elementHeight = getElementOuterSize( $elementViewportOffset, 'height' ), viewportHeight = innerHeight, elementOffsetFromTop = $elementViewportOffset.offset().top, distanceFromTop = elementOffsetFromTop - windowScrollTop, topFromBottom = distanceFromTop - viewportHeight; return { top: { fromTop: distanceFromTop, fromBottom: topFromBottom, }, bottom: { fromTop: distanceFromTop + elementHeight, fromBottom: topFromBottom + elementHeight, }, }; }; var stick = function() { updateElementSizesData(); addSpacer(); stickElement(); isSticky = true; $element.trigger( 'sticky:stick' ); }; var unstick = function() { unstickElement(); removeSpacer(); isSticky = false; $element.trigger( 'sticky:unstick' ); }; var checkParent = function() { var elementOffset = getElementViewportOffset( $element ), isTop = 'top' === settings.to; if ( isFollowingParent ) { var isNeedUnfollowing = isTop ? elementOffset.top.fromTop > settings.offset : elementOffset.bottom.fromBottom < -settings.offset; if ( isNeedUnfollowing ) { unfollowParent(); } } else { var parentOffset = getElementViewportOffset( elements.$parent ), parentStyle = getComputedStyle( elements.$parent[ 0 ] ), borderWidthToDecrease = parseFloat( parentStyle[ isTop ? 'borderBottomWidth' : 'borderTopWidth' ] ), parentViewportDistance = isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease : parentOffset.top.fromBottom + borderWidthToDecrease, isNeedFollowing = isTop ? parentViewportDistance <= elementOffset.bottom.fromTop : parentViewportDistance >= elementOffset.top.fromBottom; if ( isNeedFollowing ) { followParent(); } } }; var checkEffectsPoint = function( distanceFromTriggerPoint ) { if ( isReachedEffectsPoint && -distanceFromTriggerPoint < settings.effectsOffset ) { $element.removeClass( settings.classes.stickyEffects ); isReachedEffectsPoint = false; } else if ( ! isReachedEffectsPoint && -distanceFromTriggerPoint >= settings.effectsOffset ) { $element.addClass( settings.classes.stickyEffects ); isReachedEffectsPoint = true; } }; var checkPosition = function() { var offset = settings.offset, distanceFromTriggerPoint; if ( isSticky ) { var spacerViewportOffset = getElementViewportOffset( elements.$spacer ); distanceFromTriggerPoint = 'top' === settings.to ? spacerViewportOffset.top.fromTop - offset : -spacerViewportOffset.bottom.fromBottom - offset; if ( settings.parent ) { checkParent(); } if ( distanceFromTriggerPoint > 0 ) { unstick(); } } else { var elementViewportOffset = getElementViewportOffset( $element ); distanceFromTriggerPoint = 'top' === settings.to ? elementViewportOffset.top.fromTop - offset : -elementViewportOffset.bottom.fromBottom - offset; if ( distanceFromTriggerPoint <= 0 ) { stick(); if ( settings.parent ) { checkParent(); } } } checkEffectsPoint( distanceFromTriggerPoint ); }; var onWindowScroll = function() { checkPosition(); }; var onWindowResize = function() { if ( ! isSticky ) { return; } unstickElement(); removeSpacer(); updateElementSizesData(); addSpacer(); stickElement(); if ( settings.parent ) { // Force recalculation of the relation between the element and its parent. isFollowingParent = false; checkParent(); } }; this.destroy = function() { if ( isSticky ) { unstick(); } unbindEvents(); $element.removeClass( settings.classes.sticky ); }; init(); }; $.fn.sticky = function( settings ) { var isCommand = 'string' === typeof settings; this.each( function() { var $this = $( this ); if ( ! isCommand ) { $this.data( 'sticky', new Sticky( this, settings ) ); return; } var instance = $this.data( 'sticky' ); if ( ! instance ) { throw Error( 'Trying to perform the `' + settings + '` method prior to initialization' ); } if ( ! instance[ settings ] ) { throw ReferenceError( 'Method `' + settings + '` not found in sticky instance' ); } instance[ settings ].apply( instance, Array.prototype.slice.call( arguments, 1 ) ); if ( 'destroy' === settings ) { $this.removeData( 'sticky' ); } } ); return this; }; window.Sticky = Sticky; } )( jQuery ); Happy Handz – Garokik https://garokik.com Wed, 10 Sep 2025 04:46:15 +0000 en-US hourly 1 https://garokik.com/wp-content/uploads/2025/07/cropped-garokik_favicon_1-32x32.png Happy Handz – Garokik https://garokik.com 32 32 Handmade Wax Air Freshener | Fragrance wax Sachets | Wax Tablet https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-4/ https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-4/#respond Sat, 02 Aug 2025 10:55:09 +0000 https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-4/ Handmade Wax Wardrobe Air Freshener Bar Aromatherapy Wardrobe Fragrance Sachets Wax Tablet for Drawers, Shoe Rack

]]>
ELEVATE YOUR AMBIENCE WITH NATURAL FRAGRANCE – Transform any space into a serene haven with the calming, all-natural fragrances of the Hello Handmade Wax Wardrobe Air Freshener Bars. Crafted from premium, eco-friendly materials, these wax tablets scented release a gentle, long-lasting aroma that naturally elevates your home’s ambiance. Whether you’re unwinding after a long day or setting a relaxing atmosphere for guests, the scents of Macaron Almond, Orange Cinnamon, and Lavender create a peaceful, welcoming environment that refreshes and soothes.

✨ Note on Handmade Products & Materials

All our creations are handmade, and slight variations may occur in color, texture, or finishing compared to the product pictures. These variations are due to the availability of materials and the natural uniqueness of handmade craftsmanship. We ensure that any substitutions will be made with the closest possible materials while maintaining the overall look, quality, and design of the product. This uniqueness makes every piece one-of-a-kind and special for you.

Convenient and mess-free: No need for sprays or liquids—simply place the wax tablet in your desired location and let the fragrance unfold.
Thoughtful gift: Share the gift of luxurious fragrance with friends and loved ones, perfect for any occasion.

]]>
https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-4/feed/ 0
Handmade Wax Air Freshener | Fragrance wax Sachets | Wax Tablet https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-3/ https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-3/#respond Sat, 02 Aug 2025 10:45:27 +0000 https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-3/ Rose Fragrance -set of 3| Handmade Wax Wardrobe Air Freshener Bar Aromatherapy Wardrobe Fragrance Sachets Wax Tablet for Drawers, Shoe Rack

]]>
ELEVATE YOUR AMBIENCE WITH NATURAL FRAGRANCE – Transform any space into a serene haven with the calming, all-natural fragrances of the Hello Handmade Wax Wardrobe Air Freshener Bars. Crafted from premium, eco-friendly materials, these wax tablets scented release a gentle, long-lasting aroma that naturally elevates your home’s ambiance. Whether you’re unwinding after a long day or setting a relaxing atmosphere for guests, the scents of Macaron Almond, Orange Cinnamon, and Lavender create a peaceful, welcoming environment that refreshes and soothes.
Convenient and mess-free: No need for sprays or liquids—simply place the wax tablet in your desired location and let the fragrance unfold.
Thoughtful gift: Share the gift of luxurious fragrance with friends and loved ones, perfect for any occasion.

]]>
https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-3/feed/ 0
Handmade Wax Air Freshener | Fragrance wax Sachets | Wax Tablet https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-2/ https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-2/#respond Sat, 02 Aug 2025 10:41:10 +0000 https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-2/ Handmade Wax Wardrobe Air Freshener Bar Aromatherapy Wardrobe Fragrance Sachets Wax Tablet for Drawers, Shoe Rack (set of 3 - Lavender Fragrance)

]]>
ELEVATE YOUR AMBIENCE WITH NATURAL FRAGRANCE – Transform any space into a serene haven with the calming, all-natural fragrances of the Hello Handmade Wax Wardrobe Air Freshener Bars. Crafted from premium, eco-friendly materials, these wax tablets scented release a gentle, long-lasting aroma that naturally elevates your home’s ambiance. Whether you’re unwinding after a long day or setting a relaxing atmosphere for guests, the scents of Macaron Almond, Orange Cinnamon, and Lavender create a peaceful, welcoming environment that refreshes and soothes.
Convenient and mess-free: No need for sprays or liquids—simply place the wax tablet in your desired location and let the fragrance unfold.
Thoughtful gift: Share the gift of luxurious fragrance with friends and loved ones, perfect for any occasion.

]]>
https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet-2/feed/ 0
Handmade Wax Air Freshener | Fragrance wax Sachets | Wax Tablet https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet/ https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet/#respond Sat, 02 Aug 2025 09:55:06 +0000 https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet/ Handmade Wax Wardrobe Air Freshener Bar Aromatherapy Wardrobe Fragrance Sachets Wax Tablet for Drawers, Shoe Rack]]>
  • ELEVATE YOUR AMBIENCE WITH NATURAL FRAGRANCE – Transform any space into a serene haven with the calming, all-natural fragrances of the Hello Handmade Wax Wardrobe Air Freshener Bars. Crafted from premium, eco-friendly materials, these wax tablets scented release a gentle, long-lasting aroma that naturally elevates your home’s ambiance. Whether you’re unwinding after a long day or setting a relaxing atmosphere for guests, the scents of Macaron Almond, Orange Cinnamon, and Lavender create a peaceful, welcoming environment that refreshes and soothes.
  • Convenient and mess-free: No need for sprays or liquids—simply place the wax tablet in your desired location and let the fragrance unfold.
  • Thoughtful gift: Share the gift of luxurious fragrance with friends and loved ones, perfect for any occasion.
  • ]]>
    https://garokik.com/product/handmade-wax-air-freshener-fragrance-wax-sachets-wax-tablet/feed/ 0
    Real Flower Resin Necklace | Handmade Jewelry Gift | Unique Jewelry https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-4/ https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-4/#respond Tue, 22 Jul 2025 12:23:43 +0000 https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-4/
  •  Handcrafted resin necklace with real dried flowers – a piece of nature you can wear. Lightweight, elegant, and unique.
  • ]]>
    Elevate your style with this elegant handmade resin necklace crafted using premium-quality crystal-clear resin and real dried flowers. Each piece is uniquely designed, preserving the delicate beauty of nature in a timeless jewelry piece. The lightweight design ensures comfort, while the glossy finish adds a luxurious touch. Perfect for casual wear, gifting, or adding a statement piece to your collection.

    Features:
    ✔ Made with high-quality, durable resin
    ✔ Embedded with 100% real dried flowers
    ✔ Lightweight & comfortable for daily wear
    ✔ Unique design – no two pieces are the same
    ✔ Ideal for birthdays, anniversaries, and festive gifting

    ]]>
    https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-4/feed/ 0
    Real Flower Resin Necklace | Handmade Jewelry Gift | Unique Jewelry https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-3/ https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-3/#respond Tue, 22 Jul 2025 12:21:38 +0000 https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-3/ Handcrafted resin necklace with real dried flowers – a piece of nature you can wear. Lightweight, elegant, and unique.

    ]]>
    Elevate your style with this elegant handmade resin necklace crafted using premium-quality crystal-clear resin and real dried flowers. Each piece is uniquely designed, preserving the delicate beauty of nature in a timeless jewelry piece. The lightweight design ensures comfort, while the glossy finish adds a luxurious touch. Perfect for casual wear, gifting, or adding a statement piece to your collection.

    Features:
    ✔ Made with high-quality, durable resin
    ✔ Embedded with 100% real dried flowers
    ✔ Lightweight & comfortable for daily wear
    ✔ Unique design – no two pieces are the same
    ✔ Ideal for birthdays, anniversaries, and festive gifting

    ]]>
    https://garokik.com/product/real-flower-resin-necklace-handmade-jewelry-gift-unique-jewelry-3/feed/ 0
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-6/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-6/#respond Tue, 22 Jul 2025 12:17:10 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-6/ Transparent Resin Clutch with Real Flowers – Party Purse

    ]]>
    Handmade resin clutch with a glossy finish and elegant embedded details. Lightweight yet durable, perfect for weddings, parties, and festive events. Unique design for a classy statement look.

    ]]>
    https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-6/feed/ 0
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-5/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-5/#respond Tue, 22 Jul 2025 12:13:57 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-5/ Handmade resin clutch with a glossy finish and elegant embedded details. Lightweight yet durable, perfect for weddings, parties, and festive events. Unique design for a classy statement look.

    ]]>
    This handcrafted resin clutch is a blend of elegance and functionality, designed with high-quality resin and a glossy finish. Each piece is unique, featuring embedded real flowers, gold flakes, or customized designs that make it stand out. The sturdy body ensures durability, while the smooth clasp and spacious interior offer convenience for carrying essentials like a phone, cards, and makeup. Perfect for weddings, parties, and festive occasions, this resin clutch adds a touch of luxury to your outfit.

    ]]>
    https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-5/feed/ 0
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-4/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-4/#respond Tue, 22 Jul 2025 12:10:06 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-4/ Stylish handmade resin clutch with a glossy finish – perfect for weddings, parties, or daily glam.

    ]]>
    This handcrafted resin clutch is a blend of elegance and functionality, designed with high-quality resin and a glossy finish. Each piece is unique, featuring embedded real flowers, gold flakes, or customized designs that make it stand out. The sturdy body ensures durability, while the smooth clasp and spacious interior offer convenience for carrying essentials like a phone, cards, and makeup. Perfect for weddings, parties, and festive occasions, this resin clutch adds a touch of luxury to your outfit.

    ]]>
    https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-4/feed/ 0
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-3/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-3/#respond Tue, 22 Jul 2025 12:05:15 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-3/ Stylish handmade resin clutch with a glossy finish – perfect for weddings, parties, or daily glam.

    ]]>
    This handcrafted resin clutch is a blend of elegance and functionality, designed with high-quality resin and a glossy finish. Each piece is unique, featuring embedded real flowers, gold flakes, or customized designs that make it stand out. The sturdy body ensures durability, while the smooth clasp and spacious interior offer convenience for carrying essentials like a phone, cards, and makeup. Perfect for weddings, parties, and festive occasions, this resin clutch adds a touch of luxury to your outfit.

    ]]>
    https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-3/feed/ 0