首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery UI工具提示不适用于全屏

jQuery UI工具提示不适用于全屏
EN

Stack Overflow用户
提问于 2018-12-18 04:07:30
回答 1查看 682关注 0票数 1

当一个包含工具提示元素的div变成一个全屏元素时,它就不再显示工具提示了。这可能是由于工具提示不是全屏容器的一部分,因为jQuery UI正在将它添加到主体中。在jQuery UI中似乎没有任何选项可以更改工具提示的父级。我创建了一个小提琴。这个用例有解决办法吗?

JSFiddle中的代码:

代码语言:javascript
复制
<div class="full-screen-div">
  <div class="tooltip">
    This is for tooltip
  </div>
  <br/><br/>
  <input class="toggle-full-screen" type="button" value="Toggle Fullscreen"/>
</div>

JavaScript:

代码语言:javascript
复制
$( document ).ready(function () {
    $(".full-screen-div").tooltip({
      track: true,
    items: ".tooltip",
    content: "123"
  });

  $(".toggle-full-screen").on("click", function () {
     if (document.fullscreenElement ||
            document.webkitFullscreenElement ||
            document.mozFullScreenElement ||
            document.msFullscreenElement) {
          if (document.exitFullscreen) {
            document.exitFullscreen();
          } else if (document.mozCancelFullScreen) {
            document.mozCancelFullScreen();
          } else if (document.webkitExitFullscreen) {
            document.webkitExitFullscreen();
          } else if (document.msExitFullscreen) {
            document.msExitFullscreen();
          }
      } else {
          element = $(".full-screen-div").get(0);
          if (element.requestFullscreen) {
            element.requestFullscreen();
          } else if (element.mozRequestFullScreen) {
            element.mozRequestFullScreen();
          } else if (element.webkitRequestFullscreen) {
         element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
          } else if (element.msRequestFullscreen) {
            element.msRequestFullscreen();
          }
      }
  });
});

CSS:

代码语言:javascript
复制
.full-screen-div {
  border: 1px solid red;
  width: 250px;
  padding: 3em;
  background: white;
}

.tooltip {
  border: 1px solid grey;
  cursor: pointer;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 03:43:30

正如您正确地指出的,问题是JQueryUI将提示元素添加到主体中。您可以通过在打开事件中将元素重新附加到所需的容器来更改此操作。

不过,只有在全屏模式下才应该这样做。提示的位置似乎是相对于窗口计算的,所以如果您一直应用这个方法,那么最终提示会出现在与其预期位置相偏移的位置上。

下面是一个基本的例子。这假设您有一个函数isFullscreen()来检测当前是否处于全屏模式。

代码语言:javascript
复制
$(document).tooltip({
    open: function (e, ui) {
        if (isFullScreen()) {
            ui.tooltip.appendTo(".full-screen-div");
        }
    }
});

注意:当没有全屏时,您不必显式地进行appendTo,因为元素每次都会被重置。

参见@Kishor - jsfiddle.net/vhzpnsq9 9提供的示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53826257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档