Показывать больше и меньше опций при начальной загрузке

#html #css #bootstrap-4

#HTML #css #bootstrap-4

Вопрос:

У меня есть абзац, в котором, если строка больше 3, то в нем должно отображаться «Показать больше опций», и если я нажму на него, он расширит абзац и «Показать меньше опций» должен отображаться.»Если я нажму » показывать меньше», это приведет к свертыванию абзаца. Я должен сделать это только с помощью bootstrap, без jquery и javascript.

Комментарии:

1. Можете ли вы поделиться кодом, который вы уже пробовали?

2. Я почти уверен, что в Bootstrap нет такого встроенного элемента управления … а если бы и был, то для его сборки использовался бы JavaScript с библиотекой jQuery.

3. Я должен сделать высоту строки абзаца 1rem и общую высоту 3 rem для 3 строк. Я установил свойство overflow скрытым. Если я нажму на ссылку «Показать больше», тогда должен появиться текст переполнения.

4. вы можете сделать это с помощью js , переключаясь между значениями свойства overflow

Ответ №1:

вы можете выполнить эффект, используя javascript и jquery вам нужно сделать что-то вроде этого; jsfiddle

    

 $("document").ready(function(){
        // find elements
    var banner = $("#banner-message")
    var button = $("button")
    // when first load the window
    if($('.option').length>3){
    
    $('.option').each(function(index){
    var option=$(this);
    if(index>2){
    option.toggleClass('hidden');
    }
    })
    }
    
    // handle click and add class
    button.on("click", function(){
     if($('.option').length>3){
    
    $('.option').each(function(index){
    var option=$(this);
    if(index>2){
    option.toggleClass('hidden');
    }
    });
    }
    });
    });  
 body {
    background: #20262E;
    padding: 20px;
    font-family: Helvetica;
  }
  
  #banner-message {
    background: #fff;
    border-radius: 4px;
    padding: 20px;
    font-size: 25px;
    text-align: center;
    transition: all 0.2s;
    margin: 0 auto;
    width: 300px;
  }
  
  button {
    background: #0084ff;
    border: none;
    border-radius: 5px;
    padding: 8px 14px;
    font-size: 15px;
    color: #fff;
  }
  
  #banner-message.alt {
    background: #0084ff;
    color: #fff;
    margin-top: 40px;
    width: 200px;
  }
  
  #banner-message.alt button {
    background: #fff;
    color: #000;
  }
  
  .hidden {
    display: none;
  }

body {
    background: #20262E;
    padding: 20px;
    font-family: Helvetica;
  }
  
  #banner-message {
    background: #fff;
    border-radius: 4px;
    padding: 20px;
    font-size: 25px;
    text-align: center;
    transition: all 0.2s;
    margin: 0 auto;
    width: 300px;
  }
  
  button {
    background: #0084ff;
    border: none;
    border-radius: 5px;
    padding: 8px 14px;
    font-size: 15px;
    color: #fff;
  }
  
  #banner-message.alt {
    background: #0084ff;
    color: #fff;
    margin-top: 40px;
    width: 200px;
  }
  
  #banner-message.alt button {
    background: #fff;
    color: #000;
  }
  
  .hidden {
    display: none;
  }  
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <div id="banner-message">
        <div class='option'> option1</div>
         <div class='option'> option2</div>
          <div class='option'> option3</div>
           <div class='option'> option4</div>
      
        <button>Change color</button>
      </div>
</body>
</html>