# Visibility `unicorn:visible` can be added to any element to have it call the specified view method when it scrolls into view. ```python # visibility.py from django_unicorn.components import UnicornView class VisibilityView(UnicornView): visibility_count = 0 def add_count(self): self.visibility_count += 1 ``` ```html
``` ```{note} In some cases, the element with the `unicorn:visible` attribute will always be in the viewport, so the event will continue to fire and the method will continue to execute. However, this will not happen in the following instances: - the fields of component do not change, so the AJAX request will return a 304 status code - the method explicitly returns `False` ``` ## Modifiers There are a few modifiers for `unicorn:visible` and they are able to be chained if necessary. ### Debounce Similar to the debounce modifier on a [model](templates.md#debounce) or [actions](actions.md#debounce), wait the specified number of milliseconds before calling the specified method. :::{code} html :force: true
::: ### Threshold The percentage (as an integer) that should be visible before being triggered. For example, `0` means that as soon as 1 pixel of the element is visible it would be fired, `25` would be 25% of the target element is visible, `100` would require 100% of the element to be completely visible. :::{code} html :force: true
:::