/* * 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 ); Fashion & Lifestyle – Garokik https://garokik.com Fri, 05 Sep 2025 06:59:44 +0000 en-US hourly 1 https://garokik.com/wp-content/uploads/2025/07/cropped-garokik_favicon_1-32x32.png Fashion & Lifestyle – Garokik https://garokik.com 32 32 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
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-2/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-2/#respond Tue, 22 Jul 2025 05:43:47 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag-2/ 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-2/feed/ 0
    Trendy– Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag/ https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag/#respond Tue, 22 Jul 2025 05:30:41 +0000 https://garokik.com/product/trendy-handmade-resin-purse-resin-clutch-unique-handbag/ 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/feed/ 0
    TrendyGlow – Handmade Resin Purse | Resin Clutch | Unique Handbag https://garokik.com/product/trendyglow-handmade-resin-purse-resin-clutch-unique-handbag/ https://garokik.com/product/trendyglow-handmade-resin-purse-resin-clutch-unique-handbag/#respond Tue, 22 Jul 2025 05:27:07 +0000 https://garokik.com/product/trendyglow-handmade-resin-purse-resin-clutch-unique-handbag/ Handmade Resin Clutch Bag for Women – Party & Wedding Accessory 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/trendyglow-handmade-resin-purse-resin-clutch-unique-handbag/feed/ 0
    Jewelry | Resin Jewelry | Earrings |Resin Earrings https://garokik.com/product/jewelry-resin-jewelry-earrings-resin-earrings-11/ https://garokik.com/product/jewelry-resin-jewelry-earrings-resin-earrings-11/#respond Thu, 17 Jul 2025 15:59:46 +0000 https://garokik.com/product/jewelry-resin-jewelry-earrings-resin-earrings-11/ Resin drop earrings with real blossoms – unique, trendy, and timeless.

    ]]>
    Elegant handmade resin earrings with real dried flowers and gold flakes. Finished with a glossy gold-tone frame and pearl stud, these lightweight earrings blend natural beauty with modern design. Perfect for gifting or elevating your everyday style.

    ]]>
    https://garokik.com/product/jewelry-resin-jewelry-earrings-resin-earrings-11/feed/ 0