2017.11.15 表格的樣式設(shè)定、AuguarJS服務(wù)和依賴注入、String 方法、_main__.py文件與 python -m、JS刷新頁(yè)面

第一組:楊昊 有關(guān)表格的樣式設(shè)定問(wèn)題——固定頭、列

前幾天接到的任務(wù)中,有這樣一個(gè)需求:就是表單的頭部、首列需要固定,不要隨著滾動(dòng)條的變化而移動(dòng),如下:


image.png

去網(wǎng)上查了一下,這種操作主要是css方面的,方法有很多,但是都逃不過(guò)兩個(gè)屬性:

position: relative; 
z-index:99;

position屬性:規(guī)定元素的定位類型,relative是指生成相對(duì)定位的元素,相對(duì)于其正常位置進(jìn)行定位。比如"left:20" 會(huì)向元素的 left 位置添加 20 像素。

z-index屬性:設(shè)置元素的堆疊順序。擁有更高堆疊順序的元素總是會(huì)處于堆疊順序較低的元素的前面。其中,元素可擁有負(fù)的 z-index 屬性值。z-index 僅能在定位元素上奏效。

我在實(shí)現(xiàn)這個(gè)操作時(shí)使用的是jQuery的方式,將樣式動(dòng)態(tài)注入。代碼如下:

image.png

附代碼:

首列固定

    $(".table-p").scroll(function () {
        if ($(".table-p").scrollTop() > 0) {
            var Htable_flinew2 = $(".table-p").scrollTop() + "px";
            $(".tdwid2").css("position", "relative");
            $(".tdwid2").css("background", "#fff");
            $(".tdwid2").css("top", Htable_flinew2);
        } else {
            $(".tdwid2").css("top", "0");
        }
        if ($(".table-p").scrollLeft() > 0) {
            var Htable_flinew = $(".table-p").scrollLeft() + "px";
            $(".table tbody tr td:first-child").css("left", Htable_flinew);
            $(".table thead tr th:first-child").css("left", Htable_flinew);
        } else {
            $(".table tbody tr td:first-child").css("left", "0");
            $(".table thead tr th:first-child").css("left", "0");
        }            
    })

第二組:馮佳麗 使用ng-repeat指令來(lái)循環(huán)圖片數(shù)組并且加入img模板、AuguarJS服務(wù)和依賴注入、 scopes

1. 使用ng-repeat指令來(lái)循環(huán)圖片數(shù)組并且加入img模板
function AlbumCtrl($scope) {
    scope.images = [
        {"image":"img/image_01.png", "description":"Image 01 description"},
        {"image":"img/image_02.png", "description":"Image 02 description"},
        {"image":"img/image_03.png", "description":"Image 03 description"},
        {"image":"img/image_04.png", "description":"Image 04 description"},
        {"image":"img/image_05.png", "description":"Image 05 description"}
    ];
}
<div ng-controller="AlbumCtrl">
  <ul>
    <li ng-repeat="image in images">
      <img ng-src="http://m.cnblogs.com/142260/{{image.thumbnail}}" rel="nofollow"/>
    </li>
  </ul>
</div>
2. AuguarJS服務(wù)和依賴注入
function EditCtrl($scope, $location, $routeParams) {
     // Something clever here...
}

定義自己的服務(wù)并且讓它們注入:

angular.module('MyServiceModule', []).
    factory('notify', ['$window', function (win) {
    return function (msg) {
        win.alert(msg);
    };
}]);
function myController(scope, notifyService) {
    scope.callNotify = function (msg) {
        notifyService(msg);
    };
}
myController.$inject = ['$scope', 'notify']; 
3. scopes

$scope是一個(gè)把view(一個(gè)DOM元素)連結(jié)到controller上的對(duì)象。在我們的MVC結(jié)構(gòu)里,這個(gè) $scope 將成為model,它提供一個(gè)綁定到DOM元素(以及其子元素)上的excecution context。

$scope 實(shí)際上就是一個(gè)JavaScript對(duì)象,controller和view都可以訪問(wèn)它,所以我們可以利用它在兩者間傳遞信息。在這個(gè) $scope 對(duì)象里,我們既存儲(chǔ)數(shù)據(jù),又存儲(chǔ)將要運(yùn)行在view上的函數(shù)。

每一個(gè)Angular應(yīng)用都會(huì)有一個(gè) $rootScope。這個(gè) $rootScope 是最頂級(jí)的scope,它對(duì)應(yīng)著含有ng-app 指令屬性的那個(gè)DOM元素。

app.run(function($rootScope) { $rootScope.name = "張三"; });

如果頁(yè)面上沒(méi)有明確設(shè)定 $scope ,Angular 就會(huì)把數(shù)據(jù)和函數(shù)都綁定到這里。

這樣,我們就可以在view的任何地方訪問(wèn)這個(gè)name屬性,使用模版表達(dá)式{{}},像這樣:{{ name }} 。


第三組:黃華英 String 方法和頁(yè)面調(diào)用

1. String 方法
String 方法 含義
string.charAt(i) 返回在 string 中 i 位置處的字符。
string.charCodeAt(i) 返回在 string 中 i 位置處的字符編碼。比如字符串“hello world!”charCodeAt(1) 為101
str.indexOf(aaa, start) 在 str 中查找另一個(gè)字符串 aaa返回第一個(gè)被匹配字符的位置,否則返回-1,start表示查找的起始位置
str.lastIndexOf(aaa, start) 與 indexOf 方法類似,但它是從該字符串的末尾開始查找
strA.localeCompare(strB) 比較兩個(gè)字符串。如果 strA比strB小,結(jié)果為負(fù)數(shù),若相等結(jié)果為0
string.match(regexp) 它匹配一個(gè)字符串或者一個(gè)正則表達(dá)式,該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置

比如

str=”123456”
匹配字符串str.match(“12”)得到12
匹配正則表達(dá)式str.match(/\d+/g)得到123456
str.replace(searchstr, replacestr)對(duì) string 進(jìn)行查找和替換操作,并返回一個(gè)新的字符串
string.split(select, limit),split 方法把這個(gè) string 分隔成片段來(lái)創(chuàng)建一個(gè)字符串?dāng)?shù)組

例如

var Strarray =“123456789”
Strarray.split(‘’,4)得到{1},{2},{3},{456789}四個(gè)數(shù)組
string.ToLower(),把 string 中的所有字母轉(zhuǎn)換為小寫格式
string.ToUpper(),把 string 中的所有字母轉(zhuǎn)換為大寫格式
string.fromCharCode(char...),從一串?dāng)?shù)字中返回一個(gè)字符串

2. 頁(yè)面調(diào)用
  • 后臺(tái)調(diào)用父頁(yè)面方法并且關(guān)閉當(dāng)前頁(yè)面
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('操作成功!'); 
parent.ParentFunction ();parent.CloseAlertPage();", true);
  • 前臺(tái)子頁(yè)面調(diào)用父頁(yè)面方法
parent.Parent Function();
  • 父頁(yè)面調(diào)用子頁(yè)面(iframe)的js方法
window.frames["iframe子頁(yè)面的name"].方法名();

第四組:張?jiān)? __main__.py文件與 python -m

PYTHON 的 -M 參數(shù)用于將一個(gè)模塊或者包作為一個(gè)腳本運(yùn)行,而__MAIN__.PY 文件則相當(dāng)于是一個(gè)包的”入口程序“。

首先我們需要來(lái)看看 PYTHON XXX.PY 與 PYTHON -M XXX.PY 的區(qū)別。兩種運(yùn)行 PYTHON 程序的方式的不同點(diǎn)在于,一種是直接運(yùn)行,一種是當(dāng)做模塊來(lái)運(yùn)行。

先來(lái)看一個(gè)簡(jiǎn)單的例子,假設(shè)有一個(gè) PYTHON 文件 RUN.PY,其內(nèi)容如下:

IMPORT SYS
PRINT SYS.PATH

我們用直接運(yùn)行的方式啟動(dòng)(PYTHON RUN.PY),輸出結(jié)果:

['/HOME/HUOTY/ABOUTME/PYTHONSTUDY/MAIN', ...]

然后以模塊的方式運(yùn)行(PYTHON -M RUN.PY):

['', ...]
/USR/BIN/PYTHON: NO MODULE NAMED RUN.PY

由于輸出結(jié)果只列出了關(guān)鍵的部分,應(yīng)該很容易看出他們之間的差異。直接運(yùn)行是把 RUN.PY 文件所在的目錄放到了 SYS.PATH 屬性中。以模塊方式運(yùn)行是把你輸入命令的目錄(也就是當(dāng)前工作路徑),放到了 SYS.PATH 屬性中。以模塊方式運(yùn)行還有一個(gè)不同的地方是,多出了一行 NO MODULE NAMED RUN.PY 的錯(cuò)誤。實(shí)際上以模塊方式運(yùn)行時(shí),PYTHON 先對(duì) RUN.PY 執(zhí)行一遍 IMPORT,所以 PRINT SYS.PATH 被成功執(zhí)行,然后 PYTHON 才嘗試運(yùn)行 RUN.PY 模塊,但是,在 PATH 變量中并沒(méi)有 RUN.PY 這個(gè)模塊,所以報(bào)錯(cuò)。而正確的運(yùn)行方式,應(yīng)該是 PYTHON -M RUN.

這個(gè)例子并不能明顯的說(shuō)明問(wèn)題。接著我們來(lái)看看__MAIN__.PY的作用。

仍然先看例子,有如下一個(gè)包:

package
├── __init__.py
└── __main__.py
__init__.py
import sys
print "__init__"
print sys.path
__main__.py
import sys
print "__main__"
print sys.path

用 PYTHON -M PACKAGE 運(yùn)行結(jié)果:

__init__
['', ...]
__main__
['', ...]

用 PYTHON PACKAGE 運(yùn)行結(jié)果:

__main__
['package', ...]
  • 加上 -m 參數(shù)時(shí)會(huì)把當(dāng)前工作目錄添加到 sys.path 中,而不加時(shí)則會(huì)把腳本所在目錄添加到 sys.path 中。
  • 加上 -m 參數(shù)時(shí) Python 會(huì)先將模塊或者包導(dǎo)入,然后再執(zhí)行
  • __main__.py文件是一個(gè)包或者目錄的入口程序。不管是用 python package 還是用python -m package 運(yùn)行時(shí),__main__.py文件總是被執(zhí)行。

第五組:姜葳 JS刷新頁(yè)面

1. 刷新當(dāng)前頁(yè)面
<script> 
window.location.reload(); 
setTimeout('myrefresh()',1000); //指定1秒刷新一次
</script>
2. JS實(shí)現(xiàn)刷新iframe的方法
<input type="button" name="Button" value="Button" 
onclick="document.frames('ifrmname').location.reload()"> 

< input type="button" name="Button" value="Button" 
onclick="document.all.ifrmname.document.location.reload()">
3. 子頁(yè)面刷新父頁(yè)面
(1)parent.location.href = parent.location.reload();

(2)<script language=JavaScript>
self.opener.location.reload();
</script> 

(或<a href="javascript:opener.location.reload()">刷新</a> )
4.開窗時(shí)刷新和關(guān)閉時(shí)刷新
<body onload="opener.location.reload()"> 開窗時(shí)刷新
<body onUnload="opener.location.reload()"> 關(guān)閉時(shí)刷新
5. AlertPage彈出的窗口,關(guān)閉時(shí)刷新

代碼:

function InvoiceDetail() {
           AlertPage("AmInvoiceDetails.aspx?isNeedVerify=no&Type=verify”, "發(fā)票詳情", 900, 800);
           OpeningDialog.openingDialog.bind("close", function () {
               location.reload();
           })
       }

流水落花春去也,天上人間

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,486評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,600評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,385評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,616評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,798評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,334評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,570評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • AngularJS是什么?AngularJs(后面就簡(jiǎn)稱ng了)是一個(gè)用于設(shè)計(jì)動(dòng)態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先,它是...
    200813閱讀 1,631評(píng)論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,828評(píng)論 18 139
  • 通過(guò)AngularJS仿豆瓣一刻的案例:https://github.com/zhongxiaolian/doub...
    中小戀閱讀 1,770評(píng)論 1 21
  • python學(xué)習(xí)筆記 聲明:學(xué)習(xí)筆記主要是根據(jù)廖雪峰官方網(wǎng)站python學(xué)習(xí)學(xué)習(xí)的,另外根據(jù)自己平時(shí)的積累進(jìn)行修正...
    renyangfar閱讀 3,080評(píng)論 0 10
  • Python 四五事 介紹 Python 相關(guān)工具,工作流程和測(cè)試框架。 發(fā)布于 2014.1.19最后更新 20...
    hzyido閱讀 65,039評(píng)論 0 4