㈠ 如何用js控制項div的滾動條,讓它在內容更新時自動滾到底部
三種控制DIV內容滾動的方法:
方法一:
使用錨標記要滾動到的位置,然後通過click方法模擬點擊滾動到錨所在位置
<script language="javascript1.2" type="text/javascript">
function onGetMessage(context)
{
msg.innerHTML+=context;
msg_end.click();
}
</script>
<div style="width:500px;overflow:auto">
<div id="msg" style="overflow:hidden;width:480px;"></div>
<div><a id="msg_end" name="1" href="#1"> </a></div>
</div>
方法二:
利用DIV的scrollIntoView方法,將最底端滾動到可視位置 [list=1]<script
language="javascript1.2"
type="text/javascript">
function onGetMessage(context)
{
msg.innerHTML+=context;
msg_end.scrollIntoView();
}
</script>
<div style="width:500px;overflow:auto">
<div id="msg" style="overflow:hidden;width:480px;"></div>
<div id="msg_end" style="height:0px; overflow:hidden"></div>
</div>
方法三:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="keywords" content="滾動條, scrollbar, 頁面底部, 聊天窗口, " />
<meta name="description" content="有些時候(如開發聊天程序),我們需要將將滾動條(scrollbar)保持在最底部,比如聊天窗口,最新發出和收到的信息要顯示在最下方,如果要看到最下方的內容,就必須保證滾動條保持在最底部。" />
<title>將滾動條(scrollbar)保持在最底部的方法 - 滾動條, scrollbar, 頁面底部, 聊天窗口, </title>
</head>
<body>
<div id="example">
<h3 id="example_title">將滾動條(scrollbar)保持在最底部的方法</h3>
<div id="example_main">
<!--************************************* 實例代碼開始 *************************************-->
<script type="text/javascript">
function add()
{
var now = new Date();
var div = document.getElementById('scrolldIV');
div.innerHTML = div.innerHTML + 'time_' + now.getTime() + '<br />';
div.scrollTop = div.scrollHeight;
}
</script>
<span class="notice">請點擊「插入一行」按鈕,插入最新信息,當出現滾動條時,滾動條將自動保持在底部。</span><br />
<div id="scrolldIV" style="overflow:auto; height: 100px; width: 400px; border: 1px solid #999;">
</div>
<input type="button" value="插入一行" onclick="add();">
<!--************************************* 實例代碼結束 *************************************-->
</div>
</div>
</body>
</html>
㈡ 為什麼用插件mcustomscrollbar.js在ie7下面打開滾動條的高很短
mCustomScrollbar 這個插件的下載包裡麵包含了所有的插件文件和一些例子。其中以下的四個文件時必須要上傳到伺服器上:
jquery.mCustomScrollbar.js
jquery.mousewheel.min.js
jquery.mCustomScrollbar.css
mCSB_buttons.png
第一步:載入 mCustomScrollbar 的樣式文件。
通過下面的代碼,引入插件包中的 jquery.mCustomScrollbar.css 樣式表文件。
<linkhref="jquery.mCustomScrollbar.css"rel="stylesheet"type="text/css"/>
第二步:載入必須的 JS 文件。
需要載入的文件有如下幾個:jQuery、jQuery UI, jquery.mousewheel.min.js 和 jquery.mCustomScrollbar.js 這四個。
jQuery 和 jQuery UI 是必須的, jquery.mousewheel.min.js 是用來提供滾動支持的,jquery.mCustomScrollbar.js 則是插件的主文件。
*註:載入順序也要按照上面代碼的順序,如果不注意載入的順序,可能會導致失敗,原因請看本人的:網頁中代碼的順序是不可忽略的細節。
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<scriptsrc="jquery.mousewheel.min.js"></script>
<scriptsrc="jquery.mCustomScrollbar.js"></script>
可以把這段代碼放在文檔的底部來縮短載入網頁內容的時間。這里使用了 Google 的 CDN 加速服務來載入 jQuery 和 jQuery UI,當然你也可以把這兩個庫上傳到自己的伺服器上。另外注意下 jQuery UI 這個插件被作者精簡了,只包含這個插件必須的模塊,大小也只有 43KB。
如果當你在使用類似 Google 或者 Sina 的常用 Javascript 庫的加速服務的話,更推薦採用下面的這種 fallback 的寫法,如果 CDN 的 JavaScript 代碼沒有載入成功,就會引用本地的庫,而不會導致插件無法使用:
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script>!window.jQuery&&document.write(unescape('%3Cscriptsrc="jquery/jquery-1.7.2.min.js"%3E%3C/script%3E'))</script>
<scriptsrc="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>!window.jQuery.ui&&document.write(unescape('%3Cscriptsrc="jquery/jquery-ui-1.8.21.custom.min.js"%3E%3C/script%3E'))</script>
第三步:應用 mCustomScrollbar
<scripttype='text/javascript'>
(function($){
$(window).load(function(){
$(".content").mCustomScrollbar();
});
})(jQuery);
</script>
這里我使用了(function($){ … })(jQuery);來包裹 jQuery 代碼,這是為了避免沖突。我還用了window load ($(window).load()) 來激活我的插件功能,因為這樣,就可以保證在頁面對象全部載入完成之後,載入我的插件。當然,你也可以使用常規的 jQuery 代碼載入方法,但是你要明白 ready 和 load 方法之間的不同。一般的 jQuery 代碼載入方法如下:
<scripttype='text/javascript'>
(function($){
$(document).ready(function(){
$(".content").mCustomScrollbar();
});
})(jQuery);
</script>
第四步:在頁面中添加內容和 mCustomScrollbar 的樣式
沒有內容當然談不上出現這個插件的效果了。就上述示例代碼來說,我們應該在頁面中定義一個 class 為 content 的 內容塊。並添加一些測試數據:
<div>
<p>測試數據.......還有很多很多</p>
</div>
這樣當然不算完,自定義滾動條的樣式,必須要出現滾動條才可以,所以我們還要對這個塊加上一些 CSS 來讓它出現滾動條,否則是沒有效果的。加上的樣式很簡單,就是定義一個寬或者高或者寬高都定義,然後再定義一個 overflow 值為 auto。這樣如果內容超出了指定的寬高,就會出現一個滾動條。例:
width:100px;height:100px;overflow:auto;
完成上述的操作之後,帶有滾動條的內容塊的滾動條,就變成這個插件的默認樣式了。
㈢ html頁面滾動條樣式如何修改通過CSS、還是JS
IE是最早提供滾動條的樣式支持,好多年了,但是其它瀏覽器一直沒有支持,IE獨孤求敗了。
這些樣式規則很簡單:
scrollbar-arrow-color: color; /*三角箭頭的顏色*/
scrollbar-face-color: color; /*立體滾動條的顏色(包括箭頭部分的背景色)*/
scrollbar-3dlight-color: color; /*立體滾動條亮邊的顏色*/
scrollbar-highlight-color: color; /*滾動條的高亮顏色(左陰影?)*/
scrollbar-shadow-color: color; /*立體滾動條陰影的顏色*/
scrollbar-darkshadow-color: color; /*立體滾動條外陰影的顏色*/
scrollbar-track-color: color; /*立體滾動條背景顏色*/
scrollbar-base-color: color; /*滾動條的基色*/
webkit不再是用簡單的幾個CSS屬性,而是一坨的CSS偽元素:
-webkit-scrollbar 滾動條整體部分
-webkit-scrollbar-button 滾動條兩端的按鈕
-webkit-scrollbar-track 外層軌道
-webkit-scrollbar-track-piece 內層軌道,滾動條中間部分(除去)
-webkit-scrollbar-thumb (拖動條?滑塊?滾動條裡面可以拖動的那個,腫么翻譯好呢?)
-webkit-scrollbar-corner 邊角
-webkit-resizer 定義右下角拖動塊的樣式
通過這些偽元素,可以完全的重寫一個網站的滾動條樣式。
當然webkit提供的不止這些,還有很多偽類,可以更豐富滾動條樣式:
:horizontal – horizontal偽類應用於水平方向的滾動條
:vertical – vertical偽類應用於豎直方向的滾動條
:decrement – decrement偽類應用於按鈕和內層軌道(track piece)。它用來指示按鈕或者內層軌道是否會減小視窗的位置(比如,垂直滾動條的上面,水平滾動條的左邊。)
:increment – increment偽類和decrement類似,用來指示按鈕或內層軌道是否會增大視窗的位置(比如,垂直滾動條的下面和水平滾動條的右邊。)
:start – start偽類也應用於按鈕和滑塊。它用來定義對象是否放到滑塊的前面。
:end – 類似於start偽類,標識對象是否放到滑塊的後面。
:double-button – 該偽類以用於按鈕和內層軌道。用於判斷一個按鈕是不是放在滾動條同一端的一對按鈕中的一個。對於內層軌道來說,它表示內層軌道是否緊靠一對按鈕。
:single-button – 類似於double-button偽類。對按鈕來說,它用於判斷一個按鈕是否自己獨立的在滾動條的一段。對內層軌道來說,它表示內層軌道是否緊靠一個single-button。
:no-button – 用於內層軌道,表示內層軌道是否要滾動到滾動條的終端,比如,滾動條兩端沒有按鈕的時候。
:corner-present – 用於所有滾動條軌道,指示滾動條圓角是否顯示。
:window-inactive – 用於所有的滾動條軌道,指示應用滾動條的某個頁面容器(元素)是否當前被激活。(在webkit最近的版本中,該偽類也可以用於::selection偽元素。webkit團隊有計劃擴展它並推動成為一個標準的偽類)
另外,:enabled、:disabled、:hover 和 :active 等偽類同樣可以用於滾動條中。
㈣ 手機網站上下滑動效果是用js還是什麼做的
1:使用js的插件 目前主流的js庫 比如jq 也有手勢的插件,
2:還有移動端的zepto庫 也有手勢插件,
3:另外還有個叫QuoJS的手勢插件 這個插件不依賴任何的庫,
4:早期的應該是用wml語言支持的WMLScript實現。
5:舉例:使用iscroll.js實現
1)下載iScroll.js,網路搜索iScroll.js下載即可
2)引入iScroll.js,在要使用滑動效果的地方,引入iScroll.js文件
3)編寫規范的html格式
只有如下格式才能實現滑動效果
<div id="wrapper">
<div class="scroll">
這個區域可以滑動
</div>
</div>
如下格式不能滑動
<div id="wrapper">
<div class="other">這個區域可以滑動</div>
<div class="scroll">
這個區域不可以滑動了
</div>
</div>
只有wrapper的第一個子元素才能實現滑動效果。
4)編寫js調用代碼
var Scroll = new iScroll('wrapper',{hScrollbar:false, vScrollbar:false});
第一參數必需是滑動元素的父元素的id。
主要參數一覽:
hScroll: true, 左右滑動,默認為true
vScroll: true,上下滑動
hScrollbar: true, 是否顯示y軸滾動條,默認為顯示
vScrollbar: true,是否顯示X軸滾動條,默認為顯示