0

我有一个 id 为“panelContent”的 div,我想调整 div 的大小,我当前的 dojo 程序可以移动一个 div 我也想调整它的大小,谁能帮帮我。

提前致谢。

Javascript代码:

require(["dojo/dnd/Moveable", "dojo/dom", "dojo/on", "dojo/domReady!"],
  function(Moveable, dom, on){

    var dnd = new Moveable(dom.byId("panelContent"));

});

`

4

2 回答 2

1

在以下示例中,您可以看到如何以dijit/layout/ContentPane编程方式启动 a 并调整其大小(单击按钮)。

基本上你需要:

  • 检索您的ContentPane使用registry.byId().
  • 更改ContentPane使用 dojo setter的样式属性.set('propertyName', yourValue)

require(["dijit/layout/ContentPane", "dijit/registry", "dijit/form/Button", "dojo/domReady!"], function(ContentPane, registry, Button) {
  new ContentPane({
    content: "<p>Optionally set new content now</p>",
    style: "width: 150px; height:150px; background-color:yellow;"
  }, "panelContent").startup();
  var myButton = new Button({
    label: "Click me to enlarge the panel!",
    onClick: function() {
      registry.byId("panelContent").set('style','width: 350px; background-color:red;')
    }
  }, "button").startup();

});
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dijit/themes/claro/claro.css" />

<script>
  window.dojoConfig = {
    parseOnLoad: false,
    async: true
  };
</script>

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.1/dojo/dojo.js">
</script>

<body class="claro">
  <div id="panelContent" data-dojo-type="dijit/layout/ContentPane">
    Hi, pretty boring huh?
  </div>
  <button id="button" type="button"></button>
</body>

于 2017-06-15T12:55:00.240 回答
0

这可以通过使用dojo ResizeHandler来实现,因此使用它的设置是:

  1. 导入dojox/layout/ResizeHandle

  2. 导入resizehander Css Style(用于渲染和resize图标)

  3. 将可调整大小的 div 位置设置为相对

  4. 实例化 rsizeHandler 并将目标设置为您的 div id

所以实例化就像:

var handle = new ResizeHandle({
      targetId:"panelContent"
  }).placeAt("panelContent");

你可以在下面找到一个工作片段

require([
  "dojox/layout/ResizeHandle",
  "dojo/dnd/move",
  'dojo/dom',
  'dojo/domReady!'
], function(ResizeHandle, dojoDnd, Dom) {

  new dojoDnd.parentConstrainedMoveable(Dom.byId("panelContent"),                 {
                    handle: this.focusNode,
                    area: "content",
                    within: true
                })

  var handle = new ResizeHandle({
      targetId:"panelContent"
  }).placeAt("panelContent");
  

});
#panelContent {
  background-color:green;
  position:relative;
  width:200px;
  height:100px;
  cursor:pointer;
}

body,html,#container {
  width:100%;
  height:100%;
}
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojox/layout/resources/ResizeHandle.css" rel="stylesheet"/>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dijit/themes/claro/claro.css" />

<script>
  window.dojoConfig = {
    parseOnLoad: false,
    async: true
  };
</script>


<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js"></script>

<div id="container" class="claro">
  <div id="panelContent">
    <div id="handler"></div>
  </div>
</div>

于 2017-06-15T23:56:17.077 回答