Navigation
News
- Crime
- Election
- Environment
- Immigration
- LGBTQ+
- Police
- Politics
- Sports
- Opinion
- Beer
- Cocktails
- Restaurant Guide
- Restaurant Reviews
- Top 100 Bars
- Top 100 Restaurants
- Photos
Music
- Festivals
- Just Announced
- Local Music
- Photos
- Touring Artists
- Venues
- Cannabis
Things To Do
- Calendar
- Concert Calendar
- Events
- Lists
Best of Phoenix
- Cannabis
- La Vida
- Megalopolitan Life
- Nightlife
- Readers' Choice
- Newsletters
More
- About Us
- Advertise with Us
- Contact Us
- Flipbook Archive
- Membership
- Staff
- Tell Your Story | Sponsored
When: Thu., March 20, 7:30 p.m.
free
With The Conveyors & Selector Macondub
- Reggae,
- Concert,
- Manual
Venue Details
- Yucca Tap Room
29 W. Southern Ave., Tempe Tempe
480-967-4777
19 events 399 articles
'); popup.append('
'); var closer = jQuery(''); popup.append(closer); /** * Create an overlay to anchor the popup to the map. */ var overlay = new ol.Overlay({ element: popup.get(0), autoPan: true, autoPanAnimation: { duration: 250 } }); map.addOverlay(overlay); /** * Add a click handler to hide the overlay. * @return {boolean} Don't follow the href. */ closer.click(function(e) { overlay.setPosition(undefined); e.target.blur(); return false; }); function updateInfoBox(overlay, event) { var map = event.map; var pixel = map.getEventPixel(event.originalEvent); var features = map.getFeaturesAtPixel(pixel, {hitTolerance: 20}) || []; if (overlay && features.length) { var feature = features[0]; var content = jQuery(overlay.getElement()).find('.popup-content'); const id = feature.get('id'); const url = feature.get('url'); const name = feature.get('name'); const teaser = feature.get('teaser'); const address = feature.get('address'); const addresssupplement = feature.get('addresssupplement'); const city = feature.get('city'); const state = feature.get('state'); const postalcode = feature.get('postalcode'); const phone = feature.get('phone'); const neighborhoodgroup = feature.get('neighborhoodgroup'); const neighborhood = feature.get('neighborhood'); const category = feature.get('category'); var info = jQuery("
"); if (typeof url !== 'undefined' && url !== '') { info.append('
' + name + '
'); } else { info.append('
' + name + '
'); } (teaser) && info.append(''); var details = jQuery(''); (addresssupplement) ? details.append('' + address + '' + ' ' + addresssupplement + '') : details.append('' + address + ''); details.append(' ' + city + ', ' + '' + state + ' ' + '' + postalcode + ''); (phone) && details.append('
' + phone + ''); info.append(details); /* div.details */ content.html(info.html()); overlay.setPosition(event.coordinate); } else { overlay.setPosition(undefined); } return; } map.on('singleclick', function(evt) { if (evt.dragging) { overlay.setPosition(undefined); return; } updateInfoBox(overlay, evt); }); if (false) { /* */ function updateMousePointer(overlay, event) { var map = event.map; var pixel = map.getEventPixel(event.originalEvent); var features = map.getFeaturesAtPixel(pixel, {hitTolerance: 20}) || []; if (overlay && features.length) { jQuery(`#bestOfLocationMap`).css({ cursor: 'pointer'}); } else { jQuery(`#bestOfLocationMap`)[0].style.removeProperty(`cursor`); } } map.on('pointermove', function(evt) { updateMousePointer(overlay, evt); }); } Foundation.OpenLayers.Maps['maponlynoheader-map'].map = map }) .fail(function () { console.warn('/foundation/scripts/ol.js not loaded.') });
`); sm.containerWidth = options.containerWidth || 640; sm.containerHeight = options.containerHeight || 480; sm.containerWidthSmall = options.containerWidthSmall || 300; sm.containerHeightSmall = options.containerHeightSmall || 300; // sm.slideModalStylesText = ` #${sm.containerId} { position: fixed; width: ${sm.containerWidth}px; height: ${sm.containerHeight}px; max-width: 100%; background-color: #FFF; box-sizing: border-box; transition-timing-function: cubic-bezier(.65,.05,.36,1); transition-duration: ${sm.transitionDuration}ms; } #${sm.containerId}.origin-top { left: calc(50% - ${sm.containerWidth/2}px); top: -${sm.containerHeight}px; transition-property: top; } #${sm.containerId}.origin-bottom { left: calc(50% - ${sm.containerWidth/2}px); bottom: -${sm.containerHeight}px; transition-property: bottom; } #${sm.containerId}.origin-left { top: calc(50% - ${sm.containerHeight/2}px); left: -${sm.containerWidth}px; transition-property: left; } #${sm.containerId}.origin-right { top: calc(50% - ${sm.containerHeight/2}px); right: -${sm.containerWidth}px; transition-property: right; } #${sm.containerId}.origin-top.slide-to-edge { top: 0; } #${sm.containerId}.origin-bottom.slide-to-edge { bottom: 0; } #${sm.containerId}.origin-left.slide-to-edge { left: 0; } #${sm.containerId}.origin-right.slide-to-edge { right: 0; } #${sm.containerId}.origin-top.slide-to-center { top: calc(50% - ${sm.containerHeight/2}px); } #${sm.containerId}.origin-bottom.slide-to-center { bottom: calc(50% - ${sm.containerHeight/2}px); } #${sm.containerId}.origin-left.slide-to-center { left: calc(50% - ${sm.containerWidth/2}px); } #${sm.containerId}.origin-right.slide-to-center { right: calc(50% - ${sm.containerWidth/2}px); } @media (max-width:${sm.containerWidth - 1}px) or (max-height:${sm.containerHeight - 1}px) { #${sm.containerId} { width: ${sm.containerWidthSmall}px; height: ${sm.containerHeightSmall}px; } #${sm.containerId}.origin-top { left: calc(50% - ${sm.containerWidthSmall/2}px); top: -${sm.containerHeightSmall}px; transition-property: top; } #${sm.containerId}.origin-bottom { left: calc(50% - ${sm.containerWidthSmall/2}px); bottom: -${sm.containerHeightSmall}px; transition-property: bottom; } #${sm.containerId}.origin-left { top: calc(50% - ${sm.containerHeightSmall/2}px); left: -${sm.containerWidthSmall}px; transition-property: left; } #${sm.containerId}.origin-right { top: calc(50% - ${sm.containerHeightSmall/2}px); right: -${sm.containerWidthSmall}px; transition-property: right; } #${sm.containerId}.origin-top.slide-to-center { top: calc(50% - ${sm.containerHeightSmall/2}px); } #${sm.containerId}.origin-bottom.slide-to-center { bottom: calc(50% - ${sm.containerHeightSmall/2}px); } #${sm.containerId}.origin-left.slide-to-center { left: calc(50% - ${sm.containerWidthSmall/2}px); } #${sm.containerId}.origin-right.slide-to-center { right: calc(50% - ${sm.containerWidthSmall/2}px); } } `; // sm.getLocalStorageVersion = function () { return parseInt(window.localStorage.getItem(sm.localStorageVersionKey)) || sm.version; } sm.getLastDismissedTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDismissedKey)) || 0; } sm.getLastDismissedForeverTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDismissedForeverKey)) || 0; } sm.getLastDeniedTime = function () { return parseInt(window.localStorage.getItem(sm.localStorageDeniedKey)) || 0; } sm.resetSlideModalLocalStorage = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.removeItem(sm.localStorageDismissedKey); window.localStorage.removeItem(sm.localStorageDismissedForeverKey); window.localStorage.removeItem(sm.localStorageDeniedKey); } sm.showSlideModal = function () { sm.container.addClass(`slide-to-${sm.slideTo}`); sm.open = true; } sm.hideSlideModal = function () { sm.container.removeClass(`slide-to-${sm.slideTo}`); sm.open = false; } sm.dismissSlideModal = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDismissedKey, new Date().getTime()); // console.log(`SlideModal dismissed.`); sm.hideSlideModal(); } sm.dismissForeverSlideModal = function () { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDismissedForeverKey, new Date().getTime()); // console.log(`SlideModal dismissed.`); sm.hideSlideModal(); } sm.denySlideModal = function (e) { window.localStorage.setItem(sm.localStorageVersionKey, sm.version); window.localStorage.setItem(sm.localStorageDeniedKey, new Date().getTime()); // console.log(`SlideModal denied.`); sm.hideSlideModal(); } injectSlideModalStyles = function () { // console.log(`SlideModal styles added.`); const slideModalStyleContainer = jQuery(`
`); slideModalStyleContainer.text(sm.slideModalStylesText); jQuery('head').append(slideModalStyleContainer); } injectSlideModalBlock = function () { // console.log(`SlideModal element added.`); sm.container = jQuery(`
`); sm.container .attr(`id`, sm.containerId) .attr(`fdn-slide-modal`,``) .attr(`form-part-showing`,`1`) .addClass(`origin-${sm.slideOrigin}`) .html(sm.htmlBlock) jQuery('body').append(sm.container); } setupSlideModalBehavior = function () { // console.log(`SlideModal behavior setup.`); jQuery(document).on(`keydown`, (e) => { if (e.key === `Escape` && sm.escClose === true) { sm.hideSlideModal(); } }); jQuery(document).on(`click`, (e) => { if (sm.open == false) return; const myTarget = jQuery(e.target); const notSlideModal = myTarget.not(`#${sm.containerId} *`).length > 0; const isDismissTarget = myTarget.closest(sm.dismissSelector).length > 0; const isDismissForeverTarget = myTarget.closest(sm.dismissForeverSelector).length > 0; const isDenyTarget = myTarget.closest(sm.deniedSelector).length > 0; const isNavigateTarget = myTarget.closest(sm.dismissThenNavigateSelector).length > 0; window.console.log(`notSlideModal: ${notSlideModal}; isDismissTarget: ${isDismissTarget}; isDenyTarget: ${isDenyTarget}; sm.bgClose: ${sm.bgClose}`); if (notSlideModal && sm.bgClose === true) sm.hideSlideModal(); if (isDismissTarget) sm.dismissSlideModal(); if (isDismissForeverTarget) sm.dismissForeverSlideModal(); if (isDenyTarget) sm.denySlideModal(); if (isNavigateTarget) return; if (isDismissTarget || isDismissForeverTarget || isDenyTarget) e.preventDefault(); }); } injectSlideModalStyles(); injectSlideModalBlock(); setupSlideModalBehavior(); const contentReady = new Event(sm.contentReadyEventId); // console.log(`Content ready fired. EventId: ${sm.contentReadyEventId}`); window.dispatchEvent(contentReady); if (sm.getLocalStorageVersion() < sm.version) { sm.resetSlideModalLocalStorage(); } Foundation.SlideModal[slideModalId] = sm; Foundation.SlideModal.list.push(sm); // Set up interaction handling if not already set if (Foundation.SlideModal.userInteraction.initialized === true) return; jQuery(() => { jQuery(document).on(Foundation.SlideModal.userInteraction.events, Foundation.SlideModal.startSlideModal); }); Foundation.SlideModal.userInteraction.initialized = true; }, list: [], userInteraction: { initialized: false, sensed: false, events: 'scroll mousemove click touchstart' }, startSlideModal: () => { jQuery(document).off(Foundation.SlideModal.userInteraction.events, Foundation.SlideModal.startSlideModal); if (Foundation.SlideModal.userInteraction.sensed === true) return; // Prevent double execution Foundation.SlideModal.userInteraction.sensed = true; const validTargets = []; Foundation.SlideModal.list.forEach((target) => { // console.log(target); const notDismissed = new Date().getTime() > target.getLastDismissedTime() + target.delayAfterDismissed; const notDismissedForever = new Date().getTime() > target.getLastDismissedForeverTime() + target.delayAfterDismissedForever; const notDenied = new Date().getTime() > target.getLastDeniedTime() + target.delayAfterDenied; if (notDismissed && notDenied && notDismissedForever) { validTargets.push(target); } }); if (validTargets.length === 0) return; // Nothing to do const targetIndex = Math.round(Math.random() * (validTargets.length - 1)); const targetModal = validTargets[targetIndex]; // 100 milliseconds added to ensure setup is complete before show setTimeout(targetModal.showSlideModal, targetModal.delayBeforeShow + 100); }}
Stay in the Know
Sign up for the latest news, free stuff and more!