Изменение положения разделителя между столбцами bootstrap grid с помощью javascript

#javascript #jquery #html #css #twitter-bootstrap

#javascript #jquery #HTML #css #twitter-bootstrap

Вопрос:

Я внедряю bootstrap grid на своей веб-странице. Теперь я хочу установить разделитель между 2 столбцами grid / divs .o добиться этого я мог бы легко использовать border-right свойство, но это не сработало бы, когда веб-страница находится в режиме мобильного просмотра xs or sm . Таким образом, я хочу, чтобы вид и разделитель были такими, чтобы при увеличенном виде столбцы имели разделитель с правой границей, а при мобильном просмотре — разделитель с правой границей..Прикрепленные картинки могли бы рассказать историю лучше..

Вид рабочего стола-

Вид рабочего стола

И мобильное представление выглядит следующим образом..

введите описание изображения здесь

Теперь я предоставляю скрипт, который я реализовал для получения этой функции-

 "use strict";

function isBreakpoint( alias ) {
    return $('.device-'   alias).is(':visible');
}

if( isBreakpoint('xs') ) {
  $('.cdiv').css('border-bottom', 'none');
    $('.cdiv').css('border-bottom', '1px dotted black');

}
if( isBreakpoint('sm') || isBreakpoint('md') ||isBreakpoint('lg') ) {
  $('.cdiv').css('border-bottom', 'none');
    $('.cdiv').css('border-right', '1px dotted black');

}


var waitForFinalEvent = function () {
      var b = {};
      return function (c, d, a) {
        a || (a = "I am a banana!");
        b[a] amp;amp; clearTimeout(b[a]);
        b[a] = setTimeout(c, d);
      };
    }();

var fullDateString = new Date();


$(window).resize(function () {
    waitForFinalEvent(function(){

        if( isBreakpoint('xs') ) {
           $('.cdiv').css('border-right', 'none');
           $('.cdiv').css('border-bottom', '1px solid black');       
        }
      if( isBreakpoint('sm') || isBreakpoint('md') ||isBreakpoint('lg') ) {
        $('.cdiv').css('border-bottom', 'none');
        $('.cdiv').css('border-right', '1px solid black');
      }

    }, 300, fullDateString.getTime());

});
  

Теперь проблема в том, что, хотя я получаю желаемую функцию, она очень непоследовательна, то есть, например, переход между разными границами занимает много времени и демонстрирует несогласованность, иногда обе границы совпадают или когда-то border-right все еще присутствует, хотя мой экран вошел на территорию, когда border-bottom должен присутствовать

Любая помощь в определении плавного перехода между разными границами в разных измерениях..

 "use strict";
function isBreakpoint( alias ) {
    return $('.device-'   alias).is(':visible');
}

if( isBreakpoint('xs') ) {
  $('.cdiv').css('border-bottom', 'none');
    $('.cdiv').css('border-bottom', '1px dotted black');
  
}
if( isBreakpoint('sm') || isBreakpoint('md') ||isBreakpoint('lg') ) {
  $('.cdiv').css('border-bottom', 'none');
    $('.cdiv').css('border-right', '1px dotted black');
  
}


var waitForFinalEvent = function () {
      var b = {};
      return function (c, d, a) {
        a || (a = "I am a banana!");
        b[a] amp;amp; clearTimeout(b[a]);
        b[a] = setTimeout(c, d);
      };
    }();

var fullDateString = new Date();


$(window).resize(function () {
    waitForFinalEvent(function(){

        if( isBreakpoint('xs') ) {
           $('.cdiv').css('border-right', 'none');
           $('.cdiv').css('border-bottom', '1px dotted black');       
        }
	  if( isBreakpoint('sm') || isBreakpoint('md') ||isBreakpoint('lg') ) {
		$('.cdiv').css('border-bottom', 'none');
		$('.cdiv').css('border-right', '1px dotted black');
	  }

    }, 300, fullDateString.getTime());
					 
});  
 .cdiv h3{
	color: navy;
}
button{
	margin-top: 10px;
	position: absolute;
	right: 0;
	bottom: 1;
}  
 <!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content=="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Q8</title>
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
	<link rel="stylesheet" href="./q8.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
	<script src="q8res.js"></script>
</head>
 
<div class="device-xs visible-xs"></div>
<div class="device-sm visible-sm"></div>
<div class="device-md visible-md"></div>
<div class="device-lg visible-lg"></div>
<body>
	<div class="container-fluid">
		<div class="row" style="padding: 10px;">
			<div class="col-sm-4 col-xs-12 cdiv">
				<h3>Latest News</h3>
				<p style="margin-bottom: 20px;"> It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum .</p>
				<div class="btdiv" style="margin-top: 10px;"><button class="btn-primary">More</button></div>
			</div>
			<div class="col-sm-4 col-xs-12 cdiv">
				<h3>Feel free to Communicate</h3>
				<p style="margin-bottom: 20px;"> Donec tellus elit, lobortis ac velit non, scelerisque facilisis quam. Morbi sagittis risus sed pellentesque eleifend. </p>
				<button class="btn-primary">More</button>
			</div>
			<div class="col-sm-4 col-xs-12">
				<h3>Our Facilities</h3>
				<p style="margin-bottom: 20px;"> Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy.</p>
				<button class="btn-primary">More</button>
			</div>
		</div>
	</div>
</body>
</html>