Hover Text/Tooltip: underlined text doesn't show up on mobile | XM Community
Question

Hover Text/Tooltip: underlined text doesn't show up on mobile

  • 20 January 2021
  • 1 reply
  • 96 views

Badge +1

Hello,
I've added hover text/tooltip definitions to answer choices on my survey using the CSS and Javascript code that was recommended on these discussion boards (see code below). However, I noticed that the dotted underline that appears under the word with hover text shows up when viewing the survey on a desktop but not on mobile.
Does anyone have any insight as to why this might be the case? Thank you!
CSS
#tooltip
{
    text-align: center;
    color: #fff;
    background: #111;
    position: absolute;
    z-index: 100;
    padding: 15px;
  border-radius:10px 10px 10px 10px;
  font-family: Arial, Helvetica, sans-serif;
}
 
    #tooltip:after /* triangle decoration */
    {
        width: 0;
        height: 0;
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-top: 10px solid #111;
        content: '';
        position: absolute;
        left: 50%;
        bottom: -10px;
        margin-left: -10px;
    }
 
        #tooltip.top:after
        {
            border-top-color: transparent;
            border-bottom: 10px solid #111;
            top: -20px;
            bottom: auto;
        }
 
        #tooltip.left:after
        {
            left: 10px;
            margin: 0;
        }
 
        #tooltip.right:after
        {
            right: 10px;
            left: auto;
            margin: 0;
        }
JavaScript
Qualtrics.SurveyEngine.addOnload(function()
{
jQuery( function()
{
    var targets = jQuery( '[rel~=tooltip]' ),
        target  = false,
        tooltip = false,
        title   = false;
 
    targets.bind( 'mouseenter', function()
    {
        target  = jQuery( this );
        tip     = target.attr( 'title' );
        tooltip = jQuery( '

' );
 
        if( !tip || tip == '' )
            return false;
 
        target.removeAttr( 'title' );
        tooltip.css( 'opacity', 0 )
               .html( tip )
               .appendTo( 'body' );
 
        var init_tooltip = function()
        {
            if( jQuery( window ).width() < tooltip.outerWidth() * 1.5 )
                tooltip.css( 'max-width', jQuery( window ).width() / 2 );
            else
                tooltip.css( 'max-width', 340 );
 
            var pos_left = target.offset().left + ( target.outerWidth() / 2 ) - ( tooltip.outerWidth() / 2 ),
                pos_top  = target.offset().top - tooltip.outerHeight() - 20;
 
            if( pos_left < 0 )
            {
                pos_left = target.offset().left + target.outerWidth() / 2 - 20;
                tooltip.addClass( 'left' );
            }
            else
                tooltip.removeClass( 'left' );
 
            if( pos_left + tooltip.outerWidth() > jQuery( window ).width() )
            {
                pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;
                tooltip.addClass( 'right' );
            }
            else
                tooltip.removeClass( 'right' );
 
            if( pos_top < 0 )
            {
                var pos_top  = target.offset().top + target.outerHeight();
                tooltip.addClass( 'top' );
            }
            else
                tooltip.removeClass( 'top' );
 
            tooltip.css( { left: pos_left, top: pos_top } )
                   .animate( { top: '+=10', opacity: 1 }, 50 );
        };
 
        init_tooltip();
        jQuery( window ).resize( init_tooltip );
 
        var remove_tooltip = function()
        {
            tooltip.animate( { top: '-=10', opacity: 0 }, 50, function()
            {
                jQuery( this ).remove();
            });
 
            target.attr( 'title', tip );
        };
 
        target.bind( 'mouseleave', remove_tooltip );
        tooltip.bind( 'click', remove_tooltip );
    });
});
});


1 reply

Userlevel 7
Badge +27

Hi there, I am able to see the dotted line on my phone, but some things you can try if your Question Text is set up like the below:
Click to write the question text UX
That dotted underline shows up because of how browsers treat abbr tags. Maybe adding the below CSS would help it ensure that it displays. Try adding the below to the Style section of the survey's Look & Feel:
abbr[title] {
text-decoration: underline dotted;
}
Or to stand out more:
abbr[title] {
  text-decoration: red underline solid;
}
You can also remove the abbr tag and apply other formatting, though the formatting would remain on hover, unlike with the abbr tag. The Question Text could look something like:
Click to write the question text UX

Leave a Reply