Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting undefined on property of useElementStyle is not working. #76

Closed
Tracked by #81
shtse8 opened this issue Jul 22, 2022 · 3 comments
Closed
Tracked by #81

Setting undefined on property of useElementStyle is not working. #76

shtse8 opened this issue Jul 22, 2022 · 3 comments

Comments

@shtse8
Copy link

shtse8 commented Jul 22, 2022

const sidePanelContent = ref()
const { x: windowX, y: windowY } = useWindowScroll()
const { width, height } = useWindowSize()
const { x, y, top, right, bottom, left } = useElementBounding(sidePanelContent)
const { style, stop } = useElementStyle(sidePanelContent)
watch(windowY, (current, last) => {
  const direction = current > last ? 'down' : 'up'
  console.log('direction', direction)
  console.log(x.value, y.value, top.value, right.value, bottom.value, left.value)
  // styleObject.top = top
  console.log('height', height)

  // style.position = top.value < 0 && bottom.value > height.value ? 'relative' : 'sticky'
  // if (bottom.value < height.value || top.value > 0) {
  //   const marginTop = parseFloat(style.marginTop ?? 0)
  //   style.top = `${-top.value + marginTop}px`
  // }
  if ((top.value > 0 && direction === 'up') || (top.value < 0 && direction === 'down')) {
    console.log('stick to top')
    style.position = 'sticky'
    style.marginTop = undefined
    style.top = 0
    style.bottom = undefined
  }
  else if ((bottom.value < height.value && direction === 'down') || (bottom.value > height.value && direction === 'up')) {
    console.log('stick to bottom')
    style.position = 'sticky'
    style.marginTop = undefined
    style.top = undefined
    style.bottom = 0
  }
  else {
    console.log('floating')
    style.position = 'relative'
    style.marginTop = `${-top.value}px`
    style.top = undefined
    style.bottom = undefined
  }

  console.log(style)
})

style is still there even setting it to undefined.

@Tahul Tahul mentioned this issue Sep 11, 2022
13 tasks
@Tahul
Copy link
Member

Tahul commented Sep 11, 2022

Hey, could you provide an example of how you would like to use it on a sandbox?

Here is a link to a blank sandbox to help it: https://stackblitz.com/edit/vue-zj2zpq?file=src%2FApp.vue

Copy link

Would you be able to provide a reproduction? 🙏

More info

Why do I need to provide a reproduction?

Reproductions make it possible for us to triage and fix issues quickly with a relatively small team. It helps us discover the source of the problem, and also can reveal assumptions you or we might be making.

What will happen?

If you've provided a reproduction, we'll remove the label and try to reproduce the issue. If we can, we'll mark it as a bug and prioritize it based on its severity and how many people we think it might affect.

If needs reproduction labeled issues don't receive any substantial activity (e.g., new comments featuring a reproduction link), we'll close them. That's not because we don't care! At any point, feel free to comment with a reproduction and we'll reopen it.

How can I create a reproduction?

A link to a stackblitz project or public GitHub repository would be perfect. 👌

Please ensure that the reproduction is as minimal as possible.

You might also find these other articles interesting and/or helpful:

Copy link

github-actions bot commented Mar 2, 2024

This issue was closed because it was open for 7 days without a reproduction.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants