找回密码
 立即注册

QQ登录

只需一步,快速开始

karaiwasabi

中级会员

31

主题

54

帖子

733

积分

中级会员

积分
733
karaiwasabi
中级会员   /  发表于:2018-9-14 22:23  /   查看:4191  /  回复:1
我在两个相邻DIV中各放入一个spread,拖拽分界线一个DIV增大一个DIV缩小。Spread跟随DIV尺寸自适应(我的spread设置为100%)
现象是如果画面启动不改变窗口大小没有问题,当缩小IE窗口后,再次拖动分界线准备扩大一边的时候,DIV尺寸变大了,但是里面Spread尺寸没有跟随变化。
如果在稍微改变一点点窗口大小,Spread会马上重新刷新适应DIV的大小。
代码如下。拖拽分界条没做好,在两个spread交接上方有个小黑块,那个可以左右拖动。效果如图片所示,含红色区域是左侧DIV大小,但是Spread并没有达到100%
<%@ Page Language="vb" AutoEventWireup="false"%>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style>
        body,html{width:100%;height:100%;padding:0;margin:0;}
.clearfix:after {
    content: '';
    display: table;
    clear: both;
}
#main{
   background-color: BurlyWood;
   float: right;
   height:200px;
    width: 75%;
}
#sidebar{
   background-color: IndianRed;
   width:25%;
   float: left;
   height:200px;
   overflow-y: hidden;
}
#dragbar{
   background-color:black;
   height:100%;
   float: right;
   width: 3px;
   cursor: col-resize;
}
#ghostbar{
    width:3px;
    background-color:#000;
    opacity:0.5;
    position:absolute;
    cursor: col-resize;
    z-index:999}
    </style>
<script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var i = 0;
            var dragging = false;
            $(document.getElementById("dragbar")).mousedown(function (e) {
                e.preventDefault();
                dragging = true;
                var main = $('#main');
                var ghostbar = $('<div>',
                    {
                        id: 'ghostbar',
                        css: {
                            height: main.outerHeight(),
                            top: main.offset().top,
                            left: main.offset().left
                        }
                    }).appendTo('body');
                $(document).mousemove(function (e) {
                    ghostbar.css("left", e.pageX + 2);
                });
            });
            $(document).mouseup(function (e) {
                if (dragging) {
                    var percentage = (e.pageX / window.innerWidth) * 100;
                    var mainPercentage = 100 - percentage;
                    $('#console').text("side:" + percentage + " main:" + mainPercentage);
                    $('#sidebar').css("width", percentage + "%");
                    $('#main').css("width", mainPercentage + "%");
                    $('#ghostbar').remove();
                    $(document).unbind('mousemove');
                    dragging = false;
                    $('#gvProcDesignInfo').css("width","100%")
                }
            });
        });
</script>
</head>
<body>
    <form id="form1" runat="server">
<div class="clearfix">
<div id="sidebar" style="float:left ">
                    <FarPoint:FpSpread ID="gvProcDesignInfo" runat="server" ActiveSheetViewIndex="0" BorderColor="#A0A0A0" BorderStyle="Solid" BorderWidth="1px" HorizontalScrollBarPolicy="Always" VerticalScrollBarPolicy="Never" Height="177px" Width="100%">
                <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight" ButtonShadowColor="ControlDark" Visible="false"></CommandBar>
                <Sheets>
                    <FarPoint:SheetView SheetCorner-ColumnCount="0" SheetName="Sheet1"></FarPoint:SheetView>
                </Sheets>
            </FarPoint:FpSpread>
     <span id="position"></span>

</div>
        <div id="dragbar" style="width:10px;border-style:solid;border-width:1px;float:left"></div>
<div id="main"  style="float:left ">
                <FarPoint:FpSpread ID="FpSpread1" runat="server" ActiveSheetViewIndex="0" BorderColor="#A0A0A0" BorderStyle="Solid" BorderWidth="1px" HorizontalScrollBarPolicy="Always" VerticalScrollBarPolicy="Never" Height="177px" Width="100%">
                <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight" ButtonShadowColor="ControlDark" Visible="false"></CommandBar>
                <Sheets>
                    <FarPoint:SheetView SheetCorner-ColumnCount="0" SheetName="Sheet1"></FarPoint:SheetView>
                </Sheets>
            </FarPoint:FpSpread>
</div>
</div>
<div id="console"></div>
    </form>
</body>
</html>


2018-09-14_222135.png

1 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-17 09:49:50
沙发
浏览器的大小改变有事件可以检测,这种div的变化spread 并不知道。所以需要调用接口resize

                    var spread1 = document.getElementById("gvProcDesignInfo");
                    spread1.sizeSpread();

评分

参与人数 1满意度 +5 收起 理由
karaiwasabi + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部