Trường Thực nghiệm GDPT Tây Ninh


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

KHCN

KHCN
Thành viên xuất sắc
Thành viên xuất sắc
jQ plugin: Sticky
HomePage: http://stickyjs.com/
GitHub: https://github.com/garand/sticky

Giới thiệu & Chức năng: JQ này cung cấp cho bạn khả năng thực hiện bất kì phần tử nào trên trang web luôn ở trên cùng trang khi đã cuộn màn hình đi qua.
Điều này có thể rất tiện dụng trong trang web của bạn để trình bày một trình đơn menu hoặc thanh chia sẻ.

Cài đặt:

Code:
<!-- Thư viện JQuery -->
<script type="text/javascript" src="...jquery.js"></script>
<!-- Sticky Plugin -->
<script type="text/javascript" src="...jquery.sticky.js"></script>


Cách dùng:

Code:
$(document).ready(function(){
    $("selector").sticky({topSpacing:0}); // Id, Class của phần tử sẽ cuộn theo.
});

Ví dụ:
http://jsfiddle.net/VIFKirigayaKazuto/Qg76p/1/embedded/result,html,js/



Ứng dụng trong forumotion

ACP >> Modules >> HTML & JAVASCRIPT >> Javascript Codes >> Create a new javascript:

  • Title: Sticky Plugin
  • Placement: In all the pages
  • Javascript Code * :

    http://pastebin.com/Rza8PuyK

    Code:
    // Sticky Plugin v1.0.0 for jQuery
    // =============
    // Author: Anthony Garand
    // Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk)
    // Improvements by Leonardo C. Daronco (daronco)
    // Created: 2/14/2011
    // Date: 2/12/2012
    // Website: http://labs.anthonygarand.com/sticky
    // Description: Makes an element on the page stick on the screen as you scroll
    // It will only set the 'top' and 'position' of your element, you
    // might need to adjust the width in some cases.
     
    (function($) {
      var defaults = {
          topSpacing: 0,
          bottomSpacing: 0,
          className: 'is-sticky',
          wrapperClassName: 'sticky-wrapper',
          center: false,
          getWidthFrom: ''
        },
        $window = $(window),
        $document = $(document),
        sticked = [],
        windowHeight = $window.height(),
        scroller = function() {
          var scrollTop = $window.scrollTop(),
            documentHeight = $document.height(),
            dwh = documentHeight - windowHeight,
            extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
     
          for (var i = 0; i < sticked.length; i++) {
            var s = sticked[i],
              elementTop = s.stickyWrapper.offset().top,
              etse = elementTop - s.topSpacing - extra;
     
            if (scrollTop <= etse) {
              if (s.currentTop !== null) {
                s.stickyElement
                  .css('position', '')
                  .css('top', '');
                s.stickyElement.parent().removeClass(s.className);
                s.currentTop = null;
              }
            }
            else {
              var newTop = documentHeight - s.stickyElement.outerHeight()
                - s.topSpacing - s.bottomSpacing - scrollTop - extra;
              if (newTop < 0) {
                newTop = newTop + s.topSpacing;
              } else {
                newTop = s.topSpacing;
              }
              if (s.currentTop != newTop) {
                s.stickyElement
                  .css('position', 'fixed')
                  .css('top', newTop);
     
                if (typeof s.getWidthFrom !== 'undefined') {
                  s.stickyElement.css('width', $(s.getWidthFrom).width());
                }
     
                s.stickyElement.parent().addClass(s.className);
                s.currentTop = newTop;
              }
            }
          }
        },
        resizer = function() {
          windowHeight = $window.height();
        },
        methods = {
          init: function(options) {
            var o = $.extend(defaults, options);
            return this.each(function() {
              var stickyElement = $(this);
     
              var stickyId = stickyElement.attr('id');
              var wrapper = $('<div></div>')
                .attr('id', stickyId + '-sticky-wrapper')
                .addClass(o.wrapperClassName);
              stickyElement.wrapAll(wrapper);
     
              if (o.center) {
                stickyElement.parent().css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"});
              }
     
              if (stickyElement.css("float") == "right") {
                stickyElement.css({"float":"none"}).parent().css({"float":"right"});
              }
     
              var stickyWrapper = stickyElement.parent();
              stickyWrapper.css('height', stickyElement.outerHeight());
              sticked.push({
                topSpacing: o.topSpacing,
                bottomSpacing: o.bottomSpacing,
                stickyElement: stickyElement,
                currentTop: null,
                stickyWrapper: stickyWrapper,
                className: o.className,
                getWidthFrom: o.getWidthFrom
              });
            });
          },
          update: scroller,
          unstick: function(options) {
            return this.each(function() {
              var unstickyElement = $(this);
     
              removeIdx = -1;
              for (var i = 0; i < sticked.length; i++)
              {
                if (sticked[i].stickyElement.get(0) == unstickyElement.get(0))
                {
                    removeIdx = i;
                }
              }
              if(removeIdx != -1)
              {
                sticked.splice(removeIdx,1);
                unstickyElement.unwrap();
                unstickyElement.removeAttr('style');
              }
            });
          }
        };
     
      // should be more efficient than using $window.scroll(scroller) and $window.resize(resizer):
      if (window.addEventListener) {
        window.addEventListener('scroll', scroller, false);
        window.addEventListener('resize', resizer, false);
      } else if (window.attachEvent) {
        window.attachEvent('onscroll', scroller);
        window.attachEvent('onresize', resizer);
      }
     
      $.fn.sticky = function(method) {
        if (methods[method]) {
          return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method ) {
          return methods.init.apply( this, arguments );
        } else {
          $.error('Method ' + method + ' does not exist on jQuery.sticky');
        }
      };
     
      $.fn.unstick = function(method) {
        if (methods[method]) {
          return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method ) {
          return methods.unstick.apply( this, arguments );
        } else {
          $.error('Method ' + method + ' does not exist on jQuery.sticky');
        }
     
      };
      $(function() {
        setTimeout(scroller, 0);
      });
    })(jQuery);

    Sử dụng bằng cách tạo JS mới, thêm vào bên dưới JS trên, thêm vào thẻ <script>.
    Code:
    $(document).ready(function(){
        $("#abc").sticky({topSpacing:0}); // Id, Class của phần tử sẽ cuộn theo.
    });

Nguồn: KirigayaKazuto

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 
Sticky - Fixed khi qua top 1 cách đơn giản Flags_1