JS+CSS文章查看系統

這是我在CSDN上看到的一篇文章中寫到的:

 

電腦上看文章比較喫力主要原因有以下兩點:

1.這一點最重要:電腦屏幕大。同樣長度的文字,在電腦上可能拉得很寬,但是行數很少,是一個大長條;在手機上就是一個方塊。因此,在電腦上看,人的眼球需要轉動很大的幅度才能讀完一行;而手機上,對於母語漢語來說,可以一掃而過,閱讀速度大大提高。其實看紙質文本也是一個道理,我們平時看雜誌讀報紙,沒有哪一頁不分欄吧?

2.在電腦上讀網頁上的文字,很容易分散注意力,因爲到處都是超鏈接,經常要抵禦去點它們的衝動,而且看上去很亂。而手機閱讀純文本要簡單得多,我們的注意力可以集中在文字以及其所要表達的意義。不過這一點通過控制自己是可以做到的。

3.網頁北京色一般爲白色,而字體爲黑色,對比度過於強烈損傷視力,而且字體大小樣式等不可以重設影響閱讀效果。

 

 

自己寫了個JS+CSS的小東西,用來看提升用戶體驗的。

NameWindowsTextShow

做成一個連接:點擊後執行JavaScript函數;

Function: WindowsTextShow(Id  div.id);

div.id 爲要展示文本的divID

 

代碼如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.     <title>Untitled Page</title>
  5.         <style type="text/css">
  6.         #divback
  7.         {
  8.             width: 100%;
  9.             height: expression(body.scrollHeight);
  10.             background-color: #000;
  11.             position: absolute;
  12.             top: 0;
  13.             left: 0;
  14.             z-index: 49;
  15.             display: none;
  16.             filter: progid:DXImageTransform.Microsoft.Alphaopacity=25;
  17.             filter: alpha(opacity=55);
  18.         }
  19.         .WindowsTextShow
  20.         {
  21.             top: expression(documentElement.scrollTop + 50);
  22.             left: 50px;
  23.             height: expression(documentElement.clientHeight - 50*2);
  24.             width: expression(body.clientWidth-50*2);
  25.             position: absolute;
  26.             z-index: 50;
  27.             color: Black;
  28.             border: 3px solid #E5E5E5;
  29.             background-color: #F0F0F0;
  30.         }
  31.         .WindowsTextShowFull
  32.         {
  33.             top: expression(documentElement.scrollTop);
  34.             left: 0px;
  35.             height: 100%;
  36.             width: 100%;
  37.             position: absolute;
  38.             z-index: 50;
  39.             border: 3px solid #E5E5E5;
  40.             background-color: #F0F0F0;
  41.         }
  42.         #textContent
  43.         {
  44.             padding: 5px;
  45.             height: 80%;
  46.             overflow: auto;
  47.             line-height: normal;
  48.             font-size: 14px;
  49.             color: Black;
  50.             background-color: White;
  51.         }
  52.         #ctrlSet
  53.         {
  54.             font-size: 12px;
  55.         }
  56.         .ctrlSetState
  57.         {
  58.             display: block;
  59.         }
  60.     </style>
  61.     <script charset="GB2312" language="javascript" type="text/javascript">
  62.         var ocolorPopup = window.createPopup();
  63.         var ecolorPopup = null;
  64.         var isfullScreen = false;
  65.         var isRunning = false;
  66.         var isCtrlSetShow = true;
  67.         var div_box = document.createElement("DIV");
  68.         var div_back = document.createElement("DIV");
  69.         var textwindowtop = 50 + document.documentElement.scrollTop;
  70.         var textwindowleft = 50;
  71.         function colordialogmouseout(obj) {
  72.             obj.style.borderColor = "";
  73.             obj.bgColor = "";
  74.         }
  75.         function colordialogmouseover(obj) {
  76.             obj.style.borderColor = "#0A66EE";
  77.             obj.bgColor = "#EEEEEE";
  78.         }
  79.         function colordialogmousedown(color) {
  80.             ecolorPopup.value = color;
  81.             if (GetRadioValue("colorType") == "textColor") {
  82.                 textContent.style.color = color;
  83.             }
  84.             else if (GetRadioValue("colorType") == "textbackColor") {
  85.                 textContent.style.backgroundColor = color;
  86.             }
  87.             else {
  88.                 divback.style.backgroundColor = color;
  89.             }
  90.             ocolorPopup.document.body.blur();
  91.         }
  92.         function colorset() {
  93.             if (window.event.keyCode == 13) {
  94.                 if (iscolor()) {
  95.                     ecolorPopup.value = document.getElementById("setcolorbox").value;
  96.                     if (GetRadioValue("colorType") == "textColor") {
  97.                         textContent.style.color = ecolorPopup.value;
  98.                     }
  99.                     else if (GetRadioValue("colorType") == "textbackColor") {
  100.                         textContent.style.backgroundColor = ecolorPopup.value;
  101.                     }
  102.                     else {
  103.                         divback.style.backgroundColor = ecolorPopup.value;
  104.                     }
  105.                 }
  106.                 ocolorPopup.document.body.blur();
  107.             }
  108.         }
  109.         function iscolor() {
  110.             var pattern = /^#[0-9a-fA-F]{6}$/
  111.             var objvalue = document.getElementById("setcolorbox").value;
  112.             if (objvalue.match(pattern) != null) {
  113.                 return true;
  114.             }
  115.             else {
  116.                 return false;
  117.             }
  118.         }
  119.         function colordialogmore() {
  120.             var sColor = dlgHelper.ChooseColorDlg(ecolorPopup.value);
  121.             sColorsColor = sColor.toString(16);
  122.             if (sColor.length < 6) {
  123.                 var sTempString = "000000".substring(0, 6 - sColor.length);
  124.                 sColor = sTempString.concat(sColor);
  125.             }
  126.             ecolorPopup.value = "#" + sColor.toUpperCase();
  127.             //document.body.bgColor="#"+sColor.toUpperCase(); 
  128.             ocolorPopup.document.body.blur();
  129.         }
  130.         function colordialog() {
  131.             var e = event.srcElement;
  132.             e.onkeyup = colordialog;
  133.             eecolorPopup = e;
  134.             var ocbody;
  135.             var oPopBody = ocolorPopup.document.body;
  136.             var colorlist = new Array(40);
  137.             var colordialogw = 158;
  138.             var colordialogh = 147
  139.             var colordialogx = e.offsetLeft + textwindowleft - 7;
  140.             var colordialogy = e.offsetTop + textwindowtop - colordialogh - 10;
  141.             oPopBody.style.backgroundColor = "#f9f8f7";
  142.             oPopBody.style.border = "solid #999999 1px";
  143.             oPopBody.style.fontSize = "12px";
  144.             colorlist[0] = "#000000"; colorlist[1] = "#993300"; colorlist[2] = "#333300"; colorlist[3] = "#003300";
  145.             colorlist[4] = "#003366"; colorlist[5] = "#000080"; colorlist[6] = "#333399"; colorlist[7] = "#333333";
  146.             colorlist[8] = "#800000"; colorlist[9] = "#FF6600"; colorlist[10] = "#808000"; colorlist[11] = "#008000";
  147.             colorlist[12] = "#008080"; colorlist[13] = "#0000FF"; colorlist[14] = "#666699"; colorlist[15] = "#808080";
  148.             colorlist[16] = "#FF0000"; colorlist[17] = "#FF9900"; colorlist[18] = "#99CC00"; colorlist[19] = "#339966";
  149.             colorlist[20] = "#33CCCC"; colorlist[21] = "#3366FF"; colorlist[22] = "#800080"; colorlist[23] = "#999999";
  150.             colorlist[24] = "#FF00FF"; colorlist[25] = "#FFCC00"; colorlist[26] = "#FFFF00"; colorlist[27] = "#00FF00";
  151.             colorlist[28] = "#00FFFF"; colorlist[29] = "#00CCFF"; colorlist[30] = "#993366"; colorlist[31] = "#CCCCCC";
  152.             colorlist[32] = "#FF99CC"; colorlist[33] = "#FFCC99"; colorlist[34] = "#FFFF99"; colorlist[35] = "#CCFFCC";
  153.             colorlist[36] = "#CCFFFF"; colorlist[37] = "#99CCFF"; colorlist[38] = "#CC99FF"; colorlist[39] = "#FFFFFF";
  154.             ocbody = "";
  155.             ocbody += "<table CELLPADDING=0 CELLSPACING=3>";
  156.             ocbody += "<tr height=/"20/" width=/"20/"><td align=/"center/"><table style=/"border:1px solid #808080;/" width=/"12/" height=/"12/" bgcolor=/"" + e.value + "/"><tr><td></td></tr></table></td><td bgcolor=/"eeeeee/" colspan=/"7/" style=/"font-size:12px;/" align=/"center/">當前顏色</td></tr>";
  157.             for (var i = 0; i < colorlist.length; i++) {
  158.                 if (i % 8 == 0)
  159.                     ocbody += "<tr>";
  160.                 ocbody += "<td width=/"14/" height=/"16/" style=/"border:1px solid;/" onMouseOut=/"parent.colordialogmouseout(this);/" onMouseOver=/"parent.colordialogmouseover(this);/" onMouseDown=/"parent.colordialogmousedown('" + colorlist[i] + "')/" align=/"center/" valign=/"middle/"><table style=/"border:1px solid #808080;/" width=/"12/" height=/"12/" bgcolor=/"" + colorlist[i] + "/"><tr><td></td></tr></table></td>";
  161.                 if (i % 8 == 7)
  162.                     ocbody += "</tr>";
  163.             }
  164.             //ocbody += "<tr><td align=/"center/" height=/"22/" colspan=/"8/" onMouseOut=/"parent.colordialogmouseout(this);/" onMouseOver=/"parent.colordialogmouseover(this);/" style=/"border:1px solid;font-size:12px;cursor:default;/" onMouseDown=/"parent.colordialogmore()/">其它顏色...</td></tr>";
  165.             ocbody += "</table>";
  166.             oPopBody.innerHTML = ocbody;
  167.             ocolorPopup.show(colordialogx, colordialogy, colordialogw, colordialogh, document.body);
  168.         }
  169.         //-->
  170.         function WindowsTextShow(divid) {
  171.             if (!isRunning) {
  172.                 WindowsTextInit(divid);
  173.                 isRunning = true;
  174.             }
  175.             SetWindows();
  176.         }
  177.         function SetWindows() {
  178.             textwindowtop = 50 + document.documentElement.scrollTop;
  179.             textwindowleft = 50;
  180.             div_back.style.display = 'block';
  181.             div_back.style.visibility = 'visible';
  182.             div_box.style.display = 'block';
  183.             div_box.className = "WindowsTextShow";
  184.         }
  185.         function RefreshWin() {
  186.             textwindowtop = 50 + document.documentElement.scrollTop;
  187.             textwindowleft = 50;
  188.         }
  189.         function WindowsTextInit(divid) {
  190.             var div_ctrlSet = document.createElement("DIV");
  191.             var div_textContent = document.createElement("DIV");
  192.             div_ctrlSet.id = "ctrlSet";
  193.             div_textContent.id = "textContent";
  194.             div_box.id = "WindowsTextShow";
  195.             div_box.className = "WindowsTextShow";
  196.             div_back.id = "divback";
  197.             WindowsTextAddObj(div_box, div_textContent);
  198.             WindowsTextAddObj(div_box, div_ctrlSet);
  199.             SetObjContent(div_textContent, document.getElementById(divid).innerHTML);
  200.             SetObjContent(div_ctrlSet, "<div id='typeSet'>選擇更改項:<input checked='checked' name='colorType' type='radio' value='textColor' />文字<input name='colorType' type='radio' value='textbackColor' />背景<input name='colorType' type='radio' value='backGroundColor' />遮蓋物</div>");
  201.             SetObjContent(div_ctrlSet, "<div id='colorSet'>選擇顏色:<input id='setcolorbox' name='sel1' type='text' onkeydown='colorset()' onfocus='colordialog()'/></div>");
  202.             SetObjContent(div_ctrlSet, "<div id='fontSizeSet'>選擇字體:<select name='select' id='fontslt' onChange='SetFont(textContent)'><option selected>選擇閱讀字體</option></select></div>");
  203.             SetObjContent(div_ctrlSet, "<div id='fullScreenSet'>全屏切換:<input type='button' onclick='FullScreen()' id='fullScreen' name='fullScreen' value='FullScreen'/></div>");
  204.             SetObjContent(div_ctrlSet, "<div id='hiddenCtrSet'>隱藏設置:<input type='button' onclick='HiddenCtrlSet()' name='HiddenCtrlSet' value='HiddenCtrlSet'/></div>");
  205.             SetObjContent(div_ctrlSet, "<div id='closeSet'>關閉窗口:<input type='button' onclick='CloseWindows()' name='CloseWindows' value='CloseWindows'/></div>");
  206.             document.body.appendChild(div_back);
  207.             document.body.appendChild(div_box);
  208.             SelectAddObj();
  209.         }
  210.         function HiddenCtrlSet() {
  211.             if (isCtrlSetShow) {
  212.                 document.getElementById("typeSet").style.display = "none";
  213.                 document.getElementById("colorSet").style.display = "none";
  214.                 document.getElementById("fontSizeSet").style.display = "none";
  215.                 document.getElementById("fullScreenSet").style.display = "none";
  216.                 isCtrlSetShow = false;
  217.             }
  218.             else {
  219.                 document.getElementById("typeSet").style.display = "block";
  220.                 document.getElementById("colorSet").style.display = "block";
  221.                 document.getElementById("fontSizeSet").style.display = "block";
  222.                 document.getElementById("fullScreenSet").style.display = "block";
  223.                 isCtrlSetShow = true;
  224.             }
  225.         }
  226.         function FullScreen() {
  227.             if (isfullScreen) {
  228.                 isfullScreen = false;
  229.                 textwindowtop += 50;
  230.                 textwindowleft += 50;
  231.                 div_box.className = "WindowsTextShow";
  232.                 document.getElementById("fullScreen").value = "FullScreen";
  233.             }
  234.             else {
  235.                 isfullScreen = true;
  236.                 textwindowtop -50;
  237.                 textwindowleft -50;
  238.                 div_box.className = "WindowsTextShowFull";
  239.                 document.getElementById("fullScreen").value = "DefaultScreen";
  240.             }
  241.         }
  242.         function GetIEHeight() //函數:獲取尺寸
  243.         {
  244.             var winHeight = 0;
  245.             if (window.innerHeight)
  246.                 winHeight = window.innerHeight;
  247.             else if ((document.body) && (document.body.clientHeight))
  248.                 winHeight = document.body.clientHeight;
  249.             if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
  250.                 winHeight = document.documentElement.clientHeight;
  251.             }
  252.             return winHeight;
  253.         }
  254.         function GetRadioValue(ids) {
  255.             var obj = document.getElementsByName(ids);
  256.             for (var i = 0; i < obj.length; i++) {
  257.                 if (obj[i].checked) {
  258.                     return obj[i].value;
  259.                 }
  260.             }
  261.         }
  262.         function SetFont(winid) {
  263.             if ((fontslt.selectedIndex != -1) && (fontslt.selectedIndex != 0)) {
  264.                 winid.style.fontSize = fontslt.options[fontslt.selectedIndex].value;
  265.             }
  266.         }
  267.         function SelectAddObj() {
  268.             for (i = 9; i < 51; i++) {
  269.                 var varItem = new Option(i + "pt字體", i);
  270.                 document.getElementById("fontslt").options.add(varItem);
  271.             }
  272.         }
  273.         function SetObjContent(ids, obj) {
  274.             ids.innerHTML += obj;
  275.         }
  276.         function WindowsTextAddObj(ids, obj) {
  277.             ids.appendChild(obj);
  278.         }
  279.         function CloseWindows() {
  280.             div_back.style.display = 'none';
  281.             div_box.style.display = 'none';
  282.             div_box.className = "WindowsTextShow";
  283.             div_back.style.visibility = 'hidden';
  284.             isfullScreen = false;
  285.             document.getElementById("fullScreen").value = "FullScreen";
  286.         }    
  287.     </script>
  288. </head>
  289. <body>
  290. <div style=" width:900px; height:1400px; background-color:Gray; margin:0 auto;">
  291.     <div style=" height:100px; background-color:Red;"></div>
  292.     <div style=" height:1200px; background-color:Black;">
  293.         <div style="width:75%; float:left;">
  294.             <div style="height:100px; background-color:Blue;">
  295.             《跑跑卡丁車》國內運營商裁員超30%
  296.             <a href="javascript:WindowsTextShow('textBox')">看文字</a>
  297.             </div>
  298.             <div id="textBox" style="height:1100px; background-color:White;">
  299.                 卡丁車“熄火” 網遊冬意漸增
  300.   本報記者 劉方遠 
  301.   畢業生小王(化名)近日陷入了找工作的奔波之中。不久前,他還以爲投身號稱“反經濟週期”的網遊行業,能讓他在這輪寒冬中得以自保。
  302.   “公司從這個月初開始裁減人員,陸陸續續幾批共約一百多人,佔公司總人數的30%到40%。”小王是樂線軟件開發(上海)有限公司今年新招的員工,該公司是韓國網遊廠商Nexon在中國的分公司,旗下有《跑跑卡丁車》等知名網絡遊戲。
  303.   據悉,《跑跑卡丁車》在國內休閒遊戲領域一直名列前茅,爲運營商帶來的收入相當可觀。由於網遊對金融環境具有避風港效應,此前,國內網遊廠商紛紛對該行業表示了樂觀,樂線軟件爲何在此刻選擇了大幅度“瘦身”?
  304.   12月24日,記者就此事向樂信軟件求證,樂線軟件管理中心一位韓方負責人向記者表示,公司目前不便對此進行表態。
  305.   戰線調整?
  306.   樂信軟件的母公司Nexon在國內小有名氣,早年盛大網絡代理的休閒遊戲《泡泡堂》便是出自Nexon之手。看到《泡泡堂》在中國市場的巨大成功後,Nexon隨後放棄了與盛大合作,獨立成立了樂信軟件在中國運營《跑跑卡丁車》等休閒遊戲。
  307.   據網遊業界知情人士介紹,《跑跑卡丁車》現在的運營平臺名爲世紀天成,由上海郵通和樂線軟件共同搭建,“外界所知的‘世紀天成’實際控制方便是樂線軟件。”除了《跑跑卡丁車》外,世紀天成運營的遊戲還有《洛奇》、《新天翼之鏈》、《天關戰紀》、《反恐精英Online》等。
  308.   《洛奇》是在國內上線的第一款遊戲,但反應平平,但自2006年正式在國內推出《跑跑卡丁車》以來,公司開始出現轉機。一位網遊業內人士告訴記者,僅跑跑卡丁車一款遊戲,最高一個月就能帶來近千萬收入,不過世紀天成的其它遊戲市場表現仍很一般。
  309.   12月12日,世紀天成在《天關戰紀》及《新天翼之鏈》這兩款網遊官網上同時發出了“終止運營公告”,稱這兩款遊戲的所有服務器都將於12月30日10:00關閉。
  310.   對此,小王告訴記者,這也許就是公司此次縮減員工的原因,因爲一些老遊戲業績下滑,公司要轉型,加上還有新遊戲要上線,所以要做大規模調整。
  311.   另有知情人士告訴記者,世紀天成此次的人員調整涉及大量中高層人員,“很多第一批做《洛奇》、《卡丁車》的人都走了,可能是韓方因經濟危機進行的調整。”
  312.   據悉,《反恐精英Online》便是世紀天成近期上市測試的一款新遊戲,“雖然這款遊戲在韓國的表現並不好,但由於國內有比韓國更多的CS玩家基礎,因此這款遊戲被他們寄予厚望。”
  313.   網遊有沒有冬天?
  314.   事實上,一些國際級遊戲巨頭也開始了“瘦身”。
  315.   12月開始,美國知名遊戲開發商EA(藝電)公司宣佈,公司將再裁員400人,加上10月份的裁員計劃,裁員人數將達1000人,約佔員工總數的10%。
  316.   不過,業內專家認爲,由於EA主要仍是依靠傳統的單機遊戲模式,並且面對的是西方成熟市場,因此受經濟環境影響較大,而中國的網絡遊戲市場由於還處在增長階段,因此受到衝擊較小。
  317.   對此,盛大、巨人、第九城市等方面都向記者表達了類似的觀點——網遊屬於廉價娛樂,經濟危機導致的收入下降,短期內不太可能影響低消費的娛樂項目,因此並沒有看到市場大幅萎縮。
  318.   “對已經上市的大網遊企業而言,這輪經濟形勢帶來的影響並不大,一是因爲產品已經比較成熟,二是有充足的資金。”第九城市總裁陳曉薇向記者表示,目前九城的重點就是實施多元化的產品策略,完善針對不同需求的分散依賴單一產品線的風險。
  319.   據市場調查公司艾瑞諮詢稱,中國網絡遊戲運營商在今年第三季度的收入總和同比增長了50%以上,達到近8億美元,同時本季度網絡遊戲市場的增長勢頭仍很強勁。
  320.   不過,對於沒有上市的中小網遊廠商而言,日子確實開始變得難過起來,因爲小工作室很難再拿到投資,進一步的研發投入斷糧後,小工作室的未來將難以爲繼。一家中型網遊公司的負責人告訴記者,“近期一些大的擴張計劃都暫時擱淺了,只能依靠已有的遊戲維持現狀。”
  321.             </div>
  322.         </div>
  323.         <div style="width:25%; float:left;"></div>
  324.     </div>
  325.     <div style=" height:100px; background-color:Red;"></div>
  326. </div>
  327. </body>
  328. </html>

其實像CSDN這種文章類網站完全應該採用一下,挺實用的。

下面是我做的兩個演示,其中一個借用CSDN網站,可以看看如果CSDN加上後的效果。

http://bbs.blueidea.com/thread-2904382-1-1.html

大家可以試試,現在只支持IE我是在IE7下做的,有興趣的自己可以做css hack,讓他支持更多的瀏覽器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章