jquery.smoove.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. (function($) {
  2. $.fn.smoove = function(options) {
  3. options = $.extend({
  4. offset: 50,
  5. left: false,
  6. right: false,
  7. top: false,
  8. bottom: false,
  9. opacity: 0,
  10. transition: "margin 0.3s ease-in, opacity 0.7s ease-in"
  11. }, options);
  12. if($('body').width() == $(window).width()) $('body').css('overflow-x','hidden');
  13. var $items = $(this);
  14. function smooveIt() {
  15. $items.each(function() {
  16. params = $.extend(options, $(this).data());
  17. $(this).css({
  18. WebkitTransition : params.transition,
  19. MozTransition : params.transition,
  20. MsTransition : params.transition,
  21. OTransition : params.transition,
  22. transition : params.transition
  23. });
  24. itemtop = $(window).scrollTop() + $(window).height() - $(this).offset().top;
  25. if(itemtop < params.offset - params.top) {
  26. $(this).css({
  27. opacity: params.opacity,
  28. position: 'relative'
  29. });
  30. if(params.top) {
  31. $(this).css('margin-top', params.top);
  32. $(this).css('margin-bottom', -params.top);
  33. }
  34. else if(params.bottom) {
  35. $(this).css('margin-bottom', params.bottom);
  36. $(this).css('margin-top', -params.bottom);
  37. }
  38. if(params.left) {
  39. $(this).css('margin-left', params.left);
  40. $(this).css('margin-right', -params.left);
  41. }
  42. else if(params.right) {
  43. $(this).css('margin-right', params.right);
  44. $(this).css('margin-left', -params.right);
  45. }
  46. }
  47. else {
  48. $(this).css({
  49. opacity : 1,
  50. margin: '',
  51. position: ''
  52. });
  53. }
  54. });
  55. }
  56. $(window).scroll(function() { smooveIt(); });
  57. $(window).resize(function() { smooveIt(); });
  58. smooveIt();
  59. }
  60. })(jQuery);