Free shipping over $39.99
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
1 / 7
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim
Save $10.00

Women's sun hat gardening hat sun protection breathable cotton summer hat with folding brim

$19.99 $29.99
0 sold
color
Qty
summer hats for women
womens sun hat
sun hat for women
sun hat
womens beach hat
sun hat

Sun hat material: Double-layer 100% cotton fabric, durable and light-resistant; the outer layer of the upper part of the women's sun hat is made of cotton fabric, which is soft and comfortable, keeping your head cool in hot weather;
One Size Fits Most: This foldable sun hat with ponytail holes fits most: Medium, fits head circumference 56.5-58.7cm/22-23 1/8"; UPF 50 hat comes with an adjustable buckle that can Adjust the head circumference according to your size; the brim is 9.5cm/3.74 inches, the wide brim can provide enough sunlight for your face and neck.
Unique design: The women's men's sun hat has a fixed line on the brim, you can change the brim to any style you want; the wide brim sun hat comes with a removable wind cord in the same color, so it can be worn securely even on windy days on the head;
Foldable Hiking Hat: Collapsible, compressible, packable, restores shape; perfect for the beach, boating, walks in the park, hiking, gardening or farm chores, family gatherings, and more.
You May Also Like Don't Like These?
const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);