বুটস্ট্র্যাপ: মোডালে আরেকটি মডেল খুলুন


97

সুতরাং, আমি বর্তমান কোড খোলা মডেল উইন্ডোতে অন্য একটি মডেল উইন্ডো খুলতে এই কোডটি ব্যবহার করছি:

<a onclick=\"$('#login').modal('hide');$('#lost').modal('show');\" href='#'>Click</a>

যা হয় তা হ'ল 500 মাইলের মতো স্ক্রোলবারটি সদৃশ হবে। আমার ধারণা, কারণ বর্তমান মডেলটি এখনও ম্লান হয়ে যাচ্ছে। তবে এটি দেখতে খুব আন-মসৃণ এবং তোতলা লাগছে।

আমি এই সমস্যাটি সমাধান করার জন্য কোনও পরামর্শের প্রশংসা করব।

এছাড়াও, কোনও অনক্লিক-ইভেন্টে কীভাবে এটি তৈরির উপায়টি পেশাদার নয়?

আমি বুটস্ট্র্যাপ সংস্করণ 3.0 নিয়ে কাজ করছি।

সম্পাদনা: আমার ধারণা, কোনও মডেল ফুরিয়ে যাওয়ার সময়টি হ্রাস করার জন্য এটি প্রয়োজনীয়। এটা কিভাবে সম্ভব?


4
কাজ উদাহরণস্বরূপ পাওয়া যাবে bootply.com/lvKQA2AM28
CrandellWS

উত্তর:


87

data-dismiss বর্তমান মডেল উইন্ডো ফোর্সটি বন্ধ করে দেয়

data-toggleএর hrefভিতরে থাকা সামগ্রী সহ একটি নতুন মডেল খুলবে

<a data-dismiss="modal" data-toggle="modal" href="#lost">Click</a>

বা

<a data-dismiss="modal" onclick="call the new div here">Click</a>

এটি কাজ করে যদি আমাদের জানান।


ধন্যবাদ, এটি কাজ করে এবং "অনক্লিক" ব্যবহার এড়ানো হয়। তবে অ্যানিমেটিওম এখনও এক সেকেন্ডের জন্য স্ক্রোলবারকে দ্বিগুণ করে।
অ্যালেক্সিওভায়

@ ব্যবহারকারী 2829128 যা data-dismissকরে তা স্থির করে। এটি বর্তমান উইন্ডোটি বন্ধ করে একটি নতুন উইন্ডো খুলবে। আপনি আপনার কোড পোস্ট করতে পারেন bootplyবা jsfiddle?
jayeshkv

14
উচ্চতা দীর্ঘ হলে স্ক্রলিংটি দ্বিতীয় মডালে কাজ করবে না।
গিরালদী 15'15

বুটস্ট্র্যাপ ভি 4 এর সাথে একই। আমি যখন প্রথম মন্ডলের বোতামে ক্লিক করি তখন এটি মোডালকে আনথর করে দেয়, দ্বিতীয় স্তরের দেহের স্ক্রোল প্রদর্শন করে। সমস্যাগুলি ক্লাসে রয়েছে mod শরীরের জন্য আধুনিক open যখন আমরা ক্লিক করি এবং আবার যুক্ত না করি তখন এটি সরিয়ে ফেলা হয়।
এফডিআরভি

7
.modal { overflow-y: auto }BS4 স্ক্রোলিং সমস্যা সমাধান করে।
রিকি 137

86

আমার সমাধান নীচের মডেলটি বন্ধ করে না, তবে সত্যই এটির উপরে স্ট্যাকস রয়েছে। এটি সঠিকভাবে স্ক্রোলিং আচরণ সংরক্ষণ করে। বুটস্ট্র্যাপে পরীক্ষিত 3.. মডেলগুলি প্রত্যাশার মতো স্ট্যাক করার জন্য আপনার সেগুলি আপনার এইচটিএমএল মার্কআপে সর্বনিম্ন থেকে সর্বোচ্চ পর্যন্ত অর্ডার করা উচিত।

$(document).on('hidden.bs.modal', function (event) {
  if ($('.modal:visible').length) {
    $('body').addClass('modal-open');
  }
});

আপডেট: আপনি যখন মোডালগুলি সজ্জিত করেন তখন সমস্ত ব্যাকড্রপগুলি নিম্নতম মডেলের নীচে উপস্থিত হয়। আপনি নিম্নলিখিত সিএসএস যোগ করে এটি ঠিক করতে পারেন:

.modal-backdrop {
    visibility: hidden !important;
}
.modal.in {
    background-color: rgba(0,0,0,0.5);
}

এটি শীর্ষস্থানীয় দৃশ্যমান মডালের নীচে মডেল ব্যাকড্রপটির উপস্থিতি দেবে। এইভাবে এটি নীচে আপনার নীচের মডেলগুলি ধূসর করে।


4
পৃষ্ঠা মার্কআপের আইটেমগুলির পরে স্বাভাবিকভাবে উচ্চতর জেড-ইনডেক্স থাকে এবং মার্কআপে প্রদর্শিত আইটেমগুলির শীর্ষে স্ট্যাক করা হবে। আপনি যদি একটি সুস্পষ্ট z- সূচক সেট না করেন।
এইচ ডগ

4
@ এইচ ডগ: ঠিক আমার যা প্রয়োজন :) নিখুঁতভাবে কাজ করে। ধন্যবাদ!
টোবিয়াস কলার

4
সত্যিই কিংবদন্তি !! যখনই কেউ কেবল এর জন্য একটি প্লাগইন ব্যবহার করার পরামর্শ দিয়েছিল তখন আমি উল্টে গেলাম ... কেবলমাত্র একটি সাধারণ সমস্যার সহজ সমাধান পেতে চেয়েছিল এবং আপনি সেখানে যান ... চিয়ার্স!
Fr0zenFyr

4
আপনার সহায়তার জন্য ধন্যবাদ, আপনার সমস্যাটি আমার সমস্যার বয়ে গেছে, যখন আমি একই সময় দুটি মডেল ব্যবহার করি !!!!!
লেভন

4
জাভাস্ক্রিপ্ট বুটস্ট্র্যাপ 4 এর জন্য কাজ করেছে, তবে CSS তা করেনি। পরিবর্তে আমি ব্যাকড্রপটি লুকিয়ে রেখেছি এবং পরে। {সামগ্রী: "" পরে; প্রদর্শন ব্লক; পটভূমি: rgba (0,0,0, .5); অবস্থান: স্থির; শীর্ষ: 0; নীচে: 0; প্রস্থ: 100%; জেড-ইনডেক্স: -1; }
জেসন জি।

28

বর্তমান খোলা মডেল উইন্ডোতে অন্য একটি মডেল উইন্ডো খোলার জন্য,
আপনি বুটস্ট্র্যাপ-মডেল ব্যবহার করতে পারেন

বুটস্ট্র্যাপ-মডেল ডেমো


এই বুটস্ট্র্যাপ-মডেল ব্যবহার করে ব্যাকগ্রাউন্ডের সামগ্রীটি ডানে সরিয়ে দেওয়া হয়।
ব্রায়ান

: - @Brian এখানে দেখতে stackoverflow.com/questions/46339063/...
lfkwtz

19

এটা চেষ্টা কর

<!DOCTYPE html>
<html lang="en">
<head>
  <title></title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>

  <button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#test1">Open Modal 1 </button>



<div id="test1" class="modal fade" role="dialog" style="z-index: 1400;">
  <div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
      
      <div class="modal-body">
      	<button type="button" class="btn btn-info btn-lg" data-toggle="modal"      data-target="#test2">Open Modal 2</button>
      	
      </div>      
    </div>
  </div>
</div>

<div id="test2" class="modal fade" role="dialog" style="z-index: 1600;">
  <div class="modal-dialog">
    <!-- Modal content-->
    <div class="modal-content">
      
      <div class="modal-body">
      	
        content
      	
      </div>      
    </div>
  </div>
</div>
  

</body>
</html>


4
আমার জন্য ব্যর্থ .. = (মডেলটি কাজ করে তবে যদি 1 ম মডেলটি দীর্ঘ হয় তবে 1 ম মডেলের জন্য একটি স্ক্রোল উপস্থিত হয় এবং আপনি যখন 2
তম মডেলটি

আপনাকে অনেক ধন্যবাদ, এটি একটি দুর্দান্ত সাহায্য ছিল :)
ড্যানিয়েল Muñoz

18

পুরানো মডেল কখন hidden.bs.modalইভেন্টটি কল করে বন্ধ হবে তা আপনি আসলে সনাক্ত করতে পারেন :

    $('.yourButton').click(function(e){
        e.preventDefault();

        $('#yourFirstModal')
            .modal('hide')
            .on('hidden.bs.modal', function (e) {
                $('#yourSecondModal').modal('show');

                $(this).off('hidden.bs.modal'); // Remove the 'on' event binding
            });

    });

আরও তথ্যের জন্য: http://getbootstrap.com/javascript/#modals-events


16

2018 এর জন্য আপডেট - বুটস্ট্র্যাপ 4 ব্যবহার করে

আমি বেশিরভাগ উত্তরগুলিতে অনেকগুলি অপ্রয়োজনীয় jQuery রয়েছে বলে মনে করেছি। অন্য কোনও মডেল থেকে কোনও মডেল খোলার জন্য বুটস্ট্র্যাপ যেমন সরবরাহ করে সেগুলি ব্যবহার করে সহজেই কাজটি করা যেতে পারে show.bs.modal। আপনি কিছু সিএসএস ব্যাকড্রপ ওভারলেগুলি পরিচালনা করতেও চাইতে পারেন want অন্য পরিস্থিতিতে থেকে 3 টি মুক্ত মডেল এখানে ...

অন্য একটি মডেল থেকে মোডাল খুলুন (প্রথম মডেলটি উন্মুক্ত রাখুন)

<a data-toggle="modal" href="#myModal" class="btn btn-primary">Launch modal</a>

<div class="modal" id="myModal">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <h4 class="modal-title">Modal title</h4>    
              <button type="button" class="close" data-dismiss="modal">×</button>
            </div><div class="container"></div>
            <div class="modal-body">
              ...
              <a data-toggle="modal" href="#myModal2" class="btn btn-primary">Open modal2</a>
            </div>
            <div class="modal-footer">
              <a href="#" data-dismiss="modal" class="btn">Close</a>
            </div>
          </div>
        </div>
</div>
<div class="modal" id="myModal2" data-backdrop="static">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <h4 class="modal-title">2nd Modal title</h4>
              <button type="button" class="close" data-dismiss="modal">×</button>
            </div><div class="container"></div>
            <div class="modal-body">
              ..
            </div>
            <div class="modal-footer">
              <a href="#" data-dismiss="modal" class="btn">Close</a>
              <a href="#" class="btn btn-primary">Save changes</a>
            </div>
          </div>
        </div>
</div>

এই ক্ষেত্রে একটি সম্ভাব্য সমস্যা হ'ল ২ য় মডেলের ব্যাকড্রপটি 1 ম মডেলটি আড়াল করে। এটি প্রতিরোধ করতে, ২ য় মডেল data-backdrop="static"তৈরি করুন এবং ব্যাকড্রপগুলির জেড-সূচকগুলি ঠিক করতে কিছু সিএসএস যুক্ত করুন ...

/* modal backdrop fix */
.modal:nth-of-type(even) {
    z-index: 1052 !important;
}
.modal-backdrop.show:nth-of-type(even) {
    z-index: 1051 !important;
}

https://www.codeply.com/go/NiFzSCukVl


অন্য একটি মডেল থেকে মোডাল খুলুন (প্রথম মডেল বন্ধ করুন)

এটি উপরের দৃশ্যের অনুরূপ, তবে যেহেতু ২ য় খোলার সময় আমরা 1 ম মডেলটি বন্ধ করছি তাই ব্যাকড্রপ সিএসএস ফিক্সের প্রয়োজন নেই। একটি সাধারণ ফাংশন যা ২ য় মডেলের show.bs.modalইভেন্ট পরিচালনা করে 1 ম মডেলটি বন্ধ করে।

$("#myModal2").on('show.bs.modal', function (e) {
    $("#myModal1").modal("hide");
});

https://www.codeply.com/go/ejaUJ4YANz


অন্য একটি মডেলের অভ্যন্তরে মোডাল খুলুন

সর্বশেষ একাধিক মডেলের দৃশ্যে 1 ম মডালের ভিতরে 2 য় মডেলটি খোলা হচ্ছে। এক্ষেত্রে ২ য় এর মার্কআপটি 1 ম এর ভিতরে স্থাপন করা হয়। কোনও অতিরিক্ত সিএসএস বা jQuery প্রয়োজন হয় না।

<div class="modal" id="myModal1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title">Modal title</h4>
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
            </div>
            <div class="container"></div>
            <div class="modal-body">
                ...
                <a data-toggle="modal" href="#myModal2" class="btn btn-primary">Launch modal 2</a>
            </div>
            <div class="modal-footer">
                <a href="#" data-dismiss="modal" class="btn">Close</a>
            </div>
        </div>
    </div>

    <div class="modal" id="myModal2">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h4 class="modal-title">2nd Modal title</h4>
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                </div>
                <div class="container"></div>
                <div class="modal-body">
                    ...
                </div>
                <div class="modal-footer">
                    <a href="#" data-dismiss="modal" class="btn">Close</a>
                    <a href="#" class="btn btn-primary">Save changes</a>
                </div>
            </div>
        </div>
    </div>
</div>

https://www.codeply.com/go/iSbjqubiyn


এটি বুটস্ট্র্যাপ ৪-এ কাজ করে না আপনি যখন ২ য় মডেলটি বন্ধ করেন, প্রথম জন আর স্ক্রোল করতে পারবেন না।
জাস্টিন

@ জাস্টিন - আমি এমন একটি নির্দিষ্ট দৃশ্য দেখছি না যা এটি প্রদর্শন করে এবং যেহেতু স্ক্রোলিং মূল প্রশ্নের ক্ষেত্রের বাইরে। আমি আপনাকে স্ক্রোলিং ইস্যু সম্পর্কিত নির্দিষ্ট প্রশ্ন সন্ধান বা জিজ্ঞাসা করার পরামর্শ দিচ্ছি।
জিম

nth-of-typ আমার জন্য কাজ করে না কারণ এটি ক্লাসে দেখায় না। আমি এটি দিয়ে কাজ করতে পেরেছি: .modal-backdrop.show + .modal.show { z-index: 1052 !important; } .modal-backdrop.show + .modal.show + .modal-backdrop.show { z-index: 1051 !important; }
ওয়েবহেড

14

মডেলগুলিতে মডেল:

$('.modal-child').on('show.bs.modal', function () {
    var modalParent = $(this).attr('data-modal-parent');
    $(modalParent).css('opacity', 0);
});
 
$('.modal-child').on('hidden.bs.modal', function () {
    var modalParent = $(this).attr('data-modal-parent');
    $(modalParent).css('opacity', 1);
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<a href="#myModal" role="button" class="btn btn-primary" data-toggle="modal">Modals in Modal</a>


<div id="myModal" class="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
             
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Modal Header</h4>
            </div>
            <div class="modal-body">
                <a href="#myModal1" role="button" class="btn btn-primary" data-toggle="modal">Launch other modal 1</a>
                <a href="#myModal2" role="button" class="btn btn-primary" data-toggle="modal">Launch other modal 2</a>
            </div>

        </div>
    </div>
</div>

<div id="myModal1" class="modal modal-child" data-backdrop-limit="1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-modal-parent="#myModal">
    <div class="modal-dialog">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Modal Header 1</h4>
            </div>
            <div class="modal-body">
                <p>Two modal body…1</p>
            </div>
            <div class="modal-footer">
                <button class="btn btn-default" data-dismiss="modal" data-dismiss="modal" aria-hidden="true">Cancel</button>
            </div>

        </div>
    </div>
</div>

<div id="myModal2" class="modal modal-child" data-backdrop-limit="1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-modal-parent="#myModal">
    <div class="modal-dialog">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Modal Header 2</h4>
            </div>
            <div class="modal-body">
                <p>Modal body…2</p>
            </div>
            <div class="modal-footer">
                <button class="btn btn-default" data-dismiss="modal" data-dismiss="modal" aria-hidden="true">Cancel</button>
            </div>

        </div>
    </div>
</div>


আমার জন্য ব্যর্থ .. = (মোডাল কাজ কিন্তু যদি 1 ম মোডাল দীর্ঘ যে 1 ম মোডাল প্রদর্শিত হয় তার একটি স্ক্রল এবং আপনি 2nd মোডাল খোলা এবং বন্ধ এটি প্রথম মোডাল স্ক্রল কাজ ব্যর্থ।
ভিনসেন্ট Dapiton

উপরের উদাহরণগুলি স্পোন মডেলের উপরে প্রথম মডেলের জায়গায় নয় শীর্ষে নয় (প্রথমটি আর দৃশ্যমান নয়)।
জ্যাক দ্যনাফ

খুব সুন্দর প্রভাব।
জর্জি বি।

কীভাবে আপনার সমাধানটি সেন্টিমেন্ট ইউআইতে ব্যবহার করা সম্ভব?
ওয়াহিদসামি

9

এমন একটি প্রকল্পে কাজ করছেন যাতে প্রচুর পরিমাণে মডেলগুলি অন্য মডেলগুলিকে কল করে এবং কয়েকটি এইচটিএমএল ছেলেরা যা প্রতিটি বোতামের জন্য এটি প্রতিটি সময় শুরু করতে নাও পারে। @Gmaggio হিসাবে অনুরূপ উপসংহারে এসেছিল, প্রথমে দীর্ঘ পথ পাড়ি দেওয়ার পরে মিনতি করে।

সম্পাদনা: এখন জাভাস্ক্রিপ্ট মাধ্যমে কল করা মডেল সমর্থন করে।

সম্পাদনা: অন্য একটি মডেল থেকে স্ক্রোলিং মডেল খোলার কাজ এখন।

$(document).on('show.bs.modal', function (event) {
    if (!event.relatedTarget) {
        $('.modal').not(event.target).modal('hide');
    };
    if ($(event.relatedTarget).parents('.modal').length > 0) {
        $(event.relatedTarget).parents('.modal').modal('hide');
    };
});

$(document).on('shown.bs.modal', function (event) {
    if ($('body').hasClass('modal-open') == false) {
        $('body').addClass('modal-open');
    };
});

কেবলমাত্র মডেল কলিং বোতামটি স্বাভাবিক হিসাবে রাখুন এবং যদি এটি কোনও মডেলের অভ্যন্তরে থাকতে বেছে নেওয়া হয় তবে এটি ডেটা-টার্গেটে উল্লিখিত একটিটি খোলার আগে প্রথমে বর্তমানটিকে বন্ধ করে দেবে। মনে রাখবেন যেrelatedTarget বুটস্ট্র্যাপ দ্বারা সরবরাহ করা হয়।

আমি বিবর্ণকে কিছুটা মসৃণ করতে নিম্নলিখিতগুলিও যুক্ত করেছি: আমি নিশ্চিত যে আরও কিছু করা সম্ভব।

.modal-backdrop.fade + .modal-backdrop.fade {
    transition: opacity 0.40s linear 0s;
}

আপনার সমস্যাটি 100% নয় তবে প্রদর্শিত.বস.মডাল হুকটি দারুণ কার্যকর। বডি.মডাল-ওপেন ক্লাসের পরিচালনা বিএস v.3.3.3-তে বগী বলে মনে হচ্ছে, একটি মডেল বন্ধ করে অন্যটি খোলার পরে এটি অনুপস্থিত এবং অতএব পটভূমিটি (দ্বিতীয়) মডেলের পরিবর্তে স্ক্রোল করছে। আপনার হুক সেই আচরণটি ঠিক করতে পারে।
ম্যানুয়েল আর্কড স্মিট

7

টুইটার ডক্স বলছে কাস্টম কোড প্রয়োজন ...

এটি কোনও অতিরিক্ত জাভাস্ক্রিপ্ট ছাড়াই কাজ করে, যদিও কাস্টম সিএসএসের সুপারিশ করা হবে ...

<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<!-- Button trigger modal -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modalOneModal">
      Launch demo modal
    </button> 
            <!-- Modal -->
            <div class="modal fade bg-info" id="modalOneModal" tabindex="-1" role="dialog" aria-labelledby="modalOneLabel" aria-hidden="true">
    
              <div class="modal-dialog">
          
                <div class="modal-content  bg-info">
                  <div class="modal-header btn-info">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                    <h4 class="modal-title" id="modalOneLabel">modalOne</h4>
                  </div>
                  <div id="thismodalOne" class="modal-body bg-info">
                
                
              <!-- Button trigger modal -->
    <button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#twoModalsExample">
      Launch demo modal
    </button>
             
                    <div class="modal fade bg-info" id="twoModalsExample" style="overflow:auto" tabindex="-1" role="dialog" aria-hidden="true">
                <h3>EXAMPLE</h3>
            </div>
                  </div>
                  <div class="modal-footer btn-info" id="woModalFoot">
                    <button type="button" class="btn btn-info" data-dismiss="modal">Close</button>
                  </div>
                </div>
              </div>
            </div>
    <!-- End Form Modals -->


4
এখানে ২ য় মডেল
জিম

4
@Skelly ... একটি ভাল ধারণা Z-সূচক পরিবর্তন হিসাবে আপনি CSS করেছিল হয়z-index: 1080 !important;
CrandellWS

4
আপনি যদি ২ য় মডেলটি ওপেন করেন এবং বাইরে ক্লিক করেন তবে এটি বাগ হয়ে যাবে। (ক্রোম, সর্বশেষ)
মার্টিন ব্রাউন

হয়তো আমি ভুল তবে আমি বিশ্বাস করি যে ডক্সরা কোনও মডেলকে কোনও মডেল না রাখার জন্য বলেছে যাতে তা অবাক হওয়ার মতো নয়
CrandellWS

7

বুটস্ট্র্যাপ 4 এর জন্য, @ হেলোরয়ের উত্তরটি প্রসারিত করতে আমি নিম্নলিখিত ব্যবহার করেছি; -

var modal_lv = 0 ;
$('body').on('shown.bs.modal', function(e) {
    if ( modal_lv > 0 )
    {
        $('.modal-backdrop:last').css('zIndex',1050+modal_lv) ;
        $(e.target).css('zIndex',1051+modal_lv) ;
    }
    modal_lv++ ;
}).on('hidden.bs.modal', function() {
    if ( modal_lv > 0 )
        modal_lv-- ;
});

উপরের সুবিধাটি হ'ল এটির কোনও প্রভাব নেই যখন কেবলমাত্র একটি মডেল থাকে, এটি কেবল বহুগুণে কিক করে। দ্বিতীয়ত, এটি ভবিষ্যতে মডেলগুলি এখনও জেনারেট করা হয় না তা নিশ্চিত করার জন্য এটি শরীরে হ্যান্ডলিংকে প্রতিনিধিত্ব করে।

হালনাগাদ

একটি জেএস / সিএসএস সম্মিলিত সমাধানে স্থানান্তর করা চেহারাটির উন্নতি করে - বিবর্ণ অ্যানিমেশন ব্যাকড্রপটিতে কাজ চালিয়ে যায়; -

var modal_lv = 0 ;
$('body').on('show.bs.modal', function(e) {
    if ( modal_lv > 0 )
        $(e.target).css('zIndex',1051+modal_lv) ;
    modal_lv++ ;
}).on('hidden.bs.modal', function() {
    if ( modal_lv > 0 )
        modal_lv-- ;
});

নিম্নলিখিত সিএসএসের সাথে মিলিত; -

.modal-backdrop ~ .modal-backdrop
{
    z-index : 1051 ;
}
.modal-backdrop ~ .modal-backdrop ~ .modal-backdrop
{
    z-index : 1052 ;
}
.modal-backdrop ~ .modal-backdrop ~ .modal-backdrop ~ .modal-backdrop
{
    z-index : 1053 ;
}

এটি 4 ডিগ্রী পর্যন্ত নীস্টে থাকা মডেলগুলি পরিচালনা করবে যা আমার প্রয়োজনের চেয়ে বেশি।


এটি বুটস্ট্র্যাপ ৪-এ কাজ করে না 2nd
জাস্টিন

4

এটা চেষ্টা কর:

// Hide the login modal
$('#login').modal('hide');

// Show the next modal after the fade effect is finished
setTimeout(function(){ $('#lost').modal('show'); }, 500);

এই সহজ হ্যাক আমার জন্য কাজ করে।


4

যে কেউ বুটস্ট্র্যাপ 4 https://jsfiddle.net/helloroy/tmm9juoh/ ব্যবহার করেন

var modal_lv = 0;
$('.modal').on('shown.bs.modal', function (e) {
    $('.modal-backdrop:last').css('zIndex',1051+modal_lv);
    $(e.currentTarget).css('zIndex',1052+modal_lv);
    modal_lv++
});

$('.modal').on('hidden.bs.modal', function (e) {
    modal_lv--
});
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-a">
  Launch demo modal a
</button>

<div class="modal fade" id="modal-a" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-b">
  Launch another demo modal b
</button>
<p class="my-3">
Not good for fade In.
</p>
<p class="my-3">
who help to improve?
</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

<div class="modal fade" id="modal-b" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-c">
  Launch another demo modal c
</button>
<p class="my-3">
But good enough for static modal
</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>


<div class="modal" id="modal-c" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
<p class="my-3">That's all.</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>


এটি দুর্দান্ত, শীর্ষস্থানীয়
মডেলটি

2

আমার স্ক্রোলযোগ্য মোডালগুলি নিয়েও আমার কিছুটা সমস্যা হয়েছিল, তাই আমি এরকম কিছু করেছি:

  $('.modal').on('shown.bs.modal', function () {
    $('body').addClass('modal-open');
    // BS adds some padding-right to acomodate the scrollbar at right
    $('body').removeAttr('style');
  })

  $(".modal [data-toggle='modal']").click(function(){
    $(this).closest(".modal").modal('hide');
  });

এটি প্রদর্শিত হবে এমন কোনও মডেলের সাথে কোনও মডেল পরিবেশন করবে । মনে রাখবেন যে এটির প্রথমটি বন্ধ হয়ে গেছে যাতে দ্বিতীয়টি উপস্থিত হতে পারে। বুটস্ট্র্যাপ কাঠামোর কোনও পরিবর্তন নেই।


2

আমি সমস্ত একসাথে এক অন্য পথে চলেছি, আমি তাদের "ডি-নেস্ট" করার সিদ্ধান্ত নিয়েছি। হয়তো কেউ এই সহজলভ্য খুঁজে পাবেন ...

var $m1 = $('#Modal1');
var $innermodal = $m1.find(".modal");     //get reference to nested modal
$m1.after($innermodal);                  // snatch it out of inner modal and put it after.

আপনাকে অনেক ধন্যবাদ

2

আমার কোড ডেটা-বরখাস্ত ব্যবহার করে ভাল কাজ করে।

<li class="step1">
    <a href="#" class="button-popup" data-dismiss="modal" data-toggle="modal" data-target="#lightbox1">
        <p class="text-label">Step 1</p>
        <p class="text-text">Plan your Regime</p>
    </a>

</li>
<li class="step2">
    <a href="#" class="button-popup" data-dismiss="modal" data-toggle="modal" data-target="#lightbox2">
        <p class="text-label">Step 2</p>
        <p class="text-text">Plan your menu</p>
    </a>
</li>
<li class="step3 active">
    <a href="#" class="button-popup" data-toggle="modal" data-dismiss="modal" data-target="#lightbox3">
        <p class="text-label">Step 3</p>
        <p class="text-text">This Step is Undone.</p>
    </a>
</li>

1

প্রথম বুটস্ট্র্যাপ মডেলটি বন্ধ করুন এবং গতিশীলভাবে নতুন মডেলটি খুলুন।

$('#Modal_One').modal('hide');
setTimeout(function () {
  $('#Modal_New').modal({
    backdrop: 'dynamic',
    keyboard: true
  });
}, 500);

1

শুধু মডেল বডির বিষয়বস্তু পরিবর্তন করবেন না কেন?

    window.switchContent = function(myFile){
        $('.modal-body').load(myFile);
    };

মডেলে কেবল একটি লিঙ্ক বা একটি বোতাম রাখুন

    <a href="Javascript: switchContent('myFile.html'); return false;">
     click here to load another file</a>

আপনি যদি কেবল 2 টি মডেলের বিটুইন পরিবর্তন করতে চান:

    window.switchModal = function(){
        $('#myModal-1').modal('hide');
        setTimeout(function(){ $('#myModal-2').modal(); }, 500);
        // the setTimeout avoid all problems with scrollbars
    };

মডেলে কেবল একটি লিঙ্ক বা একটি বোতাম রাখুন

    <a href="Javascript: switchModal(); return false;">
     click here to switch to the second modal</a>

এটি আরও একটি ইউএক্স সম্পর্কিত উত্তরের মতো, কারণ মডেল # 1 সম্পর্কিত একটি ত্রুটি বার্তা প্রদর্শন করার জন্য আমার এটির প্রয়োজন ছিল। সুতরাং মডেল # 2 এর ত্রুটি বার্তা ছিল। আমি এখন এই প্রশ্নটি জিজ্ঞাসা করার পরে অনেক যুগ হয়ে গেছে এবং আমি এখন এই ধরণের জিনিসগুলি ভিন্নভাবে করছি।
অ্যালেক্সিওয়ে

0

এটা চেষ্টা কর:

$('.modal').on('hidden.bs.modal', function () {
//If there are any visible
  if($(".modal:visible").length > 0) {
      //Slap the class on it (wait a moment for things to settle)
      setTimeout(function() {
          $('body').addClass('modal-open');
      },100)
  }
});

0

এইচ ডগের দেওয়া উত্তরটি দুর্দান্ত, তবে এই পদ্ধতিটি আমাকে প্রকৃতপক্ষে ইন্টারনেট এক্সপ্লোরার ১১-এ কিছু মডেল ফ্লিকার দিচ্ছিল। বুটস্ট্র্যাপ প্রথমে মডেলটি 'মডেল-ওপেন' শ্রেণিটি মুছে ফেলবে এবং তারপরে (এইচ ডগস সমাধানটি ব্যবহার করে) আমরা যুক্ত করব আবার 'মডেল-ওপেন' ক্লাস। আমার সন্দেহ হয় এটি কোনওভাবেই আমি যে ফ্লিকারটি দেখছিলাম তার কারণ হচ্ছিল, সম্ভবত কিছু ধীর HTML / CSS রেন্ডারিংয়ের কারণে re

আরেকটি সমাধান হ'ল প্রথম স্থানে শরীরের উপাদান থেকে 'মডেল-ওপেন' শ্রেণি অপসারণে বুটস্ট্র্যাপ প্রতিরোধ করা। বুটস্ট্র্যাপ ৩.৩..7 ব্যবহার করে অভ্যন্তরীণ হাইডমোডাল ফাংশনের এই ওভাররাইডটি আমার পক্ষে পুরোপুরি কার্যকর works

$.fn.modal.Constructor.prototype.hideModal = function () {
    var that = this
    this.$element.hide()
    this.backdrop(function () {
        if ($(".modal:visible").length === 0) {
            that.$body.removeClass('modal-open')
        }
        that.resetAdjustments()
        that.resetScrollbar()
        that.$element.trigger('hidden.bs.modal')
    })
}

এই ওভাররাইডে, 'মডেল-ওপেন' শ্রেণিটি কেবল তখনই সরানো হবে যখন পর্দায় কোনও দৃশ্যমান মডেল নেই। এবং আপনি শরীরের উপাদানগুলিতে একটি শ্রেণি অপসারণ এবং যুক্ত করার একটি ফ্রেম প্রতিরোধ করেন।

বুটস্ট্র্যাপ লোড হওয়ার পরে ওভাররাইডটি কেবল অন্তর্ভুক্ত করুন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.