


Salesforce
Salesforce“We hired Jon for a fundraising cocktail party held at our house for 100 people. He was outstanding! ... Jon was perfect and so entertaining! The feedback we received was so positive and people were blown away at how fun, professional and talented he is.”

Stacy PurcellStacy Purcell

Directions in Fortville, IN to Virtual magician LA online magic shows Los Angeles
From Daleville Town Hall Park and Splash Pad to Jon Finch | Zoom Magician & Mentalist for Virtual EventsFrom Magic and Fun by Doug Jave to Jon Finch | Zoom Magician & Mentalist for Virtual Events
From Magication Station to Jon Finch | Zoom Magician & Mentalist for Virtual EventsFrom Magician Jon Finch | Fishers magic shows by mentalist magician Jon Finch to Jon Finch | Zoom Magician & Mentalist for Virtual Events
From Finch Entertainment - Indianapolis Magician Jon Finch to Jon Finch | Zoom Magician & Mentalist for Virtual EventsFrom Fortville IT House to Jon Finch | Zoom Magician & Mentalist for Virtual EventsIf yours is a virtual event, a
virtual magic showFrom Comedy Magician-Broadway Magic Show to Jon Finch | Zoom Magician & Mentalist for Virtual Events in the world.
A different kind of magicFrom Binky the Magic Clown to Jon Finch | Zoom Magician & Mentalist for Virtual EventsDaleville Charm.
Global Talent.If yours is a virtual event, a Your guests will thank youvirtual magic showMagic for adult audiences is just as amazing as an in person appearance, but you can invite even more people. Even better, consider astonishing the audience with the most popular As one of the most popular virtual mentalistmagicians in Daleville in the world., Indy entertainer Jon Finch serves surrounding Indiana cities and suburbs including Daleville. Join thousands of Hoosiers who gave their guests a memory of a lifetime.


extraordinary event, wherever your audience happens to celebrate.
All Fortville areas served
document.addEventListener('DOMContentLoaded', function() { // Target the UL elements with their unique classes const topRow = document.querySelector('.logos-top-row'); const bottomRow = document.querySelector('.logos-bottm-row'); // Function to set up scrolling for a specific row with custom duration function setupScroll(list, duration) { // Make sure the list has the right CSS list.style.display = 'flex'; list.style.width = 'fit-content'; // Get the first half of items (your original logos) const items = Array.from(list.children).slice(0, list.children.length / 2); // Calculate the width of the first half (original set of logos) const firstHalfWidth = items.reduce((width, item) => { return width + item.offsetWidth; }, 0); // Set the scroll function function scroll() { // Reset position instantly list.style.transition = 'none'; list.style.transform = 'translateX(0)'; // Force reflow void list.offsetWidth; // Start smooth scrolling animation with custom duration list.style.transition = `transform ${duration}s cubic-bezier(0.4, 0.0, 0.2, 1)`; list.style.transform = `translateX(-${firstHalfWidth}px)`; } // Initial scroll scroll(); // Set up infinite scrolling with specific event list.addEventListener('transitionend', function(event) { // Only trigger scroll reset if it's the transform transition that ended if (event.propertyName === 'transform') { scroll(); } }); } // Reduce speed for mobile const speedMultiplier = window.innerWidth in or near Naptown<



































