繁体   English   中英

如何获取div位置并稍后重新放置(在MAC上)

[英]How to catch div position and reposition it later (on MAC)

我正在创建一个APP,它将为用户提供可拖动的元素。 我想保存元素的位置,以便以后在同一位置重新定位。 我在stackoverflow上发现了一些类似的问题,但看起来像是有人因为同样的问题而通过了。 所以,我想知道我是否理解不正确。

基本上我的问题是:根据窗口的调整,元素位置的值可能会有所不同。

示例:如果在窗口调整到其原始大小的50%(小于)的情况下捕捉到元素的左侧位置,则左侧位置将不同于100%尺寸。

因此,如果用户将窗口的元素调整少了50%,并在同一用户返回时将其保存,则这些元素将变得一团糟(如果窗口的大小不同)。

我有这个例子http://jsfiddle.net/EV5JZ/1/

如果转到控制台,您将看到(值):

console.log($('#section > li:eq(0)').find('.element:last()').position().left);

如果您调整窗口大小,将获得不同的值。

因此,我缺少某些东西还是应该使用特定的方法?

CSS:

 <style>
    body, html {
      height: 100%;
      overflow: hidden;
    }

    #section { 
        list-style-type: none; 
        padding: 0px; 
        margin: 0px;
    }
    #section li { 
        margin: 0px 0px 1px 0px; 
        width: 99.9%; 
        background-color:#ccc; 
        border: 0px solid red; 
        min-height: 100px; 
        float: left;
    }
    </style>

HTML:

<div id="central-panel">

  <div id="template">
      <ul id="section">
        <li>

          <div class="element">1</div>
          <div class="element">2</div>
          <div class="element">3</div>
          <div class="element">4</div>

        </li>
        <li><span>::</span>Item 2</li>
        <li><span>::</span>Item 3</li>
        <li><span>::</span>Item 4</li>
      </ul>
  </div>

</div>

更新

好吧,我找到了如何在Windows上修复它,但是我意识到最大的问题在于MAC。

基本上,如果我将元素类上的float:left更改为none或将id模板从“%”更改为“ px”,如下所示,我可以解决此问题,但在MAC上,它将保持错误的行为。

.element { 
float: none; 
}

#template {
width: 1000px; 
}

任何想法?

好吧,实际上我正在尝试以最糟糕的方式做。

我的布局是流动的,因此所有内容都用“%”定义。 当我尝试重新放置元素时,我需要减去为放置在元素之前的布局元素的“宽度”保存的左侧位置,但是这些布局元素可以根据调整的大小来更改其“宽度”的问题。因此,分辨率也会受到影响。

我应该重新定位的元素位于用“ px”定义的DIV元素内。 因此,这种方式要容易得多。 我只是从中取出“ float:left”,并得到了像$ .css('left')这样的位置。

问题是我的方法。 现在基本上我可以像这样重新定位:

得到

$('#section > li:first()').find('.element:last()').css('left')

复位

$('#section > li:first()').find('.element:last()').css('left', '536px');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM