最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JQuery拖動表頭邊框線調(diào)整表格列寬效果代碼

 更新時間:2014年09月10日 17:10:48   投稿:whsnow  
當(dāng)鼠標(biāo)停留在表頭邊框線上,接著拖動鼠標(biāo),會在表格中出現(xiàn)一條隨鼠標(biāo)移動的豎線,最后放開鼠標(biāo),表格列寬會被調(diào)整

類似于桌面程序中的表格拖動表頭的效果,當(dāng)鼠標(biāo)停留在表頭邊框線上時,鼠標(biāo)會變成表示左右拖動的形狀,接著拖動鼠標(biāo),會在表格中出現(xiàn)一條隨鼠標(biāo)移動的豎線,最后放開鼠標(biāo),表格列寬會被調(diào)整。最近比較空閑,便自己動手嘗試實現(xiàn),在此分享下小小的成果。

首先需要如圖所示的鼠標(biāo)圖標(biāo)文件,在自己的硬盤中搜索*.cur,肯定能找到。

為了能在所有需要該效果的頁面使用,并且不需要更改頁面任何HTML,我把所有的代碼整合在 $(document).ready(function() {}); 中,并寫入一個獨立的JS文件。

用一個1像素寬的DIV來模擬一條豎線,在頁面載入后添加到body元素中

$(document).ready(function() {
$("body").append("<div id=\"line\" style=\"width:1px;height:200px;border-left:1px solid #00000000; position:absolute;display:none\" ></div> ");
});

接下來是鼠標(biāo)移動到表格縱向邊框上鼠標(biāo)變型的問題,起初我考慮在表頭中添加一個很小的塊級元素觸發(fā)mousemove 和mouseout事件,但為了簡單起見,我還是選擇為整個表頭添加該事件。

在TH的mousemove事件中處理鼠標(biāo)變型:

$("th").bind("mousemove", function(event) {
var th = $(this);
//不給第一列和最后一列添加效果
if (th.prevAll().length <= 1 || th.nextAll().length < 1) {
return;
}
var left = th.offset().left;
//距離表頭邊框線左右4像素才觸發(fā)效果
if (event.clientX - left < 4 || (th.width() - (event.clientX - left)) < 4) {
th.css({ 'cursor': '/web/Page/frameset/images/splith.cur' });
//修改為你的鼠標(biāo)圖標(biāo)路徑
}
else {
th.css({ 'cursor': 'default' });
}
});

當(dāng)鼠標(biāo)按下時,顯示豎線,并設(shè)置它的高度,位置CSS屬性,同時記錄當(dāng)前要改變列寬的TH對象,因為一條邊框線由兩個TH共享,這里總是取前一個TH對象。

$("th").bind("mousedown", function(event) {
var th = $(this);
//與mousemove函數(shù)中同樣的判斷
if (th.prevAll().length < 1 | th.nextAll().length < 1) {
return;
}
var pos = th.offset();
if (event.clientX - pos.left < 4 || (th.width() - (event.clientX - pos.left)) < 4) {
var height = th.parent().parent().height();
var top = pos.top;
$("#line").css({ "height": height, "top": top,"left":event .clientX,"display":"" });
//全局變量,代表當(dāng)前是否處于調(diào)整列寬狀態(tài)
lineMove = true;
//總是取前一個TH對象
if (event.clientX - pos.left < th.width() / 2) {
currTh = th.prev();
}
else {
currTh = th;
}
}
});

接下來是鼠標(biāo)移動時,豎線隨之移動的效果,因為需要當(dāng)鼠標(biāo)離開TH元素也要能有該效果,該效果寫在BODY元素的mousemove函數(shù)中

$("body").bind("mousemove", function(event) {
if (lineMove == true) {
$("#line").css({ "left": event.clientX }).show();
}
});

最后是鼠標(biāo)彈起時,最后的調(diào)整列寬效果。這里我給BODY 和TH兩個元素添加了同樣的mouseup代碼。我原先以為我只需要給BODY添加mouseup函數(shù),但不明白為什么鼠標(biāo)在TH中時,事件沒有觸發(fā),我只好給TH元素也添加了代碼。水平有限,下面完全重復(fù)的代碼不知道怎么抽出來。

$("body").bind("mouseup", function(event) {
if (lineMove == true) {
$("#line").hide();
lineMove = false;
var pos = currTh.offset();
var index = currTh.prevAll().length;
currTh.width(event.clientX - pos.left);
currTh.parent().parent().find("tr").each(function() {
$(this).children().eq(index).width(event.clientX - pos.left);
});
}
});
$("th").bind("mouseup", function(event) {
if (lineMove == true) {
$("#line").hide();
lineMove = false;
var pos = currTh.offset();
var index = currTh.prevAll().length;
currTh.width(event.clientX - pos.left);
currTh.parent().parent().find("tr").each(function() {
$(this).children().eq(index).width(event.clientX - pos.left);
});
}
});

好了,只要在需要這個效果的頁面中引入包含以上代碼的JS文件,就可以為頁面中表格添加該效果。

另外以上代碼在火狐中自定義鼠標(biāo)圖標(biāo)的代碼沒出效果,所用的jquery為1.2.6

效果文件下載

————————————————————————更新——————————————

關(guān)于拖動時會選中內(nèi)容的BUG,將以下一行代碼添加到$(document).ready函數(shù)里就行了

$("body").bind("selectstart", function() { return !lineMove; });

相關(guān)文章

  • jquery簡單實現(xiàn)幻燈片的方法

    jquery簡單實現(xiàn)幻燈片的方法

    這篇文章主要介紹了jquery簡單實現(xiàn)幻燈片的方法,核心的js代碼只有9行即可實現(xiàn)幻燈切換效果,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • jQuery 特性操作詳解及實例代碼

    jQuery 特性操作詳解及實例代碼

    這篇文章主要介紹了jQuery 特性操作詳解的相關(guān)資料,并附實例代碼,需要的朋友可以參考下
    2016-09-09
  • jQuery 順便學(xué)習(xí)下CSS選擇器 奇偶匹配nth-child(even)

    jQuery 順便學(xué)習(xí)下CSS選擇器 奇偶匹配nth-child(even)

    今天學(xué)習(xí)jQuery,看到nth-child(even)用法,特意找了下這個選擇器的用法,在CSS3標(biāo)準(zhǔn)中,用法很強(qiáng)大。
    2010-05-05
  • 用jQuery技術(shù)實現(xiàn)Tab頁界面之二

    用jQuery技術(shù)實現(xiàn)Tab頁界面之二

    這個tab頁是把數(shù)據(jù)全部取回來再顯示,所以沒有數(shù)據(jù)緩存的特點。但是因為數(shù)據(jù)全部是顯示的html代碼,所以對搜索引擎是友好的,也許對seo有好處。
    2009-09-09
  • jQuery復(fù)制表單元素附源碼分享效果演示

    jQuery復(fù)制表單元素附源碼分享效果演示

    當(dāng)我們遇到提交表單時,需要我們重復(fù)添加好幾個表單,在訂單表格中添加多個不同型號的產(chǎn)品信息。這個時候有復(fù)制表單表單按鈕,也就是新增一項,通過點擊復(fù)制按鈕來實現(xiàn)新增一項,怎么實現(xiàn)的呢?下面小編跟大家分享,需要的朋友的朋友可以參考下
    2015-09-09
  • jQuery 局部div刷新和全局刷新方法總結(jié)

    jQuery 局部div刷新和全局刷新方法總結(jié)

    下面小編就為大家?guī)硪黄猨Query 局部div刷新和全局刷新方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • 基于jquery實現(xiàn)智能表單驗證操作

    基于jquery實現(xiàn)智能表單驗證操作

    這篇文章主要為大家詳細(xì)介紹了基于jquery實現(xiàn)智能表單驗證操作的相關(guān)資料,利用jquery實現(xiàn)了對一個表單字段格式的即時檢查,感興趣的小伙伴們可以參考一下
    2016-05-05
  • jQuery固定浮動側(cè)邊欄實現(xiàn)思路及代碼

    jQuery固定浮動側(cè)邊欄實現(xiàn)思路及代碼

    如果頁面比較高,當(dāng)滾動條拖到頁面的下面的時候,側(cè)邊欄會出現(xiàn)一個固定跟隨瀏覽器的DIV框,下面將思路及具體實現(xiàn)與大家分享下
    2014-09-09
  • 基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時

    基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時

    這篇文章主要介紹了基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時的方法和示例,有需要的小伙伴可以參考下
    2015-06-06
  • jQuery實現(xiàn)的上傳圖片本地預(yù)覽效果簡單示例

    jQuery實現(xiàn)的上傳圖片本地預(yù)覽效果簡單示例

    這篇文章主要介紹了jQuery實現(xiàn)的上傳圖片本地預(yù)覽效果,結(jié)合實例形式分析了jQuery上傳圖片本地預(yù)覽所涉及的相關(guān)頁面元素屬性動態(tài)操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-03-03

最新評論

太白县| 桦南县| 邻水| 台中县| 北辰区| 四会市| 松阳县| 抚宁县| 平江县| 宝鸡市| 稷山县| 许昌市| 新和县| 常熟市| 墨脱县| 江华| 许昌县| 黑水县| 伽师县| 柳河县| 彭泽县| 周至县| 海原县| 满洲里市| 封开县| 龙山县| 田林县| 海南省| 东乡| 鹤壁市| 建始县| 遂平县| 怀远县| 衡南县| 沂南县| 安庆市| 延寿县| 盐城市| 伊通| 红河县| 石泉县|