There are tons of possibilities in regards to jQuery’s animate function, but for this tutorial, I'm going to show how I got this head to follow your cursor. I mean, who doesn’t want to see his own head spin around like a maniac for hours? The animation effect depends on the movement of your mouse cursor. Awesome, don't you think? Let's get it done.
The HTML
<div id="container"> <div class="front"></div> </div>
Nothing is really special in the code above, just trying to make only the front image visible before mouse positioning.
The CSS
#container div {
margin: 0 auto;
width: 250px;
height: 250px;
}
.front { background: url(front.jpg); }
.top { background: url(up.jpg); }
.bottom { background: url(down.jpg); }
.left { background: url(left.jpg); }
.right { background: url(right.jpg); }
.top-left { background: url(upleft.jpg); }
.top-right { background: url(upright.jpg); }
.bottom-left { background: url(downleft.jpg); }
.bottom-right { background: url(downright.jpg); }
margin: 0 auto;
width: 250px;
height: 250px;
}
.front { background: url(front.jpg); }
.top { background: url(up.jpg); }
.bottom { background: url(down.jpg); }
.left { background: url(left.jpg); }
.right { background: url(right.jpg); }
.top-left { background: url(upleft.jpg); }
.top-right { background: url(upright.jpg); }
.bottom-left { background: url(downleft.jpg); }
.bottom-right { background: url(downright.jpg); }
As you might have noticed, I use nine different images to simulate the rotating effect. Which image is displayed depending on the position of the mouse cursor. The values are set according to the image height and width.
The jQuery
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function() { var img_x1, img_x2, img_y1, img_y2; function set_xy_img() { img_x1 = $('#container div').offset().left; img_x2 = $('#container div').offset().left + $('#container div').width(); img_y1 = $('#container div').offset().top; img_y2 = $('#container div').offset().top + $('#container div').height(); } set_xy_img(); $(window).resize(function() { set_xy_img(); }); $(document).mousemove(function(e){ $('#container div').removeAttr('class'); // front image if (e.pageY > img_y1 && e.pageY < img_y2 && e.pageX > img_x1 && e.pageX < img_x2) { $('#container div').addClass('front'); } else // top image if (e.pageY < img_y1 && e.pageX > img_x1 && e.pageX < img_x2) { $('#container div').addClass('top'); } else // bottom image if (e.pageY > img_y2 && e.pageX > img_x1 && e.pageX < img_x2) { $('#container div').addClass('bottom'); } else // left image if (e.pageY > img_y1 && e.pageY < img_y2 && e.pageX < img_x1) { $('#container div').addClass('left'); } else // right image if (e.pageY > img_y1 && e.pageY < img_y2 && e.pageX > img_x2) { $('#container div').addClass('right'); } else // top left image if (e.pageY < img_y1 && e.pageX < img_x1) { $('#container div').addClass('top-left'); } else // top right image if (e.pageY < img_y1 && e.pageX > img_x1) { $('#container div').addClass('top-right'); } else // bottom left image if (e.pageY > img_y1 && e.pageX < img_x1) { $('#container div').addClass('bottom-left'); } else // bottom right image if (e.pageY > img_y1 && e.pageX > img_x1) { $('#container div').addClass('bottom-right'); } }); //console.log($('#container div').offset()); $('#container div').mouseover(function() { //$(this).removeAttr('class'); //$(this).addClass('front'); }); $('#container div').mouseout(function() { $(this).removeAttr('class'); $(this).addClass('top'); }); }); </script>
Now that we have all the image sets, all we have to do is check if the cursor is relative to the image. To do this I used a simple if-else operation. For every position, as seen in the code above, I tied the each class to the #container div tag. I check if the conditional .addClass in the jQuery and CSS class tally's. I also make sure the image load rapidly without a sign or blink when the image switch.
Subscribe For Free Updates!
*Please confirm the email sent to your inbox after clicking "Sign Up!".
Le chargement des images provoquent un décalage lors du premier affichage, peut être qu'un sprite serait plus adapté, mais très bonne idée !
ReplyDelete
DeleteThủ ấn của Nhạc Thành liền hơi biến đổi, hắn lập tức dùng Vô Thượng Chân Hỏa bao trùm lấy Phá Chướng Đan, lập tức mười viên nội đan dần dần thành hình.
- Thu.
Nhạc Thành cất tiếng sau đó thu hồi thủ ấn, mười viên Phá Chướng Đan đã được hắn thu vào trong nhẫn trữ vật.
đồng tâm
game mu
cho thuê nhà trọ
cho thuê phòng trọ
nhac san cuc manh
số điện thoại tư vấn pháp luật miễn phí
văn phòng luật
tổng đài tư vấn pháp luật
dịch vụ thành lập công ty trọn gói
http://we-cooking.com/
chém gió
- Tại sao lại như vậy, động tĩnh này thật sự là quá lớn.
Nhạc Thành thở ra một hơi, sau đó hắn lập tức lấy ra vài viên đan dược nhét vào trong miệng, luyện chế mười viên Phá Chướng Đan đã tốn không ít chân khí của hắn.
Nhìn một mảng bừa bộn phía trước, Nhạc Thành liền đứng dậy.
- Xoẹt.
Vài nhân ảnh đã hiện ra trước mặt Nhạc Thành, đó chính là Tô Hân Nhi, Yến Hiểu Kỳ, Hàn Nguyệt chúng nữ. Chúng nữ chạy tới gần quan tâm xem hắn có bị thương hay không.
I don't really mind you using my images, but next time it would be nice of you to ask or at least put a link to the original blog post.
ReplyDeleteBest Regards, Jan Dellsperger
Excellent article… i just came across ur blog and loving ur articles… as a newbies into blogging… its great to come across such knowledgeable blogs early in ur career to avoid some mistakes and increase chances of success… Keep up the good work dear.. cheers..
ReplyDeleteRegards,
Swapnil Kharche
It's really interesting! Thank you!!! I think it's really fun when move mouse with the music and the head move also >.<
ReplyDeleteSorry :p
IOS 10 is the tenth major release of the iOS operating system developed by Apple Inc. to use it without any restriction imposed by Apple Inc.You can download iOS 10 Jailbreak. from CydiaNerd.
ReplyDeleteImages are the best option to add life in a website. But plain simple images are now outdated. Splashy, layouts for images are the current hot trends in web designs. Read more
ReplyDeleteThank you for sharing them! I hope you will continue to have similar posts to share with everyone! I believe a lot of people will be surprised to read this article!
ReplyDeletefb login
jQuery is a compose a great deal less/accomplish more JavaScript coding dialect. On the off chance that you know JavaScript dialect, jQuery will most likely be simpler to learn. See More
ReplyDelete