Difference between revisions of "User:Wookipan/Sandbox/Page.js"

From Team Fortress Wiki
Jump to: navigation, search
m (Change block order to ensure that tooltips containing links are handled before checking the offset, remove unnecessary "pointer-events" applied to link tooltips)
m (Disable)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
/*
 
var wikiTooltip = {
 
var wikiTooltip = {
 
     init: function() {
 
     init: function() {
Line 6: Line 7:
 
             $tooltips.each(function() {
 
             $tooltips.each(function() {
 
                 var $this = $(this);
 
                 var $this = $(this);
 +
                function handler() {
 +
                    // Check for links and handle them on handheld devices
 +
                    if (!!$this.closest('a').attr('href')) {
 +
                        $this.closest('a').removeAttr('title');
  
                // Check for links and handle them on handheld devices
+
                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
                if ($this.closest('a').attr('href') !== undefined) {
+
                    }
                    $this.closest('a').removeAttr('title');
 
  
                     if (widthRect <= 1000) {
+
                    // Prevent tooltips from overflowing the viewport
                         wikiTooltip.hasLink($this);
+
                    edgeRect = $this.width() + $this[0].getBoundingClientRect().left;
 +
                    widthRect = $(window).innerWidth();
 +
                     if (edgeRect > (widthRect || $(body).clientWidth)) {
 +
                        $this.css('left', '');
 +
                        $this.css('right', '100%');
 +
                    } else {
 +
                         $this.css('right', '');
 +
                        $this.css('left', '100%');
 
                     }
 
                     }
 
                 }
 
                 }
 
+
                 $(handler);
                 // Prevent tooltips from overflowing the viewport
+
                 setTimeout(function() {
                edgeRect = $this.width() + $this.offset().left;
+
                     $(window).on('resize', handler);
                widthRect = $(window).width();
+
                 }, 250);
                 if (edgeRect - widthRect > $this.width()*0) {
 
                     $this.css('left', '');
 
                    $this.css('right', '100%');
 
                 }
 
 
             });
 
             });
 
         }
 
         }
 
     },
 
     },
 
     hasLink: function(tooltip) {
 
     hasLink: function(tooltip) {
         var $a = $('<a>');
+
         if (tooltip.find('a').length < 1) {
 +
            var $a = $('<a>');
 +
            var url = tooltip.closest('a');
 +
            var href = url.attr('href');
 +
 
 +
            $a.attr('href', href);
 +
            url.attr('href', 'javascript:void(0);');
 +
            tooltip.append($a);
 +
        }
 +
    },
 +
    removeAnchor: function(tooltip) {
 
         var url = tooltip.closest('a');
 
         var url = tooltip.closest('a');
 
         var href = url.attr('href');
 
         var href = url.attr('href');
  
         $a.attr('href', href);
+
         innerLink = tooltip.find('a').attr('href');
         url.attr('href', 'javascript:void(0);');
+
         if (innerLink) {
        tooltip.append($a);
+
            href = innerLink;
 +
            url.attr('href', href);
 +
            tooltip.find('a').remove();
 +
        } else {
 +
            return;
 +
        }
 
     }
 
     }
 
};
 
};
 
$(wikiTooltip.init);
 
$(wikiTooltip.init);
 +
*/

Latest revision as of 22:19, 2 October 2023

/*
var wikiTooltip = {
    init: function() {
        var $tooltips = $('.wiki-tooltip .wiki-tooltip-content');

        if ($tooltips[0]) {
            $tooltips.each(function() {
                var $this = $(this);
                function handler() {
                    // Check for links and handle them on handheld devices
                    if (!!$this.closest('a').attr('href')) {
                        $this.closest('a').removeAttr('title');

                        widthRect <= 1000 ? wikiTooltip.hasLink($this) : wikiTooltip.removeAnchor($this);
                    }

                    // Prevent tooltips from overflowing the viewport
                    edgeRect = $this.width() + $this[0].getBoundingClientRect().left;
                    widthRect = $(window).innerWidth();
                    if (edgeRect > (widthRect || $(body).clientWidth)) {
                        $this.css('left', '');
                        $this.css('right', '100%');
                    } else {
                        $this.css('right', '');
                        $this.css('left', '100%');
                    }
                }
                $(handler);
                setTimeout(function() {
                    $(window).on('resize', handler);
                }, 250);
            });
        }
    },
    hasLink: function(tooltip) {
        if (tooltip.find('a').length < 1) {
            var $a = $('<a>');
            var url = tooltip.closest('a');
            var href = url.attr('href');

            $a.attr('href', href);
            url.attr('href', 'javascript:void(0);');
            tooltip.append($a);
        }
    },
    removeAnchor: function(tooltip) {
        var url = tooltip.closest('a');
        var href = url.attr('href');

        innerLink = tooltip.find('a').attr('href');
        if (innerLink) {
            href = innerLink;
            url.attr('href', href);
            tooltip.find('a').remove();
        } else {
            return;
        }
    }
};
$(wikiTooltip.init);
*/