Прилипающий к курсору слайдер двух картинок
by Denis Tverdokhlebov
HTML
<div class="container">
<div class="divider-wrapper">
<div class="code-wrapper">
<div class="design-wrapper">
<div class="design-image"></div>
</div>
</div>
<div class="divider-bar"></div>
</div>
<br><br>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="init.js"></script>
CSS
body, html { height: 100%; }
body {
margin-top: 50px;
background-color: #333;
}
.container {
height: 100%;
text-align: center;
}
/* Divider Styles */
.divider-wrapper {
width: 500px;
height: 270px;
margin: 0 auto;
position: relative;
}
.divider-wrapper:hover { cursor: none; }
.divider-bar {
position: absolute;
width: 4px;
left: 50%;
top: -10px;
bottom: -15px;
background-image: -webkit-linear-gradient(top,rgba(59,144,203,0) 0,#64b700 2%,#64b700 98%,rgba(59,144,203,0) 100%);
background-image: -moz-linear-gradient(top,rgba(59,144,203,0) 0,#64b700 2%,#64b700 98%,rgba(59,144,203,0) 100%);
background-image: -o-linear-gradient(top,rgba(59,144,203,0) 0,#64b700 2%,#64b700 98%,rgba(59,144,203,0) 100%);
background-image: linear-gradient(to bottom,rgba(59,144,203,0) 0,#64b700 2%,#64b700 98%,rgba(59,144,203,0) 100%);
-webkit-box-shadow: 0 0 10px 1px rgba(0,0,0,0.4);
-moz-box-shadow: 0 0 10px 1px rgba(0,0,0,0.4);
box-shadow: 0 0 10px 1px rgba(0,0,0,0.4);
}
.code-wrapper {
border-radius: 8px;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border: 2px solid #222;
display: block;
overflow: hidden;
width: 100%;
height: 100%;
position: relative;
background: url("https://raw.githubusercontent.com/mewowa/image-divider/master/code.png") no-repeat;
}
.design-wrapper, .design-image {
border-radius: 0 8px 8px 0;
-moz-border-radius: 0 8px 8px 0;
-webkit-border-radius: 0 8px 8px 0;
}
.design-wrapper {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
-webkit-transform: translateX(50%);
transform: translateX(50%);
}
.design-image {
display: block;
width: 100%;
height: 100%;
position: relative;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
background:...
JavaScript
(function($){
$(function(){
$('.code-wrapper').on( "mousemove", function(e) {
var offsets = $(this).offset();
var fullWidth = $(this).width();
var mouseX = e.pageX - offsets.left;
if (mouseX < 0) { mouseX = 0; }
else if (mouseX > fullWidth) { mouseX = fullWidth }
$(this).parent().find('.divider-bar').css({
left: mouseX,
transition: 'none'
});
$(this).find('.design-wrapper').css({
transform: 'translateX(' + (mouseX) + 'px)',
transition: 'none'
});
$(this).find('.design-image').css({
transform: 'translateX(' + (-1*mouseX) + 'px)',
transition: 'none'
});
});
$('.divider-wrapper').on( "mouseleave", function() {
$(this).parent().find('.divider-bar').css({
left: '50%',
transition: 'all .3s'
});
$(this).find('.design-wrapper').css({
transform: 'translateX(50%)',
transition: 'all .3s'
});
$(this).find('.design-image').css({
transform: 'translateX(-50%)',
transition: 'all .3s'
});
});
}); // end of document ready
})(jQuery); // end of jQuery name space