// tipsy, facebook style tooltips for jquery // version 1.0.0a // (c) 2008-2010 jason frame [jason@onehackoranother.com] // released under the MIT license (function($) { function maybeCall(thing, ctx) { return (typeof thing == 'function') ? (thing.call(ctx)) : thing; }; function isElementInDOM(ele) { while (ele = ele.parentNode) { if (ele == document) return true; } return false; }; function Tipsy(element, options) { this.$element = $(element); this.options = options; this.enabled = true; this.fixTitle(); }; Tipsy.prototype = { show: function() { var title = this.getTitle(); if (title && this.enabled) { var $tip = this.tip(); $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title); $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body); var pos = $.extend({}, this.$element.offset(), { width: this.$element[0].offsetWidth, height: this.$element[0].offsetHeight }); var actualWidth = $tip[0].offsetWidth, actualHeight = $tip[0].offsetHeight, gravity = maybeCall(this.options.gravity, this.$element[0]); var tp; switch (gravity.charAt(0)) { case 'n': tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 's': tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2}; break; case 'e': tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset}; break; case 'w': tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset}; break; } if (gravity.length == 2) { if (gravity.charAt(1) == 'w') { tp.left = pos.left + pos.width / 2 - 15; } else { tp.left = pos.left + pos.width / 2 - actualWidth + 15; } } $tip.css(tp).addClass('tipsy-' + gravity); $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0); if (this.options.className) { $tip.addClass(maybeCall(this.options.className, this.$element[0])); } if (this.options.fade) { $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity}); } else { $tip.css({visibility: 'visible', opacity: this.options.opacity}); } } }, hide: function() { if (this.options.fade) { this.tip().stop().fadeOut(function() { $(this).remove(); }); } else { this.tip().remove(); } }, fixTitle: function() { var $e = this.$element; if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') { $e.attr('original-title', $e.attr('title') || '').removeAttr('title'); } }, getTitle: function() { var title, $e = this.$element, o = this.options; this.fixTitle(); var title, o = this.options; if (typeof o.title == 'string') { title = $e.attr(o.title == 'title' ? 'original-title' : o.title); } else if (typeof o.title == 'function') { title = o.title.call($e[0]); } title = ('' + title).replace(/(^\s*|\s*$)/, ""); return title || o.fallback; }, tip: function() { if (!this.$tip) { this.$tip = $('
').html('
'); this.$tip.data('tipsy-pointee', this.$element[0]); } return this.$tip; }, validate: function() { if (!this.$element[0].parentNode) { this.hide(); this.$element = null; this.options = null; } }, enable: function() { this.enabled = true; }, disable: function() { this.enabled = false; }, toggleEnabled: function() { this.enabled = !this.enabled; } }; $.fn.tipsy = function(options) { if (options === true) { return this.data('tipsy'); } else if (typeof options == 'string') { var tipsy = this.data('tipsy'); if (tipsy) tipsy[options](); return this; } options = $.extend({}, $.fn.tipsy.defaults, options); function get(ele) { var tipsy = $.data(ele, 'tipsy'); if (!tipsy) { tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options)); $.data(ele, 'tipsy', tipsy); } return tipsy; } function enter() { var tipsy = get(this); tipsy.hoverState = 'in'; if (options.delayIn == 0) { tipsy.show(); } else { tipsy.fixTitle(); setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn); } }; function leave() { var tipsy = get(this); tipsy.hoverState = 'out'; if (options.delayOut == 0) { tipsy.hide(); } else { setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut); } }; if (!options.live) this.each(function() { get(this); }); if (options.trigger != 'manual') { var binder = options.live ? 'live' : 'bind', eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus', eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur'; this[binder](eventIn, enter)[binder](eventOut, leave); } return this; }; $.fn.tipsy.defaults = { className: null, delayIn: 0, delayOut: 0, fade: false, fallback: '', gravity: 'n', html: false, live: false, offset: 0, opacity: 0.8, title: 'title', trigger: 'hover' }; $.fn.tipsy.revalidate = function() { $('.tipsy').each(function() { var pointee = $.data(this, 'tipsy-pointee'); if (!pointee || !isElementInDOM(pointee)) { $(this).remove(); } }); }; // Overwrite this method to provide options on a per-element basis. // For example, you could store the gravity in a 'tipsy-gravity' attribute: // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' }); // (remember - do not modify 'options' in place!) $.fn.tipsy.elementOptions = function(ele, options) { return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; }; $.fn.tipsy.autoNS = function() { return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; }; $.fn.tipsy.autoWE = function() { return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w'; }; /** * yields a closure of the supplied parameters, producing a function that takes * no arguments and is suitable for use as an autogravity function like so: * * @param margin (int) - distance from the viewable region edge that an * element should be before setting its tooltip's gravity to be away * from that edge. * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer * if there are no viewable region edges effecting the tooltip's * gravity. It will try to vary from this minimally, for example, * if 'sw' is preferred and an element is near the right viewable * region edge, but not the top edge, it will set the gravity for * that element's tooltip to be 'se', preserving the southern * component. */ $.fn.tipsy.autoBounds = function(margin, prefer) { return function() { var dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)}, boundTop = $(document).scrollTop() + margin, boundLeft = $(document).scrollLeft() + margin, $this = $(this); if ($this.offset().top < boundTop) dir.ns = 'n'; if ($this.offset().left < boundLeft) dir.ew = 'w'; if ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e'; if ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's'; return dir.ns + (dir.ew ? dir.ew : ''); } }; })(jQuery); @keyframes rotate-forever{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#toplevel_page_amp-options .amp-count-loading{animation-duration:.75s;animation-iteration-count:infinite;animation-name:rotate-forever;animation-timing-function:linear;height:4px;width:4px;border-color:transparent transparent #fff #fff;border-style:solid;border-width:2px;border-radius:50%;display:inline-block}body.no-js #new-error-index-count,body.no-js #new-validation-url-count{display:none}

Chương trình học

Tin mới nhất

The tips of Purchasing Good Bamboo SteamersBamboo Versatility: From Lampshades to Furniture and MoreGet ready for the Mid-Autumn Festival – 5 Gift Ideas for Businesses to Give to Partners, Customers, and Employees.| Family Picnic Ideas | What to Pack, What to Eat, & More!
{"id":2835,"date":"2023-07-11T08:28:18","date_gmt":"2023-07-11T01:28:18","guid":{"rendered":"http:\/\/donghacraft.com\/?p=2835"},"modified":"2023-07-11T14:11:17","modified_gmt":"2023-07-11T07:11:17","slug":"family-picnic-ideas-what-to-pack-what-to-eat-more","status":"publish","type":"post","link":"http:\/\/donghacraft.com\/family-picnic-ideas-what-to-pack-what-to-eat-more\/","title":{"rendered":"| Family Picnic Ideas | What to Pack, What to Eat, & More!"},"content":{"rendered":"\t
\n\t\t\n

Picnics are a delightful way to spend quality time with your family while enjoying the great outdoors. Especially, Summer is a great time for picnics. Whether it’s a sunny day in the park, a beachside gathering, or a hike in the mountains, a family picnic is the perfect opportunity to relax, bond, and create beautiful memories together. Parents can sit and kids can play\u2026it\u2019s the dream! ???? Here are some picnic ideas like what to bring and what to eat DongHaCraft suggests so you can have a successful picnic!<\/strong><\/em><\/p>\n

Picnic Ideas<\/b><\/h1>\n

First, for a successful picnic as a family, you\u2019re going to need the right place. This would ideally be someplace out in nature where a spot with ample shade, you can lay a blanket on the grass and have room for your kiddos to run around! Such as a nursery or a big park. You can even go to your backyard, but it feels more special for everyone to be in a new place. We\u2019ve had enough time at home already, haven\u2019t we? ????<\/span><\/p>\n

\"Large
Large area with green grass and shady trees<\/figcaption><\/figure>\n

Picnic Food Ideas<\/strong><\/h1>\n

Simple is best. Sandwiches are, of course, the classic picnic food. They are easy to assemble and pack, as well as easy to customize for each person\u2019s taste. Wraps are a good alternative too, with various fillings, such as turkey and avocado, ham and cheese, or veggie options.<\/p>\n

\"Sandwiches
Sandwiches are, of course, the classic picnic food. You could pack fruit and pasta salad.<\/figcaption><\/figure>\n

For a side, you could pack fruit and pasta salad. Pack a selection of fresh fruits like grapes, berries, and sliced melons, along with crisp and crunchy veggies like carrot sticks, cucumber slices, and cherry tomatoes. Don’t forget to bring a cooler filled with chilled water, juices, or refreshing homemade lemonade.<\/p>\n

For dessert, you could bring cookies, bars, brownies, or pudding. If you don\u2019t feel like baking just head to the bakery in your grocery store and get whatever catches your eye!<\/p>\n

What to pack for a picnic<\/strong><\/h1>\n

You really don\u2019t need much! I\u2019d say you need food, drinks, something to carry the food in, maybe some silverware, and a blanket. To ensure a smooth and enjoyable picnic, pack the following essentials:<\/p>\n

– Picnic blanket or mat: Choose a waterproof and comfortable blanket to spread out and relax on.<\/p>\n

– Picnic basket or cooler: Carry a well-stocked picnic basket or cooler to keep your food and drinks fresh. I suggest you can use rattan picnic baskets<\/strong><\/a> because of their convenience. You can find them <\/span>here<\/a><\/strong>,<\/strong> or contact to order with <\/span>DongHaCraft<\/a><\/strong>.<\/strong> With diverse and eye-catching designs, they can both be used to store items and can be used to take pictures.<\/span><\/p>\n

\"With
With diverse and eye-catching designs, they can both be used to store items and can be used to take pictures.<\/figcaption><\/figure>\n

– Plates, cups, and utensils: Don’t forget to pack disposable or reusable plates, cups, and utensils for everyone.
– Napkins and paper towels: Keep napkins and paper towels handy for easy cleanup.<\/p>\n

\"What
What to pack for a picnic?<\/figcaption><\/figure>\n

– Sunscreen and insect repellent: Protect your family from the sun’s rays and pesky bugs with sunscreen and insect repellent.
– Trash bags: Remember to bring some trash bags to keep the picnic area clean and tidy.<\/p>\n

Engage in Fun Activities<\/strong><\/h1>\n

When you\u2019re outdoors the options are really endless! Consider bringing games like a frisbee, a soccer ball, or a deck of cards. You can also plan a nature scavenger hunt, a friendly game of charades, or simply bring along some coloring books and crayons for the little ones.<\/p>\n

Capture Beautiful Memories<\/strong><\/h1>\n
\"Don\u2019t
Don\u2019t forget to capture the beautiful moments of your family picnic<\/figcaption><\/figure>\n

Don’t forget to capture the beautiful moments of your family picnic. Bring a camera or use your smartphone to take photos and videos. Encourage everyone to participate in creating lasting memories together.<\/p>\n

Family picnics are wonderful opportunities to escape the hustle and bustle of daily life and enjoy quality time with your loved ones. By following these family picnic ideas, including what to pack, what to eat, and engaging in fun activities, you can create unforgettable memories and strengthen the bond with your family. So, pack your picnic basket, choose a beautiful location, and embark on a delightful adventure of outdoor togetherness!<\/em><\/p>\n

#FamilyPicnicIdeas #OutdoorBonding #MemorableMoments #QualityTime #DongHaCraft<\/span><\/p>\n\t\t\n