logoalt Hacker News

Show HN: Picknplace.js, an alternative to drag-and-drop

417 pointsby bbxlast Tuesday at 4:12 PM143 commentsview on HN

I find that the drag and drop experience can quickly become a nightmare, especially on mobile. To tap, hold, drag, and scroll, all at the same time, is both difficult to achieve, and prone to errors. I've always had in mind this 2-step approach, where picking an element and placing it were two separate steps. So I implemented this basic version to showcase my idea.

While it might take more time than a regular drag and drop, the benefit is for people who struggle with holding down the mouse button. With picknplace.js, you only need two clicks and some scrolling.

This solution is meant as an experiment, so I'm open to discussion.


Comments

bryanhogantoday at 6:34 AM

This is very cool! I would still call this a 3-step approach, since you are performing 3 actions, but nonetheless, this UX interaction could be quite an improvement in some cases.

dash2today at 6:16 AM

Why "click, scroll and drop", rather than "click, point and drop"? The latter seems more general, works in 2D, and doesn't require two-finger mouse scrolling.

qwertytyyuutoday at 12:08 PM

Very interesting! A little awkward on mobile , but that’s might be me not being used to it

amadeuspageltoday at 11:41 AM

I'm unable to scroll to an exact spot, it often scrolls past two elements at once.

sgtyesterday at 9:17 PM

Interesting concept but kind of unintuitive to figure out without reading about it first. Maybe you can tweak it?

jmisavageyesterday at 9:50 PM

Interesting concept. Not sure if I like it more than drag and drop though, but I do love explorations like this. Reminds me of the old days when Flash devs would build some truly crazy stuff.

Potential bug: The first time I tried it on my iPad, it didn’t place the item, but it did on subsequent uses.

aitchnyulast Wednesday at 8:57 AM

I repeatedly clicked pick and place and scratched my head for a minute. Wish there were a cue that I have to scroll.

ickelbawdyesterday at 11:41 PM

Very cool concept. Several people have made good suggestions on improving the UX. If I were implementing I’d probably try to support a stack of picked items so I could grab several and move them all at once.

jkrubintoday at 5:48 AM

This is fantastic. It didn’t work for me at first bc i dragged assuming it was dnd, but then would say that is “user error”

hysanyesterday at 9:19 PM

This doesn’t appear to always work? Sometimes the placed item gets sent back to the original position even though it’s clearly being placed in a new spot (at least from what I can see visually). The UX idea is nice.

jahsometoday at 1:20 AM

On mobile I wish there were a way to lock the browser window from scrolling. It was really disorienting with both the window and the list item moving.

euph0riayesterday at 9:29 PM

Ideas for usability: -Add a background behind the buttons when you have picked. -When having picked, display above the buttons a helper text like "Now scroll to change position".

show 2 replies
mattacularyesterday at 9:37 PM

Really nice, I found it highly intuitive on first use. Only thing I might suggest is making it more obvious what the "handle" button is that initiates the pick.

feeplast Tuesday at 4:29 PM

https://github.com/jgthms/picknplace.js/

Linked in page is 404.

show 2 replies
flowerthoughtsyesterday at 9:46 PM

Oh, lovely. Let's play with this problem. Variations to consider:

- Zoom out after drag start and back in when hovering over items.

- Drag to a staging area/clipboard.

nvadertoday at 2:13 AM

I instinctively tried to tap on the object again to place it, and I think that should be the default.

mrozbarrylast Tuesday at 4:41 PM

The keyboard arrows to move works nice, but pressing enter to place appears to cancel it. I'm on firefox 145/mac os 15.6.1 if that matters.

ajkjktoday at 1:37 AM

you should perhaps mention that this is about dragging and dropping objects in lists. otherwise there is an additional level of jarring-ness due to not even knowing what problem you're trying to solve (and then bewildered by what it does as a result).

ndgoldlast Wednesday at 1:03 AM

I do not like this. I am still glad you shared it!

loa_observerlast Tuesday at 8:07 PM

how does it work with more complex layout not just vertical list of items, like those drag-and-drop for visualization UI: https://github.com/Kanaries/graphic-walker

you can see that there are different areas of draggable and droppable, on different directions.

mentalgearyesterday at 9:59 PM

For mobile, this seems like a good, maybe even better solution than the status Quo. Maybe not so much for desktop.

joshribakofftoday at 1:56 AM

Doesnt work, place just reverts on mobile safari. Even if it worked this adds steps.

nkriscyesterday at 9:08 PM

Viewing this on my phone and tapping the colored does nothing at all. Are they supposed to do something?

qingcharlestoday at 9:18 AM

I hate it, but I love experimentation, and I love seeing new UI/UX concepts. It's so hard to come up with something original. I'd never want to dissuade someone from trying something out.

gaigalasyesterday at 11:56 PM

Ditch the scroll.

Pick: all previous "Pick" buttons become "Place". You choose one.

Done. Simple, explicit, intuitive.

polyterativetoday at 8:59 AM

this is nice enough using windows pen with wacom. better that traditional in my usage

deskmantoday at 3:11 AM

Honestly when I see things like this, I feel Ai can steal our coding but it can NEVER still our resoning and creativity. Thanks for sharing!

show 1 reply
hopppyesterday at 9:49 PM

Doesn't work on my phone or I just didn't get it at all.

popalchemisttoday at 3:59 AM

Unresponsive in chrome, even in incognito.

fellowniusmonklast Tuesday at 6:46 PM

Regardless of the technical and UX merit of this project.

There are clearly a bunch of people who haven't used a new interface in perhapse years and are simply obtuse.

It took me less than 5 seconds to start using this one handed while I was pissing at a urinal, I mean that quite literally.

show 1 reply
victorbjorklundyesterday at 9:20 PM

I don’t love it but really cool as something to test a new way.

nailertoday at 2:30 PM

Placing doesn’t work on an iPhone. Tapping the element after I have scrolled doesn’t work and there is no UI that tells me how to place.

Update: there is some UI hidden inside the page text that includes a button to place. Add a background to this area and people will be able to see it. Or let me tap the element.

dzogchenyesterday at 10:26 PM

Took me about a minute to figure out how it works.

racl101yesterday at 9:23 PM

Interesting.

Definitely see its potential for mobile pages.

On web it feels unintuitive to scroll. It feels more natural to drag and drop. Guess Trello boards have conditioned us.

But on web this control is way better.

wnevetsyesterday at 11:47 PM

is the whole page supposed to scroll when you scroll after picking?

agumonkeyyesterday at 11:03 PM

a bit confusing, but lovely original idea, well made demo too

thanks for sharing

anigbrowltoday at 8:02 AM

Do like

d--btoday at 8:00 AM

Cool idea. Imo, Place should take Pick’s slot instead of being outside. There s probably something I didn’t think if that orevents this…

alexjraytoday at 2:42 AM

Not trying to diminish the work at all because it works well but I hate this UX pattern. There is likely a reason this hasn't been done. If it wasn't for the pick -> scroll -> place instruction I would have no idea how to use it.

nurettintoday at 5:10 AM

Great, maybe highlight the item so we can distinguish the picked item from the others without scrolling.

benatkintoday at 4:51 AM

I completely got the point of it, however, I wanted to do something that was easy with this and not so easy with traditional drag and drop, which is move an object down several screenfuls. If it had 50 items rather than 10 I think it would be better for both those who easily see the advantage of this method and those who don't.

lloydatkinsontoday at 1:23 AM

Doesn't do anything in Edge?

herokutoday at 3:13 PM

[dead]

cmos32today at 8:57 AM

[dead]

huflungdungtoday at 6:21 PM

[dead]