gpt4 book ai didi

tidesdk - 用tidesdk做一个可拖动的透明窗口

转载 作者:行者123 更新时间:2023-12-04 02:56:04 27 4
gpt4 key购买 nike

使用TideSDK,如何让窗口没有Windows风格的边框,并且保持可拖动?

我尝试了两件事:

首先像这样配置我的 tiapp.xml

<width>3000</width>
<max-width>3000</max-width>
<min-width>0</min-width>
<height>1280</height>
<max-height>1280</max-height>
<min-height>0</min-height>
<fullscreen>false</fullscreen>
<resizable>true</resizable>
<transparency >1.0</transparency >
<transparent-background>true</transparent-background>

并将我的应用程序包含在这样的 div 中:

<!doctype html> 
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery UI Draggable - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<style>
#draggable { width: 150px; height: 150px; left: 10px}
</style>
<script>
$(function() {
$( "#draggable" ).draggable();
});
</script>
</head>
<body>

<div id="draggable" class="ui-widget-content">
<p>Drag me around</p>
</div>
</body>
</html>

这很酷,因为我有我的完整 css 可自定义窗口可拖动,但如果我想让它在双屏中工作,我必须将最大宽度设置为 ~4000,它看起来限制为最大 3000。 (即使我在 tiapp.xml 文件中设置了更大的值)。请注意,如果我没有设置很大的宽度和高度,当我的应用程序 (div) 接近限制时,我的桌面上会出现一个滚动条。

我正在尝试其他快速添加标签的方法

<chrome>false</chrome>

这看起来是一种更好的方法,但是,我在我的窗口上松开了可拖动控件。而且我不知道如何使用 javascript 拖动 tidesdk 窗口。可能有创建我自己的“chrome”的解决方案吗?

最佳答案

这个问题的金矿是发布在这个 tidesdk google groups 线程上的答案:https://groups.google.com/forum/#!topic/tidesdk/jW664E2lPlc

首先,您需要提供您自己的方式来让用户四处移动窗口——您自己的版本,例如 Windows 8 Metro 风格的顶部是可拖动的,其中标题栏用于-是。举个例子(不用担心样式),例如

  <div id="windowTitleBar">
<button id="windowMinimize" class="windowMaxMinButtons">[_]</button>
<button id="windowClose" class="windowMaxMinButtons">[X]</button>
</div>

其次,在您的 javascript 中,您可以利用 Ti.UI API 提供自己的拖动处理。这是我所做的概念验证中的示例。
(请注意,在下文中,最小化功能有一个小技巧(?)可以使窗口在恢复后正常工作。如果您找到更好的方法,请添加您的修复程序,以便每个人都能受益!)

$(document).ready(function() {
/*
* WINDOW HIDE
*/
$("#windowMinimize").click(function()
{
event.preventDefault();
// From http://developer.appcelerator.com/question/131596/minimize-unminimize-under-windows-7
// One user found if we follow this magical sequence (max-unmax-min), the
// window will be responsive after restore. Confirmed on my Win 7
Ti.UI.getMainWindow().maximize();
Ti.UI.getMainWindow().unmaximize();
Ti.UI.getMainWindow().minimize();
});

$(".maximize").click(function() {
event.preventDefault();
if(!Ti.UI.getMainWindow().isMaximized())
{
Ti.UI.getMainWindow().maximize();
} else {
Ti.UI.getMainWindow().unmaximize();
}
});

/*
* WINDOW CLOSE
*/


$("#windowClose").click(function()
{
event.preventDefault();
Ti.UI.getMainWindow().close();
//system.window.target.hide();
Ti.App.exit();
});

/*
* WINDOW "Title Bar"
*/

$("#windowTitleBar").mousedown ( function ( event )
{
event.preventDefault();
if(!Ti.UI.getMainWindow().isMaximized())
{
var diffX = event.pageX;
var diffY = event.pageY;

$(document).mousemove ( function ( event )
{
event.preventDefault();
if (event.screenY - diffY < screen.height-100)
Ti.UI.getMainWindow().moveTo(event.screenX - diffX, event.screenY - diffY);
});
}
});

$(document).mouseup ( function ( event )
{
event.preventDefault();
$(document).unbind('mousemove');
});

$("#windowTitleBar").dblclick ( function ( event )
{
event.preventDefault();
if (!Ti.UI.getMainWindow().isMaximized())
Ti.UI.getMainWindow().maximize();
else
Ti.UI.getMainWindow().unmaximize();
});
});

关于tidesdk - 用tidesdk做一个可拖动的透明窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699266/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com