欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用CSS樣式position:fixed水平滾動(dòng)的方法

 更新時(shí)間:2014年02月19日 16:23:12   作者:  
這篇文章主要介紹了使用CSS樣式position:fixed水平滾動(dòng)的方法,需要的朋友可以參考下
使用CSS樣式"position:fixed"可以使div塊固定在一個(gè)固定位置,即使有滾動(dòng)條也不會(huì)改變其位置。position:fixed給很多開(kāi)發(fā)者帶來(lái)了驚艷的效果,然而當(dāng)出現(xiàn)水平滾動(dòng)條時(shí),效果就不那么容易接受了。有時(shí)候我們希望當(dāng)出現(xiàn)水平滾動(dòng)條時(shí),div塊可以隨滾動(dòng)條左右移動(dòng),實(shí)現(xiàn)垂直固定定位(fixed),水平相對(duì)定位(absolute)。本文提供一個(gè)解決方法,附j(luò)query擴(kuò)展源碼。

本文的實(shí)現(xiàn)方式是使用js來(lái)控制div塊隨滾動(dòng)條水平滾動(dòng),原理就是當(dāng)window對(duì)象發(fā)生scroll事件和resize事件使,更新div塊的left或right的值,使其相對(duì)瀏覽器左邊或右邊的位置實(shí)時(shí)改變。div塊需要時(shí)position:fixed樣式修飾。

當(dāng)div塊在水平方向上是相對(duì)瀏覽器右邊固定的,那么當(dāng)window對(duì)象發(fā)生scroll或resize事件時(shí),就更新其right樣式值,其值應(yīng)該是:
復(fù)制代碼 代碼如下:

var new_right = ($(window).scrollLeft() + $(window).width() - $(document).width() + original_right) + 'px'

當(dāng)div塊在水平方向上是相對(duì)瀏覽器左邊固定的,那么當(dāng)window對(duì)象發(fā)生scroll或resize事件時(shí),就更新其left樣式值,其值應(yīng)該是:
復(fù)制代碼 代碼如下:

var new_left = (original_left - $(window).scrollLeft()) + 'px'

上面代碼中出現(xiàn)的original_left和original_right是最初div塊的left和right值。完整的jquery擴(kuò)展代碼如下:
復(fù)制代碼 代碼如下:

(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);

使用實(shí)例:
復(fù)制代碼 代碼如下:

$('#leftsider').scrollFixed({fixed:'left'});
$('#rightsider').scrollFixed({fixed:'right'});

相關(guān)文章

最新評(píng)論