.transfer()


.transfer( options [, complete ] )Returns: jQueryversion added: 1.12

Description: Transfers the outline of an element to another element

  • .transfer( options [, complete ] )

    • options
      Type: Object
      • to
        Type: Selector
        The target of the transfer effect.
      • className (default: null)
        Type: String
        A class to add to the transfer element, in addition to ui-effects-transfer.
      • duration (default: 400)
        Type: Number or String
        A string or number determining how long the animation will run. The strings "fast" and "slow" can be supplied to indicate durations of 200 and 600 milliseconds, respectively. The number type indicates the duration in milliseconds.
      • easing (default: swing)
        Type: String
        A string indicating which easing function to use for the transition.
    • complete
      Type: Function()
      A function to call once the animation is complete, called once per matched element.

Very useful when trying to visualize interaction between two elements.

The transfer element itself has the class ui-effects-transfer, and needs to be styled by you, for example by adding a background or border.

Example:

Clicking on the green element transfers to the other.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>transfer demo</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.3/themes/smoothness/jquery-ui.css">
<style>
.green {
width: 100px;
height: 80px;
background: green;
border: 1px solid black;
}
.red {
margin-top: 10px;
width: 50px;
height: 30px;
background: red;
border: 1px solid black;
}
.ui-effects-transfer {
border: 1px dotted black;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
<script src="https://code.jquery.com/ui/1.13.3/jquery-ui.js"></script>
</head>
<body>
<div class="green"></div>
<div class="red"></div>
<script>
$( "div" ).click(function() {
var i = 1 - $( "div" ).index( this );
$( this ).transfer( {
to: $( "div" ).eq( i ),
duration: 1000
} );
});
</script>
</body>
</html>

Demo: