• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    AlertBox彈出層信息提示框效果實現步驟_javascript技巧

    來源:懂視網 責編:小采 時間:2020-11-27 20:55:12
    文檔

    AlertBox彈出層信息提示框效果實現步驟_javascript技巧

    AlertBox彈出層信息提示框效果實現步驟_javascript技巧:在仿Lightbox效果中,已經基本實現了這個效果,這次主要改進了ie6在fixed時的抖動問題。 此外,還增加了一個用來兼容ie6的fixed的方法,覆蓋層也重新包裝,程序也改成組件的結構。 兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safa
    推薦度:
    導讀AlertBox彈出層信息提示框效果實現步驟_javascript技巧:在仿Lightbox效果中,已經基本實現了這個效果,這次主要改進了ie6在fixed時的抖動問題。 此外,還增加了一個用來兼容ie6的fixed的方法,覆蓋層也重新包裝,程序也改成組件的結構。 兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safa

    在仿Lightbox效果中,已經基本實現了這個效果,這次主要改進了ie6在fixed時的抖動問題。
    此外,還增加了一個用來兼容ie6的fixed的方法,覆蓋層也重新“包裝”,程序也改成組件的結構。
    兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safari 5.0.1, chrome 5.0

    效果預覽 http://demo.jb51.net/js/AlertBox/index.htm

    程序說明

    【實現原理】

    彈出層的基本原理在仿Lightbox效果中已經說的差不多了。
    關鍵的地方就是定位,一般相對文檔的定位用absolute就行了。
    要隨屏移動,即相對窗口定位,就用fixed定位。
    這些實現起來都很簡單,除了不支持fixed的ie6。


    【兼容ie6的fixed】

    由于ie6本身不支持fixed定位,只能模擬或取巧來間接實現。
    最原始的方法是在window的scroll事件中不斷修正彈出層的位置。
    后來有人發現還可以通過reflow“離奇”地實現。
    但以上方法都有一個缺陷,滾動時彈出層會“發抖”,很不舒服(可以用緩動等來改善)。

    想要不發抖,可以通過html和css的巧妙應用來實現,具體參考14px的介紹。
    原理是用一個容器代替body,然后對不會動的body絕對定位。
    看來很完美,但有一個致命的問題,這個方法需要修改html結構,會影響到相關的一些東西,例如window的scroll事件等。

    程序中用了另一個方法,通過body的背景和expression來實現,下面是一個兼容的fixed效果:
    代碼如下:






    fixable



    相比前面的方法,這個是比較完美的了,但也有一些問題,例如body的背景只能用fixed,使用expression資源消耗相對較大。
    更大的問題是不能實現用百分比值或right/bottom來定位。
    為了解決這個問題,程序使用了一個定位層,這個層用上面的方法實現fixed定位,尺寸跟窗口大小一樣,并且位置重合,那么只要用一般的定位方法相對這個層定位,就能達到相對窗口定位的效果了。

    兼容程序主要在RepairFixed對象中,首先設置body背景:
    代碼如下:
    if (body.currentStyle.backgroundAttachment !== "fixed") {
    if (body.currentStyle.backgroundImage === "none") {
    body.runtimeStyle.backgroundRepeat = "no-repeat";
    body.runtimeStyle.backgroundImage = "url(about:blank)";
    }
    body.runtimeStyle.backgroundAttachment = "fixed";
    }

    再創建定位層:
    代碼如下:
    layer = document.createElement("");

    定位層還要設置"overflow:hidden",好處是不會因彈出層在document原來的范圍外而自動擴大document。
    ie6測試以下代碼,document會隨著下滾而不斷擴大:
    代碼如下:






    fixable


    加上"overflow:hidden"就可以防止這種情況。

    然后彈出層通過append方法修改為"absolute"定位,并插入到這個定位層,這樣就能實現fixed效果了。

    由于這個定位層比較耗資源,所以在有元素插入時才會插到body中。
    在不需要fixed的時候,要用remove方法從定位層中移除,當定位層內沒有需要定位元素就會自動從body移除。
    ps:隱藏的話expression還會繼續執行,要移出文檔才行。


    【居中效果】

    加入居中擴展程序,并且設置center為true,就會自動相對窗口居中。
    居中的原理跟仿Lightbox效果是一樣的,通過設置負的元素尺寸一半的margin和"50%"的top/left來居中。
    要注意的是不是使用fixed定位時,計算需要加上scrollTop/scrollLeft。


    【覆蓋層】

    在仿Lightbox效果中,ie6的覆蓋層是通過創建一個覆蓋整個頁面的層來做的。
    使用新的兼容fixed方法后,就不用另外做兼容,按照fixed的效果做就行了。
    覆蓋層是由AlertBox擴展而來,它其實就是一個大小跟窗口一樣,并且跟窗口重合的彈出層。
    由于覆蓋層一般只需要定義一個就行了,這里把它做成一個OverLay對象,使用時直接調用它的show和close方法。


    【遮蓋select】

    在仿Lightbox效果中介紹過兩種遮蓋select的方法:隱藏和iframe。
    程序是通過iframe來遮蓋的,放在ie6的兼容擴展程序中。
    在iframe定位時要注意,要定位到彈出層的負的clientTop/clientLeft,這樣才能保證邊框不會被遮住。


    使用技巧

    【定位】

    除了居中,程序會按照彈出層本身的定位樣式來顯示。
    不是fixed定位時要注意,在ie6是相對當前窗口來定位的,其他都是相對第一屏窗口來定位的。
    還要注意,必須聲明DOCTYPE,才能正確定位。
    程序為了盡量通用,降低了效率(用了4個expression),所以最好還是根據實際情況自己來調整。
    ps:需要像定位提示效果那樣預設定位的話,可以自行擴展。

    【鎖定鍵盤】

    使用覆蓋層時,為了防止用戶通過鍵盤操作頁面,可以在document的keydown中執行preventDefault來禁用。
    如果彈出層需要正常操作,只要在彈出層的keydown中執行stopPropagation就行了。

    【拖動彈窗】

    這里只是簡單的加上拖動功能,要注意的是fixed定位時,計算拖動的參考對象是不同的。
    更詳細的拖動介紹可以看看這個拖動效果。


    使用說明

    實例化時,必須有彈出層作為參數:


    Code highlighting produced by Actipro CodeHighlighter (freeware)
    http://www.CodeHighlighter.com/

    -->new AlertBox("idBox");


    可選參數用來設置程序的默認屬性,包括:
    屬性: 默認值//說明
    fixed: false,//是否固定定位
    zIndex: 1000,//層疊數
    onShow: $$.emptyFunction,//顯示時執行
    onClose: $$.emptyFunction//關閉時執行

    還提供了以下方法:
    show:顯示彈出層;
    close:隱藏彈出層;
    dispose:銷毀程序。

    加入兼容ie6擴展程序后,會自動修正ie6的fixed問題,可根據fixSelect屬性設置是否修正select遮蓋bug,默認是。
    加入居中擴展程序后,可根據center屬性設置是否居中,默認否。

    RepairFixed修正fixed對象,可獨立使用,有append和remove方法添加和移除需要fixed的元素,只能在ie6使用。
    OverLay覆蓋層對象,有如下屬性:
    屬性: 默認值//說明
    "color": "#fff",//背景色
    "opacity": .5,//透明度(0-1)
    "zIndex": 100,//層疊值
    還有show和close方法顯示和隱藏覆蓋層。

    打包下載地址

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    AlertBox彈出層信息提示框效果實現步驟_javascript技巧

    AlertBox彈出層信息提示框效果實現步驟_javascript技巧:在仿Lightbox效果中,已經基本實現了這個效果,這次主要改進了ie6在fixed時的抖動問題。 此外,還增加了一個用來兼容ie6的fixed的方法,覆蓋層也重新包裝,程序也改成組件的結構。 兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safa
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 97久人人做人人妻人人玩精品| 成人免费精品网站在线观看影片| 九九精品成人免费国产片| 国产手机在线精品| 国产精品亚洲一区二区三区在线 | 欧美日韩国产精品| 99香蕉国产精品偷在线观看| 中文字幕日韩精品在线| 国产色精品vr一区区三区| 国产成人精品日本亚洲直接| 亚洲av无码国产精品夜色午夜| 精品亚洲欧美无人区乱码| 亚洲国产综合91精品麻豆| 国产精品自在线拍国产| 永久无码精品三区在线4| 精品一区二区三区高清免费观看| 午夜精品在线观看| 国产夫妇精品自在线| 亚洲国产精品综合久久一线| 免费看一级毛片在线观看精品视频 | 精品无码久久久久国产| 午夜成人精品福利网站在线观看 | 国产精品国产三级在线高清观看| 国产精品一二三区| 国产成人精品视频一区二区不卡| 四虎国产精品永免费| 久久亚洲精品无码观看不卡| 久久露脸国产精品| 欧美日韩专区麻豆精品在线| 人妻少妇看A偷人无码精品| 久久国产精品视频| 欧美人与动牲交a欧美精品| 四虎影院国产精品| 亚洲精品中文字幕乱码三区| 亚洲精品无码专区久久久| 在线精品无码字幕无码AV| 中文字幕精品亚洲无线码二区| 中文精品无码中文字幕无码专区| 四虎国产成人永久精品免费| 久久精品国产亚洲AV香蕉| 国产日韩精品中文字无码|