Hi javamaasai,

try this portion of code to create droppable (instead of the FOR
loop):

$R(1,4).each(function(i){
        Droppables.add('droppable_demo'+i, {
                accept: 'draggable',
                hoverclass: 'hover',
                onDrop: function(){
                alert(i);
                        $('droppable_demo'+i).highlight();
                }
        });
});

At this moment, you will see that there is not only the droppable 1
that accept drops; but droppable 1 & 2 !
This an an evolution ??

But for the other problem you could still not drop on droppable 3 &
4 !!

I didn't really know what it is, but you could see at the function
cumulativeScrollOffset().
I think it's because the droppable don't know that the element have
scrolled and always take first element??

btw, to drop on a scrollable zone is, to my opinion, not a good
practice ! But you should have a good reason !

--
david

On 16 fév, 15:09, javamaasai <ikhag...@gmail.com> wrote:
> Hey All,
>
> I'm creating a small online traditional Shop, where tourists can buy
> African traditional goods. These include things like beads, Warrior
> spears clothing e.t.c My web application has pictures of african items
> draggables in an overflowed div and droppables pictures of visit
> locations where one.
>
> Issue is when multiple droppables are put in overflowed div and
> scrolled, they kind of virtually remain fixed, i.e. droppable3 scrolls
> to position of droppable1 but on dropping on droppable3 the active
> drop area is for droppable1!
>
> Here is small sample code test code:
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
> "http://www.w3.org/TR/xhtml1/DTD/...";>
> <html xmlns="http://www.w3.org/1999/xhtml";>
>     <head>
>         <script src="javascript/prototype.js" type="text/javascript">
>         <script src="javascript/scriptaculous.js" type="text/
> javascript">
>         </script>
>     </head>
>     <body>
>         <style type="text/css">
>
>             div#droppable_container {
>                 margin-bottom: 30px;
>                 height: 300px;
>                 width: 500px;
>                 background: black;
>                 padding: 10px;
>             }
>
>             div#droppable_demo {
>                 width: 160px;
>                 height: 120px;
>                 font-size: 15px;
>                 background: #ffffff;
>                 border: 5px solid #ccc;
>                 text-align: center;
>                 float: right;
>             }
>
>                         .droppable_demo {
>                 width: 100px;
>                 height: 100px;
>                 font-size: 15px;
>                 background: #ffffff;
>                 border: 5px solid #ccc;
>                 text-align: center;
>                 float: left;
>                 margin: 5px;
>             }
>
>             #draggable_demo {
>                 background: yellowgreen;
>                 margin: 5px;
>                 border: 3px solid green;
>                 width: 100px;
>                 height: 100px;
>                 cursor: move;
>                 font-size: 15px;
>                 float: left;
>             }
>
>             .spaceHolder {
>                 background: orange;
>                 margin: 5px;
>                 border: 3px solid orangered;
>                 width: 100px;
>                 height: 100px;
>                 font-size: 15px;
>                 float: left;
>             }
>
>             div#droppable_demo.hover {
>                 border: 5px dashed orange;
>                 background: #efefef;
>             }
>                         .droppable_demo.hover {
>                 border: 5px dashed orange;
>                 background: #efefef;
>             }
>
>             #dragContainer {
>                 background: yellow;
>                 border: 5px solid blue;
>                 float: left;
>                 width: 60%;
>                 height: 120px;
>                 overflow: auto; /*This is where the weirdness
> happens*/
>             }
>                         #dropContainer {
>                 background: blue;
>                 border: 5px solid red;
>                 float: left;
>                 width: 60%;
>                 height: 120px;
>                 overflow: auto; /*This is where the weirdness
> happens*/
>             }
>
>             h3 {
>                 color: black;
>                 float: left;
>             }
>         </style>
>         <div id="droppable_container">
>             <div id="dragContainer">
>                 <div class="draggable" id="draggable_demo">
>                     DRAG ME!!!
>                 </div>
>                 <!-- space holders added to create overflow -->
>                 <div class="spaceHolder">
>                     Space Holder
>                 </div>
>                 <div class="spaceHolder">
>                     Space Holder
>                 </div>
>                 <div class="spaceHolder">
>                     Space Holder
>                 </div>
>             </div>
>             <div id="dropContainer">
>                 <div class="droppable_demo" id="droppable_demo1">
>                     Drop here1!
>                 </div>
>                 <!-- space holders added to create overflow -->
>                 <div class="droppable_demo" id="droppable_demo2">
>                     Drop here2!
>                 </div>
>                 <div class="droppable_demo" id="droppable_demo3">
>                     Drop here3!
>                 </div>
>                 <div class="droppable_demo" id="droppable_demo4">
>                     Drop here4!
>                 </div>
>             </div>
>         </div>
>
>         <h3>Draggables in yellow container with blue border,
> droppables in blue containter with red border. Drag green box to Drop
> here 1, it will change bourder on hover. Then scroll the droppables in
> blue until you can see half-botttom of Drop here 1 & Drop here 2 and
> the last two Drop here 3 & 4.</h3>
>         <script type="text/javascript">
>             new Draggable('draggable_demo', {
>                 revert: true,
>                 ghosting: true // this is needed to avoid the
> craziness of the overflowed div's scroll bars
>             });
>
>                         for (var i = 1; i <= 4; i++) {
>                                 Droppables.add('droppable_demo'+i, {
>                                         accept: 'draggable',
>                                         hoverclass: 'hover',
>                                         onDrop: function(){
>                                                 
> $('droppable_demo'+i).highlight();
>                                         }
>                                 });
>                         }
>             // These changes have been made to dragdrop.js
>             // Index: src/dragdrop.js
>             //
> ===================================================================
>             // --- src/dragdrop.js      (revision 8189)
>             // +++ src/dragdrop.js      (working copy)
>             // @@ -405,7 +405,7 @@
>             //      if(this.options.ghosting) {
>             //        if (!this.element._originallyAbsolute)
>             //          Position.relativize(this.element);
>             // -      delete this.element._originallyAbsolute;
>             // +      this.element._originallyAbsolute = null;
>             //        Element.remove(this._clone);
>             //        this._clone = null;
>             //      }
>
>         </script>
>     </body>
> </html>
>
> Please advise!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to