Advertisement
rAthus

Dashed line from one element to another (CSS border version)

Jul 20th, 2020
1,149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.57 KB | None | 0 0
  1. <script>
  2.     jQuery(document).ready(function($) {
  3.         function genererPointilles($E1, $E2, $parent, zIndex) {
  4.             var borderWidth = 4;
  5.            
  6.             if (typeof($parent)=='undefined')
  7.                 var $parent = $('#ajax-content-wrap');
  8.             if (typeof(zIndex)=='undefined')
  9.                 var zIndex = 10;
  10.            
  11.             var topMargin = $parent.offset().top;
  12.             var leftMargin = $parent.offset().left;
  13.            
  14.             var Ax = $E1.offset().left+$E1.width()/2-leftMargin;
  15.             var Ay = $E1.offset().top+$E1.height()-topMargin;
  16.            
  17.             var Bx = $E2.offset().left+$E2.width()/2-leftMargin;
  18.             var By = $E2.offset().top-topMargin;
  19.            
  20.             if (Bx<Ax)
  21.                 var A2x = Ax+(Bx-Ax)/2;
  22.             else
  23.                 var A2x = Ax-borderWidth/2;
  24.             var A2y = Ay;
  25.             var A2w = Math.abs((Ax-Bx)/2+borderWidth/2);
  26.             var A2h = Math.abs((By-Ay)/2+borderWidth/2);
  27.            
  28.             if (Bx<Ax)
  29.                 var B2x = Bx-borderWidth/2;
  30.             else
  31.                 var B2x = Bx+(Ax-Bx)/2;
  32.             var B2y = Ay+(By-Ay)/2-borderWidth/2;
  33.             var B2w = A2w+borderWidth/2;
  34.             var B2h = A2h+borderWidth/2;
  35.            
  36.             if (Math.abs(B2x-A2x)<5) {
  37.                 A2x = A2x+(A2x-B2x)/2;
  38.                 B2x = A2x;
  39.             }
  40.            
  41.             if (Bx<Ax) {
  42.                 var class1 = 'bottomright';
  43.                 var class2 = 'topleft';
  44.             }
  45.             else {
  46.                 var class1 = 'bottomleft';
  47.                 var class2 = 'topright';
  48.             }
  49.            
  50.             $parent.append('<div class="pointilles '+class1+'" style="left:'+A2x+'px;top:'+A2y+'px;width:'+A2w+'px;height:'+A2h+'px;z-index:'+zIndex+';"></div><div class="pointilles '+class2+'" style="left:'+B2x+'px;top:'+B2y+'px;width:'+B2w+'px;height:'+B2h+'px;z-index:'+zIndex+';"></div>');
  51.         }
  52.        
  53.         function pointilles() {
  54.             $('.pointilles').remove();
  55.             genererPointilles($('.pointilles-bloc-1 .column-bg-overlay-wrap'), $('.pointilles-bloc-2'));
  56.             genererPointilles($('.pointilles-bloc-2'), $('.pointilles-bloc-3'), $('.pointilles-wrapper-1'), 1);
  57.             genererPointilles($('.pointilles-bloc-3'), $('.pointilles-bloc-4'), $('.pointilles-wrapper-2'), 1);
  58.         }
  59.         pointilles();
  60.         $(window).resize(pointilles);
  61.     });
  62. </script>
  63. <style>
  64.     .pointilles {
  65.         position: absolute;
  66.         margin: 0;
  67.         padding: 0;
  68.         box-sizing: border-box;
  69.     }
  70.     .pointilles.bottomright {
  71.         border-bottom: 4px dashed #FD7721;
  72.         border-right: 4px dashed #FD7721;
  73.         border-radius: 0 0 50px 0;
  74.     }
  75.     .pointilles.bottomleft {
  76.         border-bottom: 4px dashed #FD7721;
  77.         border-left: 4px dashed #FD7721;
  78.         border-radius: 0 0 0 50px;
  79.     }
  80.     .pointilles.topleft {
  81.         border-top: 4px dashed #FD7721;
  82.         border-left: 4px dashed #FD7721;
  83.         border-radius: 50px 0 0 0;
  84.     }
  85.     .pointilles.topright {
  86.         border-top: 4px dashed #FD7721;
  87.         border-right: 4px dashed #FD7721;
  88.         border-radius: 0 50px 0 0;
  89.     }
  90. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement