在SAPUI5中设置页面内对象的坐标

时间:2014-03-14 07:19:51

标签: javascript jquery sapui5

我想使用jquery.offset()方法在sapui5中的视图内的特定位置添加图像。但是,它不起作用。调试器显示图像的默认偏移值。请帮忙。

我有一个id为“id_image”的图片,我使用以下代码设置图片的偏移量:

var Image = new sap.m.Image("id_image",{
            src:"images/myImage.png"
        });
$("#id_image").offset({top:"200px", left:"300px"});
return new sap.m.Page("id_page",{
            title: "View",
            content: [Image

            ]
        });

2 个答案:

答案 0 :(得分:0)

如上所述,您的代码存在一些问题:

  1. 您正在设置尚未加载到DOM中的元素的偏移量,因此在此阶段设置偏移量不会产生任何影响。最佳解决方案是将其设置在视图的onAfterRendering事件中。
  2. According to the jQuery APIoffset()方法的坐标只接受数字(10,20等),而您提供了CSS单位('100px'等)
  3. 请参阅此工作jsbin示例http://jsbin.com/jafuk/1/edit,其中偏移量在onAfterRendering事件中设置。

    既然您已经询问过动画in another topic,我已经补充说这是奖励。我将把它作为练习如何将控件/图像从一个MatrixLayout(Cell)分离到另一个: - )

答案 1 :(得分:0)

通常,使用JQuery的HTML转换不是一个好主意。 出于您的目的,您应该使用 sap.ui.commons.layout.AbsoluteLayout 来定义图像偏移。

var oImage = new sap.m.Image("id_image",{
        src:"images/myImage.png"
    });
var oLayout = new sap.ui.commons.layout.AbsoluteLayout({
        width: "" //Adjust width
        height: "" //and height for container
    }).addContent(oImage, {top:"200px",left:"300px"});
return new sap.m.Page("id_page",{
        title: "View",
        content: [oLayout

        ]
    });