DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> 使用CSS樣式position:fixed水平滾動的方法
使用CSS樣式position:fixed水平滾動的方法
編輯:JavaScript綜合知識     

 這篇文章主要介紹了使用CSS樣式position:fixed水平滾動的方法,需要的朋友可以參考下

使用CSS樣式"position:fixed"可以使div塊固定在一個固定位置,即使有滾動條也不會改變其位置。position:fixed給很多開發者帶來了驚艷的效果,然而當出現水平滾動條時,效果就不那麼容易接受了。有時候我們希望當出現水平滾動條時,div塊可以隨滾動條左右移動,實現垂直固定定位(fixed),水平相對定位(absolute)。本文提供一個解決方法,附jquery擴展源碼。    本文的實現方式是使用js來控制div塊隨滾動條水平滾動,原理就是當window對象發生scroll事件和resize事件使,更新div塊的left或right的值,使其相對浏覽器左邊或右邊的位置實時改變。div塊需要時position:fixed樣式修飾。    當div塊在水平方向上是相對浏覽器右邊固定的,那麼當window對象發生scroll或resize事件時,就更新其right樣式值,其值應該是:  復制代碼 代碼如下: var new_right = ($(window).scrollLeft() + $(window).width() - $(document).width() + original_right) + 'px'    當div塊在水平方向上是相對浏覽器左邊固定的,那麼當window對象發生scroll或resize事件時,就更新其left樣式值,其值應該是:   代碼如下: var new_left = (original_left - $(window).scrollLeft()) + 'px'    上面代碼中出現的original_left和original_right是最初div塊的left和right值。完整的jquery擴展代碼如下:   代碼如下: (function($){  $.ScrollFixed = function(el, options){  var base = this;  base.$el = $(el);  base.el = el;  var target = base.$el;  var original_left = parseInt(target.css('left'));  var original_right = parseInt(target.css('right'));    var _fix_position = function(){  if(base.options.fixed == 'right'){  target.css('right', ($(window).scrollLeft() + $(window).width() - $(document).width() + original_right) + 'px');  } else if(base.options.fixed == 'left'){  target.css('left', (original_left - $(window).scrollLeft()) + 'px');  }  };    var windowResize = function(){  _fix_position();  };    var windowScroll = function(){  _fix_position();  };    base.init = function(){  base.options = $.extend({}, $.ScrollFixed.defaultOptions, options);  $(window).resize(windowResize);  $(window).scroll(windowScroll);  _fix_position();  console.log(base.options.fixed);  };    base.init();  };    $.ScrollFixed.defaultOptions = {  fixed:'left'  };    $.fn.scrollFixed = function(options){  return this.each(function(){  (new $.ScrollFixed(this, options));  });  };  })(jQuery);    使用實例:  代碼如下: $('#leftsider').scrollFixed({fixed:'left'});  $('#rightsider').scrollFixed({fixed:'right'});   
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved