繁体   English   中英

DOJO调整div的大小

[英]DOJO Resizing a div

我有一个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"));

});

`

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

基本上,您需要:

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

 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> 

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

  1. 导入dojox/layout/ResizeHandle

  2. 导入调整大小的Css样式 (用于渲染和调整大小图标)

  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> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM