DOJO Изменение размера div

У меня есть div с идентификатором "panelContent", я хочу изменить размер 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"));

});

`

2 ответа

Решение

Это может быть достигнуто с помощью dojo ResizeHandler, поэтому настройки для его использования:

  1. импортировать dojox/layout/ResizeHandle

  2. Импортируйте инструмент изменения размера Css Style (для рендеринга и изменения размера значка)

  3. установите изменяемый размер div относительно

  4. создать экземпляр rsizeHandler и установить цель для вашего идентификатора div

таким образом, экземпляр будет выглядеть так:

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>

В следующем примере вы можете увидеть, как вы можете инициировать dijit/layout/ContentPane и изменить его размер программно (по нажатию кнопки).

В основном вам нужно:

  • Получите ваш ContentPane с помощью registry.byId(),
  • Изменить свойство стиля для ContentPane используя установщик додзё .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>

Другие вопросы по тегам