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

js 分欄效果實(shí)現(xiàn)代碼

 更新時(shí)間:2009年08月29日 00:49:43   作者:  
原創(chuàng)JS分欄效果,面向?qū)ο螅?使用簡(jiǎn)單。
網(wǎng)上我也見到一些分欄效果,也有一個(gè)jquery的插件jquery.splitter.js, 但是他們基本都沒有解決一個(gè)問題:如果頁面上有iframe, 當(dāng)拖動(dòng)分割線經(jīng)過iframe的時(shí)候,鼠標(biāo)不聽使喚了,我曾經(jīng)開過帖子討論過這個(gè)問題。本例采用一個(gè)小技巧解決了這個(gè)問題,使拖動(dòng)流暢。
復(fù)制代碼 代碼如下:

<html>
<head>
<title>Splitter demo</title>
<style>
            #splitter_container{
             width: 100%;
             height: 100%;
             border: solid #eee 1px;
             margin: 0px;
             padding: 0px;
             overflow: hidden;
            }
            #splitter_left_panel{
             width: 300px;
             height: 100%;
             float: left;
             border: solid blue 0px;
            }
            #splitter_bar{
             width: 8px;
             height: 100%;
             float: left;
             background-color: #ccc;
             cursor: col-resize;
            }
            #splitter_right_panel{
             height: 100%;
             padding-top: 10px;
            }
</style>
<script>
/*
* splitter.js
* author: sunxing007
* http://blog.csdn.net/sunxing007
* date: 08/26/2009

**************************************************************************************
The css script below is needed for the html page when using splitter.js, please save
it as splitter.css, and modify it carefully.
**************************************************************************************
#splitter_container{
width: 100%;
height: 100%;
border: solid #eee 1px;
margin: 0px;
padding: 0px;
overflow: hidden;
}
#splitter_left_panel{
width: 300px;
height: 100%;
float: left;
border: solid blue 0px;
}
#splitter_bar{
width: 8px;
height: 100%;
float: left;
background-color: #ccc;
cursor: col-resize;
}
#splitter_right_panel{
height: 100%;
padding-top: 10px;
}
**************************************************************************************
How to use this splitter?
**************************************************************************************
<!--
     <html>
<head>
<title>Splitter demo</title>
<link href="splitter.css" type="text/css" rel="stylesheet" />
<script src="splitter.js"></script>
</head>
<body onload="Splitter.init({id: 'splitter_Container'});">
<div id="splitter_container">
<div id="splitter_left_panel">
left panel
<!--you can put any html code here-->
</div>
<div id="splitter_bar"></div>
<div id="splitter_right_panel">
right panel
<!--you can put any html code here-->
</div>
</div>
</body>
</html>
-->
**************************************************************************************
*/

/** this is a helper function used to get the dom element specified by id **/

function $(id){return document.getElementById(id);}

/** the main functionality of splitter **/

var Splitter = {
    container: null,
    lPanel: null,
    rPanel: null,
    bar: null,
movingBar: null,
//左面板初始,最大,最小寬度
    lPanelInitWidth: '250px',
    lPanelMaxWidth: '500px',
    lPanelMinWidth: '200px',
    rPanelInitWidth: '800px',
    rPanelMaxWidth: '999px',
    rPanelMinWidth: '500px',
    //分隔線被拖動(dòng)的時(shí)候的顏色
    barActiveColor: '#0080ff',
    //左面的面板是否設(shè)置最大/最小寬度
    isWidthLimit: true,
    init: function(config){
if(!config.id){
alert('Can not initialize splitter.');
return;
}
if($(config.id)){
this.container = $(config.id);
if(!($('splitter_left_panel')&&$('splitter_right_panel')&&$('splitter_bar'))){
alert('Can not initialize splitter.');
return;
}
else{
this.lPanel = $('splitter_left_panel');
this.rPanel = $('splitter_right_panel');
this.bar = $('splitter_bar');
}
}

if(config.lPanelMaxWidth){
this.lPanelMaxWidth = config.lPanelMaxWidth;
}
if(config.lPanelMinWidth){
this.lPanelMinWidth = config.lPanelMinWidth;
}
if(config.rPanelMaxWidth){
this.rPanelMaxWidth = config.rPanelMaxWidth;
}
if(config.rPanelMinWidth){
this.rPanelMinWidth = config.rPanelMinWidth;
}
if(config.lPanelInitWidth){
this.lPanelInitWidth = config.lPanelInitWidth;
}
if(config.rPanelInitWidth){
this.rPanelInitWidth = config.rPanelInitWidth;
}
if(config.barActiveColor){
this.barActiveColor = config.barActiveColor;
}
//alert(typeof(config.isWidthLimit));
if(config.isWidthLimit!=undefined){
this.isWidthLimit = config.isWidthLimit;
}
var mask = document.createElement('div');
document.body.appendChild(mask);
with(mask.style){
position = 'absolute';
left = '0px';
top = '0px';
zIndex = 900;
width = '100%';
height = '100%';
display = 'none';
backgroundColor = '#ccc';
filter = 'alpha(opacity=10)';
}
//background-color:red;filter:alpha(opacity=60)
Splitter.mask = mask;
this.bar.onmousedown = Splitter.start;
    },
    start: function(){
var o = Splitter.container;
o.lastMouseX = event.x;
Splitter.mask.style.display = '';
var movingBar = document.createElement('div');
Splitter.container.appendChild(movingBar);
with(movingBar.style){
position = 'absolute';
left = Splitter.bar.offsetLeft + 'px';
top = '0px';
width = Splitter.bar.currentStyle.width;
height = '100%';
backgroundColor = Splitter.barActiveColor;
zIndex = 999;
cursor = 'col-resize';
}
movingBar.dx = 0;
Splitter.movingBar = movingBar;
document.onmousemove = Splitter.move;
document.onmouseup = Splitter.end;
    },
    move: function(){
var o = Splitter.container;
var dx = event.x - o.lastMouseX;
Splitter.movingBar.dx = Splitter.movingBar.dx + dx;
var left = parseInt(Splitter.movingBar.style.left) + dx;
Splitter.movingBar.style.left = left;
o.lastMouseX = event.x;
    },
    end: function(){
document.onmousemove = null;
document.onmouseup = null;
Splitter.mask.style.display = 'none';
var dx = Splitter.movingBar.dx;
Splitter.container.removeChild(Splitter.movingBar);
var w = parseInt(Splitter.lPanel.currentStyle.width) + dx;
if(Splitter.isWidthLimit){
        var _width = (w > parseInt(Splitter.lPanelMaxWidth) ? Splitter.lPanelMaxWidth : (w < parseInt(Splitter.lPanelMinWidth) ?
Splitter.lPanelMinWidth : w));
        w = _width;
}
Splitter.lPanel.style.width = w;
    }
};
</script>
</head>
<body onload="Splitter.init({id: 'splitter_Container', isWidthLimit: true});">
    <div id="splitter_container">
            <div id="splitter_left_panel">
                <iframe frameborder="0" height="100%" id="" width="100%" src="http://m.fzitv.net"></iframe>
            </div>
            <div id="splitter_bar"></div>
            <div id="splitter_right_panel">
                    在此處右鍵察看源代碼并把其中的js保存為splitter.js<br>
                    splitter.js使用方法:<br>
                    頁面上需要有一個(gè)div作為容器(id=splitter_container): 可拖動(dòng)效果就在這個(gè)容器里面進(jìn)行<br>
                    容器里面需要有3個(gè)div,分別代表左欄(id=splitter_left_panel),分割線(id=splitter_bar), 右欄(id=splitter_right_panel)<br>
                    這4個(gè)div需要用css修飾一下<br>
                    <code>
#splitter_container{
width: 100%;
height: 100%;
border: solid #eee 1px;
margin: 0px;
padding: 0px;
overflow: hidden;
}<br>
#splitter_left_panel{
width: 300px;
height: 100%;
float: left;
border: solid blue 0px;
}<br>
#splitter_bar{
width: 8px;
height: 100%;
float: left;
background-color: #ccc;
cursor: col-resize;
}<br>
#splitter_right_panel{
height: 100%;
padding-top: 10px;
}
</code>
<br><br>
給body加上onload事件處理函數(shù),以觸發(fā)splitter: <br>
onload="Splitter.init({id: 'splitter_Container', isWidthLimit: true});" <br>
Splitter的init方法傳入一個(gè)json對(duì)象作為配置參數(shù),其中容器id是必需的.<br>
還可以配置更多的參數(shù), 比如:<br>
isWidthLimit: 可選值true, false, 設(shè)置左面板是否限制寬度;<br>
lPanelMaxWidth: 左面板最大寬度,比如: 500px;<br>
lPanelMinWidth: 左面板最小寬度,比如: 100px;<br>
barActiveColor: 分割線拖動(dòng)的時(shí)候的顏色: 比如'red', '#0080ff';<br>
更多web開發(fā)相關(guān)的內(nèi)容就在<a >blog.csdn.net/sunxing007</a>    
            </div>
    </div>
</body>
</html>

相關(guān)文章

  • javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法

    javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)Table間隔色以及選擇高亮(和動(dòng)態(tài)切換數(shù)據(jù))的方法,涉及javascript表格操作及按鈕實(shí)現(xiàn)表格切換的技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript asp.net 獲取當(dāng)前超鏈接中的文本

    JavaScript asp.net 獲取當(dāng)前超鏈接中的文本

    今天用到,不會(huì)。網(wǎng)上找到一個(gè)方法,趕快記下來??梢垣@取超鏈接的鏈接文本。
    2009-04-04
  • javascript原始值和對(duì)象引用實(shí)例分析

    javascript原始值和對(duì)象引用實(shí)例分析

    這篇文章主要介紹了javascript原始值和對(duì)象引用的方法,實(shí)例分析了javascript原始值和對(duì)象引用的功能、定義與相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • 從表單校驗(yàn)看JavaScript策略模式的使用詳解

    從表單校驗(yàn)看JavaScript策略模式的使用詳解

    這篇文章主要介紹了從表單校驗(yàn)看JavaScript策略模式的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 前端JavaScript經(jīng)典操作之?dāng)?shù)組常用方法總結(jié)

    前端JavaScript經(jīng)典操作之?dāng)?shù)組常用方法總結(jié)

    數(shù)組操作是JavaScript中非常重要也非常常用的技巧,這篇文章主要給大家介紹了關(guān)于前端JavaScript經(jīng)典操作之?dāng)?shù)組常用方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • 使用weixin-java-miniapp配置進(jìn)行單個(gè)小程序的配置詳解

    使用weixin-java-miniapp配置進(jìn)行單個(gè)小程序的配置詳解

    這篇文章主要介紹了使用weixin-java-miniapp配置進(jìn)行單個(gè)小程序的配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • js剪切板應(yīng)用clipboardData實(shí)例解析

    js剪切板應(yīng)用clipboardData實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了js剪切板應(yīng)用clipboardData實(shí)例,并分享了四種實(shí)現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • JS實(shí)現(xiàn)進(jìn)入頁面時(shí)漸變背景色的方法

    JS實(shí)現(xiàn)進(jìn)入頁面時(shí)漸變背景色的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)進(jìn)入頁面時(shí)漸變背景色的方法,涉及javascript操作css控制背景色漸變的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 最新評(píng)論

    锦屏县| 屏边| 江陵县| 桐梓县| 香港 | 南靖县| 高雄市| 台湾省| 高碑店市| 沅陵县| 益阳市| 长寿区| 茶陵县| 友谊县| 澳门| 开原市| 沿河| 电白县| 盘锦市| 久治县| 浏阳市| 焦作市| 铁岭县| 资源县| 延吉市| 定日县| 永吉县| 永城市| 德保县| 扬州市| 瓮安县| 西城区| 玉树县| 方山县| 兖州市| 墨竹工卡县| 尼勒克县| 桃园市| 伊金霍洛旗| 泾源县| 乌苏市|