1. 提示框(偶尔使用)
    2. <body>
    3. <div class="container">
    4. <div class="row mt-5">
    5. <div class="col">
    6. <button class="btn btn-danger" data-toggle="popover" title="这里放的是提示框的标题" data-content="这里放的是提示框的内容">提示框</button>
    7. <!-- 4个弹出方向 -->
    8. <button class="btn btn-secondary" data-toggle="popover" title="这个提示框没有标题,并且是在上面显示" data-placement="top">上面显示提示框</button>
    9. <button class="btn btn-info" data-toggle="popover" title="这个提示框没有标题,并且是在右侧显示" data-placement="right">右侧显示提示框</button>
    10. <button class="btn btn-primary" data-toggle="popover" title="这个提示框没有标题,并且是在下面显示" data-placement="bottom">下面显示提示框</button>
    11. <button class="btn btn-warning" data-toggle="popover" title="这个提示框没有标题,并且是在左侧显示" data-placement="left">左侧显示提示框</button>
    12. <button class="btn btn-dark" data-toggle="popover" title="这个提示框当焦点失去的时候就会隐藏" data-trigger="focus">失去焦点隐藏</button>
    13. <!-- 禁用元素弹出提示框 -->
    14. <span class="d-inline-block" data-toggle="popover" data-trigger="hover" data-content="禁用的元素想要弹出提示框,需要在外面添加一层,把交互的功能都加到这个层上">
    15. <button class="btn btn-primary" style="pointer-events: none;" disabled>禁用的按钮弹出提示框</button>
    16. style="pointer-events: none;",这条属性的表示现在这条元素它永远不能作为 触发元素,事件有冒泡和捕获,如果说,
    17. 嵌套了一个层,你再次点击这时候就是这里面的这个层触发了这个事件,比如说onclick最终的事件源在button身上,所以说这个时候
    18. button被禁止了,不可能就弹出这个提示层了,所以我们就不用把它当做事件触发的源头了,那么这时候就会是span作为事件触发的源头了。这样就实现了这个禁用提示功能。
    19. </span>
    20. </div>
    21. </div>
    22. <div id="box"></div>
    23. <div class="row mt-5">
    24. <div class="col">
    25. <button class="btn btn-success" data-toggle="popover" title="这是<b>标题<b>" data-content="这是内容"
    26. data-animation="true" 打开提示框的时候有过渡的效果
    27. data-container='body' 这个提示框添加到了body标签里面了
    28. data-delay='{ "show": 1000, "hide": 2000 }' 这个是延迟时间
    29. data-html='true'就是将文字内的标签发挥作用
    30. data-placement='top' 提示框的位置
    31. data-template='<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' 了解就好
    32. data-trigger='hover' trigger就是一个触发的方式
    33. data-offset='120' 偏移
    34. >data-属性</button>
    35. </div>
    36. <!-- 方法与事件 -->
    37. <div class="col">
    38. <button class="btn btn-info" title="方法与事件" id="myPopover">方法与事件</button>
    39. </div>
    40. </div>
    41. </div>
    42. <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    43. integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    44. crossorigin="anonymous"></script>
    45. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
    46. integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
    47. crossorigin="anonymous"></script>
    48. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
    49. integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
    50. crossorigin="anonymous"></script>
    51. <script>
    52. //初始化提示框,必需要写这一步
    53. $(function(){
    54. $('[data-toggle="popover"]').popover();
    55. });
    56. //方法
    57. //$('#myPopover').popover('show'); //显示提示框
    58. /* setTimeout(function(){
    59. $('#myPopover').popover('hide'); //隐藏提示框
    60. },1000); */
    61. /* $('#myPopover').popover('hide');
    62. $('#myPopover').popover('toggle'); //切换提示框 */
    63. //$('#myPopover').popover('enable'); //添加提示框功能
    64. $('#myPopover').popover('disable'); //取消提示框功能
    65. $('#myPopover').popover('toggleEnabled') //切换(enable与disable的功能)
    66. //事件
    67. $('#myPopover').on('show.bs.popover',function(){
    68. console.log('提示框要显示了');
    69. });
    70. $('#myPopover').on('shown.bs.popover',function(){
    71. console.log('提示框已经完全显示了');
    72. });
    73. $('#myPopover').on('hide.bs.popover',function(){
    74. console.log('提示框要隐藏了');
    75. });
    76. $('#myPopover').on('hidden.bs.popover',function(){
    77. console.log('提示框已经完全隐藏了');
    78. });
    79. $('#myPopover').on('inserted.bs.popover',function(){
    80. console.log('提示框DOM已经插入到页面里了');
    81. });
    82. </script>
    83. </body>
    84. 提示工具 也就是小气泡
    85. <body>
    86. <div class="container">
    87. <div class="row mt-5">
    88. <div class="col">
    89. <button class="btn btn-secondary" data-toggle="tooltip" title="这个提示工具在上面显示" data-placement="top">上面弹出提示工具</button>
    90. <button class="btn btn-info" data-toggle="tooltip" title="这个提示工具在右侧显示" data-placement="right">右侧弹出提示工具</button>
    91. <button class="btn btn-primary" data-toggle="tooltip" title="这个提示工具在下面显示" data-placement="bottom">下面弹出提示工具</button>
    92. <button class="btn btn-warning" data-toggle="tooltip" title="这个提示工具在左侧显示" data-placement="left">左侧弹出提示工具</button>
    93. </div>
    94. </div>
    95. <div class="row mt-5">
    96. <p>Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel have a terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan whatever keytar, scenester farm-to-table banksy Austin twitter handle freegan cred raw denim single-origin coffee viral.</p>
    97. </div>
    98. <div id="box"></div>
    99. <div class="row mt-5">
    100. <!-- 自定义HTML -->
    101. <div class="col">
    102. <button class="btn btn-success" data-toggle="tooltip" data-html="true" title="自<em>定</em>义<b>html</b>">自定义HTML</button>
    103. </div>
    104. <div class="col">
    105. <span class="d-inline-block" data-toggle="tooltip" title="禁用的元素弹出提示工具,需要在外面添加一个层,把交互的功能添加到这个层上">
    106. <button class="btn btn-primary" style="pointer-events: none;" disabled>禁用的按钮弹出提示工具</button>
    107. </span>
    108. </div>
    109. <div class="col">
    110. <button class="btn btn-success" data-toggle="tooltip" title="这是<em>标题</em>"
    111. data-animation='true'
    112. data-container='body'
    113. data-delay='{ "show": 1000, "hide": 2000 }'
    114. data-html="true"
    115. >data-属性</button>
    116. </div>
    117. <!-- 方法与事件 -->
    118. <div class="col">
    119. <button class="btn btn-info" title="方法与事件" id="myTooltip">方法与事件</button>
    120. </div>
    121. </div>
    122. </div>
    123. <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    124. integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    125. crossorigin="anonymous"></script>
    126. <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
    127. integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
    128. crossorigin="anonymous"></script>
    129. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
    130. integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
    131. crossorigin="anonymous"></script>
    132. <script>
    133. //初始化提示框,必需要写这一步
    134. $(function(){
    135. $('[data-toggle="tooltip"]').tooltip();
    136. });
    137. //方法
    138. /* $('#myTooltip').tooltip('show'); //显示提示框
    139. setTimeout(function(){
    140. $('#myTooltip').tooltip('hide'); //隐藏提示框
    141. },1000); */
    142. /* $('#myTooltip').tooltip('hide');
    143. $('#myTooltip').tooltip('toggle'); //切换提示框 */
    144. $('#myTooltip').tooltip('enable'); //添加提示框功能
    145. $('#myTooltip').tooltip('disable'); //取消提示框功能
    146. $('#myTooltip').tooltip('toggleEnabled') //切换(enable与disable的功能)
    147. //事件
    148. $('#myTooltip').on('show.bs.tooltip',function(){
    149. console.log('提示工具要显示了');
    150. });
    151. $('#myTooltip').on('shown.bs.tooltip',function(){
    152. console.log('提示工具已经完全显示了');
    153. });
    154. $('#myTooltip').on('hide.bs.tooltip',function(){
    155. console.log('提示工具要隐藏了');
    156. });
    157. $('#myTooltip').on('hidden.bs.tooltip',function(){
    158. console.log('提示工具已经完全隐藏了');
    159. });
    160. $('#myTooltip').on('inserted.bs.tooltip',function(){
    161. console.log('提示工具DOM已经插入到页面里了');
    162. });
    163. </script>