Ajax Loader
×
HTML
<p>Try to hover this block from different directions</p>
1
<p>Try to hover this block from different directions</p>
2
<p></p>
3
<span></span>
4
<div class="b-block">
5
    <div class="b-block__hoverer"></div>
6
    <div class="b-block__hoverer"></div>
7
    <div class="b-block__hoverer"></div>
8
    <div class="b-block__hoverer"></div>
9
  
10
    <div class="b-block__content">
11
        Hover me!
12
    </div>
13
</div>
14
<span></span>
15
<p></p>
16
 
 
CSS
body {
1
body {
2
    font: 16px/1.5 "Helvetica Neue", Arial, sans-serif;
3
    text-align: center;
4
}
5
/* The wrapper */
6
.b-block {
7
    position: relative;
8
    display: inline-block;
9
    overflow: hidden;
10
    width: 10em;
11
    height: 10em;
12
    vertical-align: middle;
13
    -webkit-transform: translateZ(0);
14
}
15
/* The blocks that would be hovered */
16
.b-block__hoverer {
17
    position: absolute;
18
    z-index: 1;
19
    width: 71%;
20
    height: 71%;
21
    -webkit-transform: rotate(45deg);
22
}
23
/* Positioning for hoverers */
24
.b-block__hoverer:nth-child(1) {
25
    top: 0;
26
    right: 0;
27
    -webkit-transform-origin: 100% 0;
28
       -moz-transform-origin: 100% 0;
29
         -o-transform-origin: 100% 0;
30
            transform-origin: 100% 0;
31
}
32
.b-block__hoverer:nth-child(2) {
33
    bottom: 0;
34
    right: 0;
35
    -webkit-transform-origin: 100% 100%;
36
       -moz-transform-origin: 100% 100%;
37
         -o-transform-origin: 100% 100%;
38
            transform-origin: 100% 100%;
39
}
40
.b-block__hoverer:nth-child(3) {
41
    bottom: 0;
42
    left: 0;
43
    -webkit-transform-origin: 0 100%;
44
       -moz-transform-origin: 0 100%;
45
         -o-transform-origin: 0 100%;
46
            transform-origin: 0 100%;
47
}
48
.b-block__hoverer:nth-child(4) {
49
    top: 0;
50
    left: 0;
51
    -webkit-transform-origin: 0 0;
52
       -moz-transform-origin: 0 0;
53
         -o-transform-origin: 0 0;
54
            transform-origin: 0 0;
55
}
56
/* Enlarge the hoverer to cover the whole area */
57
.b-block__hoverer:hover {
58
    z-index: 9;
59
    width: 100%;
60
    height: 100%;
61
    -webkit-transform: none;
62
       -moz-transform: none;
63
         -o-transform: none;
64
            transform: none;
65
}
66
/* Styles for content block */
67
.b-block__content {
68
    position: absolute;
69
    top: 0;
70
    left: 0;
71
    width: 100%;
72
    height: 100%;
73
    text-align: center;
74
    line-height: 10em;
75
    background: #333;
76
    color: #FFF;
77
    /* Restore the antialiasing lost from translateZ */
78
    -webkit-font-smoothing: subpixel-antialiased;
79
    -webkit-transition: all .3s ease;
80
       -moz-transition: all .3s ease;
81
         -o-transition: all .3s ease;
82
            transition: all .3s ease;
83
    -webkit-box-shadow: 0 -10em 0 0 red, 10em 0 0 0 blue, 0 10em 0 0 lime, -10em 0 0 0 orange;
84
       -moz-box-shadow: 0 -10em 0 0 red, 10em 0 0 0 blue, 0 10em 0 0 lime, -10em 0 0 0 orange;
85
            box-shadow: 0 -10em 0 0 red, 10em 0 0 0 blue, 0 10em 0 0 lime, -10em 0 0 0 orange;
86
}
87
/* Move the content block while hovering different blocks */
88
.b-block__hoverer:nth-child(1):hover ~ .b-block__content {
89
    -webkit-transform: translate(0, 100%);
90
       -moz-transform: translate(0, 100%);
91
         -o-transform: translate(0, 100%);
92
            transform: translate(0, 100%);
93
}
94
.b-block__hoverer:nth-child(2):hover ~ .b-block__content {
95
    -webkit-transform: translate(-100%, 0);
96
       -moz-transform: translate(-100%, 0);
97
         -o-transform: translate(-100%, 0);
98
            transform: translate(-100%, 0);
99
}
100
.b-block__hoverer:nth-child(3):hover ~ .b-block__content {
101
    -webkit-transform: translate(0, -100%);
102
       -moz-transform: translate(0, -100%);
103
         -o-transform: translate(0, -100%);
104
            transform: translate(0, -100%);
105
}
106
.b-block__hoverer:nth-child(4):hover ~ .b-block__content {
107
    -webkit-transform: translate(100%, 0);
108
       -moz-transform: translate(100%, 0);
109
         -o-transform: translate(100%, 0);
110
            transform: translate(100%, 0);
111
}
 

Untitled

CSSDeck G+