Richfaces 中的图像裁剪

发布于 2024-10-07 10:19:53 字数 3916 浏览 0 评论 0原文

JQuery 和 Java Script 中有多种可用的图像裁剪工具。我尝试将这些工具与 Richfaces 应用程序集成。由于 jquery 冲突出现,我转移到 YUI,它工作得很好。但我无法捕获托管 bean 的坐标值。 我需要捕获坐标并且应该将其保留。这是代码示例。

<style type="text/css" media="screen">
    #results {
        border: 1px solid black;
        height: 83px;
        width: 125px;
        position: relative;
        overflow: hidden;
    }
    #results img {
        position: absolute;
        top: -20px;
        left: -20px;
    }
</style>

<script>
(function() {
    var Dom = YAHOO.util.Dom,
        Event = YAHOO.util.Event,
        results = null;

    Event.onDOMReady(function() {
            results = Dom.get('results');    
            var crop = new YAHOO.widget.ImageCropper('yui_img', {
                initialXY: [20, 20],
                keyTick: 5,
                shiftKeyTick: 50
            });
            crop.on('moveEvent', function() {
                var region = crop.getCropCoords();
                results.firstChild.style.top = '-' + region.top + 'px';
                results.firstChild.style.left = '-' + region.left + 'px';
                results.style.height = region.height + 'px';
                results.style.width = region.width + 'px';
                Dom.get('t').innerHTML = region.top;
                Dom.get('l').innerHTML = region.left;
                Dom.get('h').innerHTML = region.height;
                Dom.get('w').innerHTML = region.width;
            });
    });
})();


function getValue()
{
 alert("Inside");
//alert(document.getElementById('h').innerHTML)
}

</script>


<rich:modalPanel id="addProductLinksModalPanel" autosized="true" 
 domElementAttachment="parent" 
 onshow="javascript:scroll(0, 0);" 
 rendered="true" width="850" height="300" minWidth="850" minHeight="300" >
 <f:facet name="header">
  <a4j:outputPanel ajaxRendered="true">
   <h:panelGroup>
    <h:outputText
     value="Add Product Links " />
   </h:panelGroup>
  </a4j:outputPanel>
 </f:facet>
 <f:facet name="controls">
  <h:panelGroup>
   <h:graphicImage style="cursor:pointer;border:none;"
    id="addProductLinksCreateCloseModalHideImgLink"
    value="/skins/images/close.png" />
   <rich:componentControl for="addProductLinksModalPanel"
    attachTo="addProductLinksCreateCloseModalHideImgLink" operation="hide"
    event="onclick" id="addProductLinksModalPanelHide" />
  </h:panelGroup>
 </f:facet>
 <rich:spacer id="addProductLinksCreateCloseEmptySpacer" height="10px" />
 <h:form id="addProductLinksCreateForm">
  <jsp:include page="/regions/lovInnerTopRegion.jsp" flush="false" />

  <table width="100%">

   <tr>
    <td align="right">
     <a4j:commandButton styleClass="btnGreen" value="Add Product" 
      id="addProductLinksCreateBottomSaveBtn" 
      action="#{backing_addProductLinksModal.addProduct}" 
      reRender="cmsSiteViewMainForm" 
      onclick="disableButtonAndShowLoadingInfoWindow(this.id);" 
      oncomplete="enableButtonAndHideLoadingInfoWindow(this.id);#{rich:component('addProductLinksModalPanel')}.hide();#{rich:component('productLOVModalPanel')}.show();" />

    </td>
   </tr> 

<body class="yui-skin-sam">

<tr>

<p><img src="/app/css/images/apple.jpg" id="yui_img" height="333" width="345"></p>

<div id="results"><img src="/app/css/images/apple.jpg"></div>
<ul>

    <li>Height: (<span id="h">91</span>)</li>
    <li>Width: (<span id="w">150</span>)</li>
    <li>Top: (<span id="t">20</span>)</li>
    <li>Left: (<span id="l">20</span>)</li>

</ul>
<input type="button" onclick="getValue()" value="click"/>
</tr>

  </table>

 </h:form>

</rich:modalPanel>

有什么想法吗?

There are various Image cropping tools available in JQuery and Java Script. I try to integrate any of these tools with Richfaces application. Since jquery conflict arises i moved to YUI which works fine. But I cant catch the coordinates value to the managed bean.
I need to capture the coordinates and it should be persisted. Here is the code sample.

<style type="text/css" media="screen">
    #results {
        border: 1px solid black;
        height: 83px;
        width: 125px;
        position: relative;
        overflow: hidden;
    }
    #results img {
        position: absolute;
        top: -20px;
        left: -20px;
    }
</style>

<script>
(function() {
    var Dom = YAHOO.util.Dom,
        Event = YAHOO.util.Event,
        results = null;

    Event.onDOMReady(function() {
            results = Dom.get('results');    
            var crop = new YAHOO.widget.ImageCropper('yui_img', {
                initialXY: [20, 20],
                keyTick: 5,
                shiftKeyTick: 50
            });
            crop.on('moveEvent', function() {
                var region = crop.getCropCoords();
                results.firstChild.style.top = '-' + region.top + 'px';
                results.firstChild.style.left = '-' + region.left + 'px';
                results.style.height = region.height + 'px';
                results.style.width = region.width + 'px';
                Dom.get('t').innerHTML = region.top;
                Dom.get('l').innerHTML = region.left;
                Dom.get('h').innerHTML = region.height;
                Dom.get('w').innerHTML = region.width;
            });
    });
})();


function getValue()
{
 alert("Inside");
//alert(document.getElementById('h').innerHTML)
}

</script>


<rich:modalPanel id="addProductLinksModalPanel" autosized="true" 
 domElementAttachment="parent" 
 onshow="javascript:scroll(0, 0);" 
 rendered="true" width="850" height="300" minWidth="850" minHeight="300" >
 <f:facet name="header">
  <a4j:outputPanel ajaxRendered="true">
   <h:panelGroup>
    <h:outputText
     value="Add Product Links " />
   </h:panelGroup>
  </a4j:outputPanel>
 </f:facet>
 <f:facet name="controls">
  <h:panelGroup>
   <h:graphicImage style="cursor:pointer;border:none;"
    id="addProductLinksCreateCloseModalHideImgLink"
    value="/skins/images/close.png" />
   <rich:componentControl for="addProductLinksModalPanel"
    attachTo="addProductLinksCreateCloseModalHideImgLink" operation="hide"
    event="onclick" id="addProductLinksModalPanelHide" />
  </h:panelGroup>
 </f:facet>
 <rich:spacer id="addProductLinksCreateCloseEmptySpacer" height="10px" />
 <h:form id="addProductLinksCreateForm">
  <jsp:include page="/regions/lovInnerTopRegion.jsp" flush="false" />

  <table width="100%">

   <tr>
    <td align="right">
     <a4j:commandButton styleClass="btnGreen" value="Add Product" 
      id="addProductLinksCreateBottomSaveBtn" 
      action="#{backing_addProductLinksModal.addProduct}" 
      reRender="cmsSiteViewMainForm" 
      onclick="disableButtonAndShowLoadingInfoWindow(this.id);" 
      oncomplete="enableButtonAndHideLoadingInfoWindow(this.id);#{rich:component('addProductLinksModalPanel')}.hide();#{rich:component('productLOVModalPanel')}.show();" />

    </td>
   </tr> 

<body class="yui-skin-sam">

<tr>

<p><img src="/app/css/images/apple.jpg" id="yui_img" height="333" width="345"></p>

<div id="results"><img src="/app/css/images/apple.jpg"></div>
<ul>

    <li>Height: (<span id="h">91</span>)</li>
    <li>Width: (<span id="w">150</span>)</li>
    <li>Top: (<span id="t">20</span>)</li>
    <li>Left: (<span id="l">20</span>)</li>

</ul>
<input type="button" onclick="getValue()" value="click"/>
</tr>

  </table>

 </h:form>

</rich:modalPanel>

any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半夏半凉 2024-10-14 10:19:53

Richfaces 与 jQuery 并不冲突。您可以使用 jQuery.noConflict()

Richfaces does not conflict with jQuery. You can use jQuery.noConflict()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文