`

DIV中的image控件,放大,缩小,还原,拖拽

阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page import="com.fry.ocp.util.RequestUtil" %>
<%@ page import="com.fry.ocp.util.StringUtil" %>
<%@ page import="com.fry.tog.customizationfeed.Surface" %>
<%@ page import="com.fry.tog.util.Personalizer3Manager" %>
<%@ page import="com.fry.tog.util.personalize3.PersonalizeConstants" %>
<%@ page import="com.fry.tog.util.personalize3.ProgressNode" %>
<%@ page import="java.util.Map, java.util.HashMap" %>
<%@ page import="java.util.List"%>
<%@ page import="com.fry.tog.catalog.PersonalizedSurface"%>
<%@ page import="com.fry.ocp.util.ConvertUtil"%>
<%@ page import="java.util.Iterator"%>
<%@ page import="com.fry.tog.util.PreviewManager"%>
<%@ page import="com.fry.ocp.commerce.*"%>
<%@ page import="com.fry.tog.util.SiteUtil" %>
<%@ page import="com.fry.tog.commerce.TOGProductItem" %>
<%@ page import="com.fry.ocp.catalog.*" %>
<%@ page import="com.fry.tog.util.TOGConstants" %>
<%@ page import="java.util.ArrayList, com.fry.tog.util.MultiSiteWebUtil" %>
<%@ page import="com.fry.ocpx.multisite.site.SiteManager" %>

<%
    /*

 Copyright (C) 2007 Fry Inc., All Rights Reserved.

 Purpose:
 This page provides a layout for displaying the Product Personalizer Preview.
 */
%>

<%@ taglib uri='/WEB-INF/ocp-template.tld' prefix='template' %>
<%@ taglib uri="/WEB-INF/ocp-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/ocp-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/ocp-user.tld" prefix="user" %>
<%@ taglib uri="/WEB-INF/ocp-site.tld" prefix="site" %>
<%@ taglib uri="/WEB-INF/ocp-util.tld" prefix="util" %>
<%@ taglib uri="/WEB-INF/tog-personalizer.tld" prefix="personalizer" %>
<%@ taglib uri="/WEB-INF/scene7-image.tld" prefix="scene7" %>
<%@ taglib uri="/WEB-INF/ocp-pipeline.tld" prefix="pipeline" %>
<%@ taglib uri="/WEB-INF/ocp-commerce.tld" prefix="commerce" %>
<%@ taglib uri="/WEB-INF/ocp-i18n.tld" prefix="i18n" %>

<site:site id="currentSite"/>
<i18n:bundle base="com.fry.tog.i18n.TOGResourceBundle" locale='<%=SiteManager.getLocale(currentSite, request)%>' />
<personalizer:pipelineSession id="pipelineSession"/>
<commerce:personalizer3Item id="item" pipelineSession="<%= pipelineSession %>" priceItemId="priceItem" />
<%
    String itemUUID =  request.getParameter("subItemUUID");
    if(itemUUID==null || itemUUID=="")
    {
        itemUUID = request.getParameter("itemUUID");
    }
    long productVariantId = item.getLong("ITEM_ID");
    Product product = ProductVariantManager.findProductVariant(productVariantId).getProduct();
    ProgressNode currentWorkingProgressNode = (ProgressNode)request.getAttribute(PersonalizeConstants.REQUEST_KEY_WORKINGNODEINFO);
    int currentSurfaceIndex = currentWorkingProgressNode.getSurfaceIndex();
    //currentSite.getString("PEGASUS_SWF_URL");    http://www.mypegasus.com:81
    String url = currentSite.getString("PEGASUS_SWF_URL")+"/PreviewHandler.ashx";
    url += "?itemuuid="+itemUUID+"&sequence="+currentSurfaceIndex;
    System.out.println(url);
%>
<head>
    <style type="text/css">
        #surface_img
        {
            border:#000000 1px solid;
            cursor:move;
            position:relative;
        } 
         
    </style>
    <script language="JavaScript" type="text/javascript">
    var width = 0;
    var height = 0;
    var zoomR = 1;

    function onloadfun(){
        var oImg = document.getElementById("surface_img");
        width = oImg.width;
        height = oImg.height;
    }
   
    function ImageChange(args) {
        var oImg = document.getElementById("surface_img");
        if (args) {
            zoomR = zoomR + 0.3;
            if(zoomR > 1.5)
            {
                zoomR = 1.5;
            }
               oImg.width = width * zoomR;
            oImg.height = height * zoomR;
        }
        else {
            zoomR = zoomR - 0.1;
            if(zoomR < 1)
            {
                zoomR = 1;
            }
               oImg.width = width * zoomR;
            oImg.height = height * zoomR;
        }
    }  

    function ImageFixChange(){
        var oImg = document.getElementById("surface_img");
        oImg.width = width;
        oImg.height = height;
        zoomR = 1;
    } 

    var oBoolean = false, oLeftSpace = 0, oTopSpace = 0;
    function mStart() {
       oBoolean = true;
       if (oBoolean) {
          var oImg = document.all('surface_img');
          oLeftSpace = window.event.clientX - oImg.style.pixelLeft;
          oTopSpace = window.event.clientY - oImg.style.pixelTop;
       }
    }

    function mEnd() {
       oBoolean = false;
    }

    document.onmousemove = function(event) {
       if (window.event.button==1 && oBoolean) {
          var oImg = document.all('surface_img');
          oImg.style.pixelLeft = window.event.clientX - oLeftSpace;
          oImg.style.pixelTop = window.event.clientY - oTopSpace;
          return false;
       }
    }
    </script>
</head>
<body>
   
    <div class="photo_approve" id="photo_approve">
    <div id="views" class="photo_approveText">
        Final Preview: Please review your personalization to verify everything is correct. Your product will print exactly as shown below.
        <div class="clear"></div>
        <p class="review_personalization"></p>
    </div>

    <div id="previewStage" class="previewStage">
        <div id="previewPanel" style= "overflow:auto;width:100%;height:100%">
        <center>
            <img src="<%=url %>" id="surface_img" onload="onloadfun()" onMouseDown="mStart();" onMouseUp="mEnd();"/>
        </center>
<!--        <iframe allowtransparency="true" src="<%=url%>" id="previFrame" name="previewFrameName" -->
<!--            frameborder="0" height="100%" width="100%">-->
<!--            -->
<!--        </iframe>-->
        </div>
    </div>
    <div id="prevControls" class="photo_approveBtn">
        <html:img env="images" src="personalizer3/b_zoomin.gif" width="98" height="23" alt="Zoom In" border="0" styleClass="zoomBtn" onClick="ImageChange(true)"/>
        <html:img env="images" src="personalizer3/b_zoomout.gif" width="98" height="23" alt="Zoom Out" border="0" styleClass="zoomBtn" onClick="ImageChange(false)"/>
        <html:img env="images" src="personalizer3/b_fit.gif" width="98" height="23" alt="Fit to Window" border="0" styleClass="zoomBtn" onClick="ImageFixChange()"/>
    </div>
        <div class="photo_approveRightBtn" id="buttons">
            <html:a href="javascript:submitFlow('previous');"><%/* bak href='< %="/personalize3/checkout/move_item_to_personalizer.cmd?itemUUID="+itemUUID+"&subItemUUID="+subItemUUID% >' */%>
                <html:img env="images" src="personalizer3/b_returntopersonalizer_blue.gif" styleClass="returnBtn" width="169" height="27" alt="Return To Personalizer" border="0"/>
            </html:a>
            <html:a styleId="finish_link" href="javascript:submitFlow('next');">
                <html:img env="images" src="personalizer3/b_i_approve.gif" styleClass="finishBtn" width="96" height="27" alt="Finish" border="0"/>
            </html:a>
         </div>
    <div class="clear"></div>
    </div>

</body>
</html>

0
0
分享到:
评论

相关推荐

    vue2 在图片上打点 自定义图标、大小、颜色,可拖动放大缩小

    在Vue2项目中实现“在图片上打点并自定义图标、大小、颜色,可拖动放大缩小”这一功能,涉及到多个技术点,包括Vue组件开发、图像处理、CSS样式控制、事件监听以及可能的第三方库的集成。 首先,你需要创建一个Vue...

    原生js支持拖动放大缩小图片截图代码

    在JavaScript的世界里,实现图片的拖动、放大和缩小以及截图功能是一项常见的需求,尤其在交互式应用或者图像编辑工具中。以下将详细介绍如何利用原生JavaScript实现这些功能。 首先,我们需要一个HTML结构来展示...

    微信小程序的一些控件

    在这个名为“xcxdemo”的压缩包中,很可能是包含了一些微信小程序的示例代码,帮助程序员更快地理解和学习小程序中的各种控件及其用法。 微信小程序控件是构建用户界面的基础元素,它们类似于网页开发中的HTML标签...

    ExtJs查看图片控件,并且图片可以拖动例子.docx

    ### ExtJs查看图片控件并且图片可拖动的知识点解析 #### 一、ExtJs简介 ExtJs 是一款用于构建企业级 Web 应用程序的前端框架,它提供了丰富的 UI 组件库,使得开发者能够快速地开发出功能完备且美观的应用界面。...

    html5实现多图片预览上传及点击可拖拽控件

    &lt;input type="file" id="imageInput" accept="image/*" multiple&gt; &lt;div id="preview"&gt;&lt;/div&gt; ``` 在JavaScript中,我们可以监听`input`元素的`change`事件来获取用户选择的文件,并使用`FileReader`对象的`...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    2.jQuery层拖拽插件之jquery仿QQ空间的模块拖动功能插件下载 3.jQuery动感图标切换网页Tab选项卡导航代码 4.jquery封装Tab标签选项卡,内含动画版选项卡及滑动门 5.jQuery实现flash动感切换选项卡TAB插件示例 ...

    皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程

    控件的样式定义于XML中,你可以在xml中定义一张图片,并设置其在窗口的任何位置,包括标题栏区域,  产品升级及售后服务 DSkinLite界面库产品及服务: DSkinLite产品使用授权 软件界面开发服务 控件定制服务 ...

    vuebaidumap基于Vue2的百度地图组件库

    VueBaiduMap是一款专为Vue2框架设计的百度地图组件库,它允许开发者在Vue应用中无缝集成百度地图的功能,提供了丰富的地图操作和自定义功能。这个组件库旨在简化与百度地图API的交互,使开发者能够更加高效地构建...

    出现问题a is defined高手帮忙

    //实现框选放大缩小功能 function DragZoomControl(opts_boxStyle, opts_other, opts_callbacks) { this.globals = { draggingOn: false, cornerTopDiv: null, cornerRightDiv: null, ...

    layui一个页面使用多个文件upload上传按钮

    在`elem`选项中,你可以设置额外的属性,如`accept`来限制文件类型(如`image/*`表示图片,`application/pdf`表示PDF): ```javascript elem: '#upload1' ,accept: 'images' //默认允许上传图片,也可改为'file'...

    ASP.NET源码——Jquery+.net实现图像缩放截取(类似开心网).zip

    在本例中,可能有一个Image控件用于显示上传的图片,而一个隐藏的FileUpload控件用于接收用户上传的图像文件。 接下来,涉及到的是图像处理。在.NET Framework中,System.Drawing命名空间提供了处理图像所需的所有...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)...

    class_image_slider

    此外,为了实现滑动效果,可能还使用了HTML的`&lt;input type="range"&gt;`滑块控件,让用户可以通过手动拖动来浏览图片。 在实际应用中,"class_image_slider"可能会结合JavaScript或者jQuery等库来实现更复杂的交互功能...

    ExtAspNet_v2.3.2_dll

    -ExtAspNet支持原生的AJAX,也就是说控件的属性改变在AJAX过程中会反映到页面中,但并不是所有的控件属性都支持AJAX改变。 -加载s.gif图片在本机进行,不会请求extjs.com远程资源(feedback:efrigate43,abaocoole)...

    asp.net结合jquery裁剪图片

    在ASP.NET web应用开发中,有时我们需要实现用户可以自定义裁剪图片的功能,这在上传头像、产品图片等场景非常常见。本教程将详细讲解如何结合ASP.NET和jQuery实现图片裁剪功能。 首先,ASP.NET是微软推出的一种...

    2021-2022计算机二级等级考试试题及答案No.12957.docx

    - **知识点**: 在Web开发中,Image、ImageButton 和 ImageMap 控件有着不同的用途和特点。 - **详细解析**: - `Image` 控件主要用于显示静态图片,不支持点击事件。 - `ImageButton` 控件同样可以显示图片,但额外...

    HTML5应用和游戏开发体验

    9. **CSS Image Values (Gradients)**: 图像值和渐变背景。 10. **CSS Media Queries**: 媒体查询支持不同的设备和屏幕尺寸。 11. **CSS Multi-column Layout**: 多列布局。 12. **CSS Namespaces**: 支持不同命名...

    【JavaScript源代码】Bootstrap FileInput实现图片上传功能.docx

    dropZoneEnabled: false, // 是否显示拖拽区域 maxFileCount: 5, // 允许同时上传的最大文件个数 enctype: 'multipart/form-data', validateInitialCount: true, layoutTemplates: { actionUpload: '' }, ...

    jquery实现头像剪切

    在实现头像剪切的过程中,jQuery主要负责处理用户交互部分,如拖动和旋转等操作。 1. **基本架构**: 在项目中,你需要引入jQuery库,可以通过CDN链接或者本地引入。同时,还需要一个专门用于图像剪切的插件,如`...

    openlayers加载在线天地图.zip

    3. 地图交互:OpenLayers提供了丰富的事件监听和处理机制,可以响应用户的点击、拖动等操作,进行定制化交互。 4. 数据叠加:除了加载天地图,你还可以叠加其他数据源,如GeoJSON、KML等,实现数据的可视化展示。 ...

Global site tag (gtag.js) - Google Analytics