// 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!
| Family Picnic Ideas | What to Pack, What to Eat, & More! – DONG HA MANUFACTURING CO., LTD

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…it’s the dream! ???? Here are some picnic ideas like what to bring and what to eat DongHaCraft suggests so you can have a successful picnic!

Picnic Ideas

First, for a successful picnic as a family, you’re 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’ve had enough time at home already, haven’t we? ????

Large area with green grass and shady trees
Large area with green grass and shady trees

Picnic Food Ideas

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’s taste. Wraps are a good alternative too, with various fillings, such as turkey and avocado, ham and cheese, or veggie options.

Sandwiches are, of course, the classic picnic food. You could pack fruit and pasta salad.
Sandwiches are, of course, the classic picnic food. You could pack fruit and pasta salad.

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.

For dessert, you could bring cookies, bars, brownies, or pudding. If you don’t feel like baking just head to the bakery in your grocery store and get whatever catches your eye!

What to pack for a picnic

You really don’t need much! I’d 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:

– Picnic blanket or mat: Choose a waterproof and comfortable blanket to spread out and relax on.

– 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 because of their convenience. You can find them here, or contact to order with DongHaCraft. With diverse and eye-catching designs, they can both be used to store items and can be used to take pictures.

With diverse and eye-catching designs, they can both be used to store items and can be used to take pictures.
With diverse and eye-catching designs, they can both be used to store items and can be used to take pictures.

– 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.

What to pack for a picnic?
What to pack for a picnic?

– 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.

Engage in Fun Activities

When you’re 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.

Capture Beautiful Memories

Don’t forget to capture the beautiful moments of your family picnic
Don’t forget to capture the beautiful moments of your family picnic

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.

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!

#FamilyPicnicIdeas #OutdoorBonding #MemorableMoments #QualityTime #DongHaCraft

Leave a Reply

Your email address will not be published. Required fields are marked *

× How can I help you?