發現了intro.js - 一種非常酷的方式來指導用戶如何使用軟件界面。我深深地看了看源代碼,但想知道是否有人可以簡單地解釋代碼如何實現突出顯示的區域(特別是尺寸/位置/ zindexing)以實現效果。IntroJs如何實現突出顯示的區域?
在此先感謝 周杰倫
鏈接: http://usablica.github.com/intro.js/
發現了intro.js - 一種非常酷的方式來指導用戶如何使用軟件界面。我深深地看了看源代碼,但想知道是否有人可以簡單地解釋代碼如何實現突出顯示的區域(特別是尺寸/位置/ zindexing)以實現效果。IntroJs如何實現突出顯示的區域?
在此先感謝 周杰倫
鏈接: http://usablica.github.com/intro.js/
好 - 很簡單。
我是Afshin,Intro.js的作者。讓我介紹一下它是如何工作的。
在聚焦/突出顯示的元素中,發生了兩件不同的事情:
1)製作一個輔助圖層。輔助圖層是聚焦元素中的白色圓角圖層。
2)更改目標元素的z-index
和position
,以便將元素放在頁面中所有其他元素的前面。
如果目標元素的位置(即,應聚焦在元件/突出顯示)是:
絕對/相對: IntroJs剛剛設定的目標元件z-index
到9999999
,因此目標元件進入到前的頁面中的所有其他元素。
靜態: 現在,IntroJs目標元素位置設置爲relative
然後設置z-index
到9999999
。
現在,目標元素位於頁面中所有其他元素的前面。所以,最後一步仍然是創建助手元素。
爲了創建輔助層,IntroJs剛剛得到的高度,寬度,頂部和左側目標元素的,然後創建具有introJs-helperLayer
類(和位置absolute
)一個div
並將它附加到所述body
。
結論
爲了集中的元件上,IntroJs確實兩個步驟,首先創建一個輔助層(在頁面圓角層),然後使目標元素含量relative
以便把它到頁面中所有元素的前面。
如果目標元素的位置是固定的,那麼目標元素不會被提升到頂部。固定元素似乎給z-index帶來了複雜性...有沒有解決intro.js中的這個問題的方法? – NeoWang 2013-11-28 15:47:32
關於我最後的評論的更多解釋,這是Chrome特有的問題,因爲這個奇怪的新功能:http://updates.html5rocks.com/2012/09/Stacking-Changes-Coming-to-position-fixed-elements 。 – NeoWang 2013-11-28 16:16:21
我很想對這個問題發表評論。試圖現在修復。還有ul/li元素 – 2016-10-04 07:14:08
嘿@ jaysmith024,如果您有答案,請將其標記爲「答案」。謝謝。 – 2013-03-29 07:15:57