Author - Andrew Admin

GRT Youtube Popup

GRT Youtube Popup - jQuery Plugin

GRT Youtube Popup is a lightweight jQuery plugin that allows you to create responsive and customizable YouTube video popups on your website. It simplifies the process of embedding YouTube videos while providing an elegant and user-friendly popup interface for viewing videos.

Features:

  1. Responsive Popups: Automatically adjust to different screen sizes and devices.
  2. Customizable Options: Customize the appearance and behavior of the YouTube popups.
  3. Lazy Loading: Load YouTube videos only when the popup is opened, optimizing page load times.
  4. Multiple Popups: Create and display multiple video popups on a single page.
  5. Fullscreen Mode: Allows users to view videos in fullscreen mode for an immersive experience.

Benefits:

  • Enhanced User Experience: Provides an intuitive and visually appealing way to showcase YouTube videos.
  • Customization: Tailor the popups to match your website’s design and style.
  • Performance Optimization: Lazy loading ensures that videos don’t impact initial page load times.
  • Accessibility: Ensures that video content is accessible and user-friendly.

Links:

Getting Started:

To get started with GRT Youtube Popup, include jQuery and the GRT Youtube Popup library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- GRT Youtube Popup JS and CSS -->
<link rel="stylesheet" href="path_to_grt-youtube-popup/jquery.popupoverlay.css">
<script src="path_to_grt-youtube-popup/jquery.popupoverlay.js"></script>

Advanced Examples:

  1. Basic GRT Youtube Popup:
$('.youtube-popup').popup({
  type: 'iframe',
  iframeOptions: {
    preload: false
  }
});
  1. Customize Popup Appearance:
$('.youtube-popup').popup({
  type: 'iframe',
  iframeOptions: {
    preload: false
  },
  color: '#333', // Set custom background color
  opacity: 0.9, // Adjust overlay opacity
  transition: 'all 0.3s', // Apply custom transition
  scrolllock: true // Enable scroll lock while the popup is open
});
  1. Lazy Load GRT Youtube Popup:
$('.youtube-popup').popup({
  type: 'iframe',
  iframeOptions: {
    preload: false
  },
  pagecontainer: '.container' // Specify the container for lazy loading
});
  1. Fullscreen Mode for GRT Youtube Popup:
$('.youtube-popup').popup({
  type: 'iframe',
  iframeOptions: {
    preload: false
  },
  beforeopen: function() {
    $(this).css('width', '100%').css('height', '100%');
  },
  afterclose: function() {
    $(this).css('width', '').css('height', '');
  }
});

The GRT Youtube Popup jQuery plugin simplifies the integration of YouTube videos on your website by providing responsive and customizable video popups. Whether you want to showcase video content, tutorials, or presentations, GRT Youtube Popup offers a user-friendly and visually appealing solution.

Chosen

Chosen is a jQuery plugin that enhances the functionality and appearance of select boxes (dropdowns) on web forms. It provides an elegant and user-friendly interface for selecting options from long lists, making it easier for users to navigate and choose from available options.

Features:

  1. Searchable Dropdowns: Allows users to search and filter options within the dropdown.
  2. Multi-select Support: Enables users to select multiple options when needed.
  3. Customizable Styling: Provides options for customizing the appearance of the dropdown and search box.
  4. Optgroup Support: Organize options into groups for better categorization.
  5. Dynamic Option Loading: Load options dynamically based on user input or other criteria.
  6. Keyboard Navigation: Users can navigate and select options using the keyboard.

Benefits:

  • Improved Usability: Enhances the user experience by simplifying the selection of options from long lists.
  • Search Functionality: Provides a search feature for quicker and more precise selections.
  • Customization: Allows developers to tailor the appearance and behavior to match their website’s design.
  • Accessibility: Ensures that select boxes are usable for all users, including those with disabilities.

Links:

Getting Started:

To get started with Chosen, include jQuery and the Chosen library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Chosen CSS and JS -->
<link rel="stylesheet" href="path_to_chosen/chosen.min.css">
<script src="path_to_chosen/chosen.jquery.min.js"></script>

Advanced Examples:

  1. Basic Chosen Dropdown:
$('.chosen-select').chosen();
  1. Customize Chosen Appearance:
$('.chosen-select').chosen({
  disable_search_threshold: 10,
  no_results_text: "No results found",
  width: "200px"
});
  1. Multi-select Chosen Dropdown:
$('.chosen-select').chosen({
  max_selected_options: 3
});
  1. Dynamic Option Loading:
$('#load-options-button').click(function() {
  // Load options dynamically
  var newOptions = [
    { value: 'option1', text: 'Option 1' },
    { value: 'option2', text: 'Option 2' },
    // Add more options as needed
  ];
  $('.chosen-select').append(newOptions);
  $('.chosen-select').trigger('chosen:updated');
});
  1. Optgroup Support:
$('.chosen-select').chosen({
  disable_search_threshold: 10,
  width: "200px",
  enable_optgroups: true
});

The Chosen jQuery plugin is a valuable tool for web developers seeking to improve the user experience of select boxes on their websites. With features like search functionality, multi-select support, and customization options, it provides a modern and user-friendly interface for handling dropdown selections.

Validation

Validation is a jQuery plugin that simplifies and enhances form validation on websites. It provides an easy way to validate user inputs, ensuring that data submitted through forms meets specific criteria, such as required fields, valid email addresses, and more. This helps improve data accuracy and provides a better user experience.

Features:

  1. Form Validation: Easily validate form fields with customizable rules and messages.
  2. Built-in Validators: Includes a range of built-in validators for common use cases.
  3. Custom Validation Rules: Define custom validation rules to suit unique requirements.
  4. Error Messages: Display customizable error messages for each validation rule.
  5. Dynamic Validation: Validate fields as the user interacts with the form in real-time.
  6. Plugin Extensions: Extend functionality with additional plugins for date validation, password strength checking, and more.

Benefits:

  • Data Accuracy: Ensures that submitted data is accurate and meets specified criteria.
  • User-Friendly: Provides clear error messages to help users correct their inputs.
  • Customization: Allows for the creation of custom validation rules to fit specific needs.
  • Improved User Experience: Enhances the overall user experience by preventing form submission errors.

Links:

Getting Started:

To get started with Validation, include jQuery and the Validation library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Validation JS -->
<script src="path_to_validation/jquery.validate.min.js"></script>

Advanced Examples:

  1. Basic Form Validation:
$('#myForm').validate();
  1. Custom Validation Rules:
$('#myForm').validate({
  rules: {
    username: {
      required: true,
      minlength: 5
    },
    email: {
      required: true,
      email: true
    }
  },
  messages: {
    username: {
      required: "Please enter a username",
      minlength: "Username must be at least 5 characters long"
    },
    email: {
      required: "Please enter a valid email address",
      email: "Please enter a valid email address"
    }
  }
});
  1. Real-time Validation:
$('#myForm').validate({
  onkeyup: function(element) {
    $(element).valid();
  }
});
  1. Custom Validation Method:
$.validator.addMethod("customMethod", function(value, element) {
  // Define custom validation logic here
  return /* true or false */;
}, "Custom error message");
$('#myForm').validate({
  rules: {
    customField: {
      customMethod: true
    }
  }
});

The Validation jQuery plugin is a powerful tool for web developers looking to implement robust form validation on their websites. Its wide range of features, built-in validators, and customizability make it a top choice for ensuring data accuracy and providing a user-friendly form submission experience.

Lazy

Lazy is a jQuery plugin designed to improve website performance by lazy-loading images and other assets. It delays the loading of certain elements until they are needed, which can significantly reduce initial page load times and improve the user experience.

Features

  1. Image Lazy Loading: Load images only when they enter the viewport, saving bandwidth and improving load times.
  2. Asset Preloading: Delay the loading of non-critical assets like scripts, stylesheets, and videos.
  3. Customizable Thresholds: Adjust the triggering point at which lazy-loading occurs.
  4. Responsive Design: Works seamlessly across various screen sizes and devices.
  5. Supports Various Content Types: Not limited to images, can be applied to various content elements.

Benefits

  • Faster Loading: Reduces initial page load times, especially for pages with numerous images and assets.
  • Bandwidth Savings: Minimizes unnecessary data transfers, saving bandwidth for users.
  • Improved UX: Provides a smoother browsing experience by loading content on-demand.
  • SEO-Friendly: Helps improve page speed, which can positively impact search engine rankings.

Links

Getting Started

To get started with Lazy, include jQuery and the Lazy library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Lazy JS -->
<script src="path_to_lazy/jquery.lazy.min.js"></script>

Advanced Examples

Basic Image Lazy Loading:

$('img.lazy').Lazy();

Lazy Loading with Custom Threshold:

$('img.lazy').Lazy({
  threshold: 200, // Load images 200 pixels before they enter the viewport
});

Lazy Loading with Fade-in Effect:

$('img.lazy').Lazy({
  effect: 'fadeIn', // Apply a fade-in effect when images load
});

Lazy Loading for Background Images:

$('.lazy-background').Lazy({
  chainable: false, // Prevent elements from loading one after the other
});

Lazy Loading for Videos:

$('video.lazy').Lazy({
  enableThrottle: true, // Enable throttling for smoother video loading
});

The Lazy jQuery plugin is a valuable tool for web developers looking to optimize their websites for faster loading times and improved user experiences. By delaying the loading of images and assets until they are needed, Lazy helps reduce bandwidth usage and enhances overall website performance.

Owl Carousel

Owl Carousel is a responsive and customizable jQuery plugin that allows developers to create beautiful and feature-rich carousels or sliders. It’s designed to be versatile, offering a wide range of options for creating image sliders, content sliders, and more.

Features:

  1. Responsive Design: Ensures that your carousel adapts to different screen sizes and devices.
  2. Customizable: Provides a multitude of options for customizing the carousel’s behavior and appearance.
  3. Touch and Drag Support: Users can swipe and drag to navigate the carousel on touchscreen devices.
  4. Navigation and Pagination: Add navigation arrows and pagination dots for easy control.
  5. Lazy Loading: Improve page loading speed by loading images on demand.
  6. Auto-play: Automatically advance through carousel items at a specified interval.

Benefits:

  • Enhanced Visuals: Create eye-catching slideshows and carousels for your website.
  • User-Friendly: Intuitive navigation options make it easy for users to interact with the content.
  • Versatile: Suitable for showcasing images, products, testimonials, and more.
  • Cross-browser Compatibility: Ensures consistent behavior across different web browsers.

Links:

Getting Started:

To get started with Owl Carousel, include jQuery and the Owl Carousel library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Owl Carousel CSS and JS -->
<link rel="stylesheet" href="path_to_owl-carousel/owl.carousel.min.css">
<script src="path_to_owl-carousel/owl.carousel.min.js"></script>

Advanced Examples:

Basic Carousel:

$('.owl-carousel').owlCarousel({
  items: 3,
  loop: true,
  margin: 10,
  nav: true,
  responsive: {
    0: {
      items: 1
    },
    600: {
      items: 3
    }
  }
});

Responsive Carousel with Lazy Loading:

$('.owl-carousel').owlCarousel({
  items: 1,
  lazyLoad: true,
  loop: true,
  margin: 10,
  nav: true
});

Auto-playing Carousel with Custom Dots:

$('.owl-carousel').owlCarousel({
  items: 1,
  loop: true,
  autoplay: true,
  autoplayTimeout: 3000,
  autoplayHoverPause: true,
  dots: false
});

Custom Navigation Icons:

$('.owl-carousel').owlCarousel({
  items: 1,
  nav: true,
  navText: ['<i class="fa fa-chevron-left"></i>', '<i class="fa fa-chevron-right"></i>']
});

Carousel with Auto-Height:

$('.owl-carousel').owlCarousel({
  items: 1,
  autoHeight: true
});

Owl Carousel is a versatile jQuery plugin that provides a user-friendly and visually appealing way to create carousels and sliders on your website. Its wide range of features and customization options make it a top choice for developers looking to showcase content in an engaging manner.

Sticky

Sticky is a jQuery plugin designed to create sticky elements on your web page. Sticky elements are objects that remain fixed in position when scrolling, ensuring that they are always visible on the screen. This feature is commonly used for navigation bars, sidebars, or other content that should remain accessible as users scroll down the page.

Features:

  1. Easy Setup: Implement sticky elements with minimal configuration.
  2. Top and Bottom Limits: Define limits for sticky elements based on scrolling.
  3. Smooth Transitions: Add smooth transitions for sticky element activation and deactivation.
  4. Cross-browser Compatibility: Ensures consistent behavior across different web browsers.

Benefits:

  • Enhanced Navigation: Keeps important navigation elements visible at all times.
  • User-Friendly: Provides a seamless scrolling experience for users.
  • Customizable: Allows you to tailor the sticky behavior to your specific needs.
  • Improved UX: Reduces the need for users to scroll back to access important content.

Links:

Getting Started:

To get started with Sticky, include jQuery and the Sticky library in your project:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Sticky JS -->
<script src="path_to_sticky/jquery.sticky.js"></script>

Advanced Examples:

Basic Sticky Element:

$('.navbar').sticky();

Sticky Element with Top Limit:

$('.sidebar').sticky({ topSpacing: 50 });

Sticky Element with Smooth Transition:

$('.advertisement').sticky({ easing: 'easeInOutCubic' });

Sticky Element with Custom CSS Class:

$('.call-to-action').sticky({ className: 'custom-sticky-class' });

Sticky Element with Z-Index:

$('.promo-banner').sticky({ zIndex: 1000 });

The Sticky jQuery plugin is a valuable tool for web developers looking to create sticky elements on their websites. This functionality enhances user navigation and provides a seamless scrolling experience, ultimately improving the overall user experience.

Tipsy

Tipsy is a jQuery plugin that creates a Facebook-like tooltips effect based on an anchor tag’s title attribute. It’s a lightweight and stylish way to offer simple tooltips, making it easier for users to understand interface elements or get more context on specific content.

Features:

  1. Customizable: Offers various options for tooltip positioning, fade durations, and more.
  2. Gravity Support: Allows tooltips to be positioned to the north, south, east, or west of the target element.
  3. Live Event Binding: Supports dynamic elements added to the DOM after page load.
  4. Fade Effects: Smooth fade-in and fade-out animations for a polished look.

Benefits:

  • User Experience: Enhances user understanding with intuitive tooltips.
  • Lightweight: Doesn’t bloat your website, ensuring faster load times.
  • Stylish: Provides a modern, Facebook-like tooltip design.
  • Cross-browser: Works seamlessly across various browsers.

Links:

Getting Started:

To get started with Tipsy, you’ll need to include jQuery and then the Tipsy library:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Tipsy CSS and JS -->
<link rel="stylesheet" href="path_to_tipsy/stylesheets/tipsy.css">
<script src="path_to_tipsy/javascripts/jquery.tipsy.js"></script>

Advanced Examples:

  1. Basic Tooltip:
$('a[title]').tipsy();
  1. Tooltip with Custom Gravity:
$('.element').tipsy({ gravity: 'w' });  // Tooltip will appear to the left (west) of the element
  1. Fade Effect:
$('.element').tipsy({ fade: true });
  1. Delay in Tooltip Appearance:
$('.element').tipsy({ delayIn: 500 });  // Tooltip will appear after a 500ms delay
  1. HTML Content in Tooltip:
$('.element').tipsy({ 
  title: function() {
    return '<strong>HTML</strong> content here';
  },
  html: true 
});

Tipsy is a simple yet effective jQuery plugin that enhances the user experience by providing stylish tooltips. Its ease of use, combined with its customization options, makes it a popular choice for developers looking to add tooltips to their web projects.

Waypoints

Waypoints is a jQuery plugin that provides a way to execute functions when you scroll to an element. It makes it easy to trigger a function when you scroll to a specific point on the page, making it a popular choice for creating scroll-driven animations, lazy-loading content, sticky navigation, and more.

Features:

  1. Direction-aware: Detects the direction of the scroll, allowing for different behaviors on upward and downward scrolling.
  2. Extensible: Works with a range of plugins to extend its functionality, such as the “Inview” extension to trigger events when an element enters or exits the viewport.
  3. Adaptable: Works with any scrollable element, not just the window.
  4. Optimized: Built with performance in mind to ensure smooth scrolling experiences.

Benefits:

  • Interactivity: Enhances user experience by creating dynamic, scroll-driven effects.
  • Flexibility: Easily integrates with other jQuery plugins and libraries.
  • Efficiency: Lightweight and optimized for fast performance.
  • Cross-browser: Supports a wide range of browsers for maximum compatibility.

Links:

Getting Started:

To get started with Waypoints, you’ll first need to include jQuery and then the Waypoints library:

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Waypoints library -->
<script src="path_to_waypoints/jquery.waypoints.min.js"></script>

Examples:

Basic Waypoint:

$('.element').waypoint(function(direction) {
  alert('You have scrolled to an element!');
});

Direction-specific Actions:

$('.element').waypoint(function(direction) {
  if (direction === 'down') {
    $(this.element).addClass('scrolled-down');
  } else {
    $(this.element).removeClass('scrolled-down');
  }
});

Lazy Loading Images:

<img data-src="path_to_image.jpg" class="lazy-load">
$('.lazy-load').waypoint(function() {
  var img = $(this.element);
  img.attr('src', img.data('src'));
  img.removeAttr('data-src');
}, { offset: '100%' });

Sticky Navigation:

$('.navbar').waypoint(function(direction) {
  if (direction === 'down') {
    $(this.element).addClass('sticky');
  } else {
    $(this.element).removeClass('sticky');
  }
}, { offset: '-10px' });

Animate Elements on Scroll:

$('.animated-element').waypoint(function() {
  $(this.element).addClass('fadeInUp');
}, { offset: '75%' });

Waypoints is a versatile jQuery plugin that offers a simple way to enhance the interactivity of websites based on scroll position. Its range of features and the ability to integrate with other plugins make it a valuable tool for web developers looking to create dynamic, scroll-driven effects.

Magnific Popup

Magnific Popup is a responsive lightbox & dialog script that focuses on performance and provides a great user experience. It’s optimized for both desktop and mobile devices, offering fast, smooth animations and native-feeling gestures. The plugin is designed to be lightweight, flexible, and easy to integrate into various projects.

Features:

  1. Responsive: Adapts to any screen size, ensuring a consistent user experience across devices.
  2. Fast Performance: Built with performance in mind, offering smooth animations without lag.
  3. Gallery Support: Allows for the creation of beautiful image galleries with navigation controls.
  4. Inline Content: Display inline content, videos, iframes, and AJAX-loaded content.
  5. Customizable: Offers numerous settings and callbacks to tailor the popup to your needs.

Benefits:

  • User-Friendly: Provides a seamless user experience with intuitive controls.
  • Lightweight: Doesn’t bloat your website, ensuring faster load times.
  • Versatile: Suitable for various content types, from images to videos to AJAX-loaded content.
  • Accessibility: Built with accessibility in mind, ensuring it’s usable for everyone.

Links:

Getting Started:

To get started with Magnific Popup, you can include it in your project using a CDN or download it directly from the official website.

<!-- Magnific Popup CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css">
<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- Magnific Popup JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js"></script>

Examples:

Basic Image Popup:

<a class="image-popup" href="path_to_large_image.jpg">
    <img src="path_to_thumbnail.jpg" alt="Description">
</a>
<script>
  $(document).ready(function() {
    $('.image-popup').magnificPopup({
      type: 'image'
    });
  });
</script>

Image Gallery:

<div class="gallery">
    <a href="image1_large.jpg" title="Image 1"><img src="image1_thumb.jpg" alt="Thumbnail 1"></a>
    <a href="image2_large.jpg" title="Image 2"><img src="image2_thumb.jpg" alt="Thumbnail 2"></a>
    <a href="image3_large.jpg" title="Image 3"><img src="image3_thumb.jpg" alt="Thumbnail 3"></a>
    <!-- More images here -->
</div>
<script>
  $('.gallery').magnificPopup({
    delegate: 'a',
    type: 'image',
    gallery: {
      enabled: true
    }
  });
</script>

AJAX Content Popup:

<a href="ajax-content.html" class="ajax-popup">Load AJAX Content</a>
<script>
  $('.ajax-popup').magnificPopup({
    type: 'ajax'
  });
</script>

Video Popup (e.g., YouTube):

<a href="https://www.youtube.com/watch?v=VIDEO_ID" class="video-popup">Watch Video</a>
<script>
  $('.video-popup').magnificPopup({
    type: 'iframe',
    iframe: {
      patterns: {
        youtube: {
          index: 'youtube.com/',
          id: 'v=',
          src: 'https://www.youtube.com/embed/%id%?autoplay=1'
        }
      }
    }
  });
</script>

Zoom Effect on Open/Close:

<a href="image_large.jpg" class="zoom-effect"><img src="image_thumb.jpg" alt="Thumbnail"></a>
<script>
  $('.zoom-effect').magnificPopup({
    type: 'image',
    mainClass: 'mfp-with-zoom',
    zoom: {
      enabled: true,
      duration: 300,
      easing: 'ease-in-out',
      opener: function(openerElement) {
        return openerElement.is('img') ? openerElement : openerElement.find('img');
      }
    }
  });
</script>

Magnific Popup stands as a versatile and highly efficient lightbox plugin, known for its exceptional capabilities in elevating the presentation of diverse content types on websites. When it comes to web design, this plugin takes center stage, largely due to its unwavering focus on performance, an enriched user experience, and remarkable adaptability.

Its feature set and functionality appeal to an extensive audience of web developers and designers who value its ability to seamlessly integrate into various design projects.
It’s no wonder that Magnific Popup has emerged as a top choice within the web design community, contributing to the creation of visually stunning and engaging websites.

DataTable

jQuery DataTable is a powerful plugin for the jQuery library, designed to handle large datasets with ease. It provides advanced features like search, pagination, and sorting, transforming a standard HTML table into a dynamic and feature-rich grid.

Features:

  1. Search: Instant search across all columns.
  2. Pagination: Easily navigate through pages with built-in controls.
  3. Sorting: Sort data by any column with a single click.
  4. Responsive: Adapts to different screen sizes for optimal viewing.
  5. Customizable: Extensive API for custom features and behaviors.

Benefits:

  • Efficiency: Handles large datasets without performance issues.
  • Integration: Seamlessly integrates with Bootstrap, Foundation, and other CSS frameworks.
  • Flexibility: Supports various data sources including AJAX, JavaScript arrays, and server-side processing.
  • Localization: Supports multiple languages with internationalization.

Links:

Getting Started:

To get started with jQuery DataTable, you can include it in your project using a CDN or download it directly from the official website.

<!-- jQuery library -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<!-- DataTables CSS and JS -->
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.js"></script>

Examples:

Basic Initialization:

<table id="example" class="display">
    <thead>
        <tr>
            <th>Name</th>
            <th>Position</th>
            <th>Office</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Tiger Nixon</td>
            <td>System Architect</td>
            <td>Edinburgh</td>
        </tr>
        <!-- More rows here -->
    </tbody>
</table>
<script>
  $(document).ready( function () {
    $('#example').DataTable();
} );
</script>

jQuery DataTable is an essential tool for developers looking to enhance table functionalities in their web applications. Its rich set of features and customization options make it a top choice for data presentation and management.


Crown – south Florida SEO company