日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前在webkit上開發一個滾動控件,需要完成的是一段文字,上下鍵可以滾動,且自定義滾動條。第一想法就是瀏覽器原生overflow:scroll,且webkit支持自定義滾動條樣式:

webkit自定義滾動條樣式:

CSS

/*定義滾動條高寬及背景 高寬分別對應橫豎滾動條的尺寸*/

::-webkit-scrollbar

{

width: 0.05rem;

height:1rem;

background-color: transparent;

}

/*定義滾動條軌道 內陰影+圓角*/

::-webkit-scrollbar-track

{

background-color: transparent;

}

/*定義滑塊 內陰影+圓角*/

::-webkit-scrollbar-thumb

{

border-radius: 0.1rem;

/*-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);*/

background-color: rgba(255,255,255,0.6);

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

/*定義滾動條高寬及背景 高寬分別對應橫豎滾動條的尺寸*/

::-webkit-scrollbar

{

width:0.05rem;

height:1rem;

background-color:transparent;

}

/*定義滾動條軌道 內陰影+圓角*/

::-webkit-scrollbar-track

{

background-color:transparent;

}

/*定義滑塊 內陰影+圓角*/

::-webkit-scrollbar-thumb

{

border-radius:0.1rem;

/*-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);*/

background-color:rgba(255,255,255,0.6);

}

后來換了個引擎,發現其他引擎不支持自定義滾動條,那就滿足不了UED的要求了。來同事推薦使用IScroll,用了一下,確實比較方便,與平臺無關,可操作的屬性還有性能都很理想,記錄一下:

首先看官方文檔?https://iiunknown.gitbooks.io/iscroll-5-api-cn/content/versions.html

github地址:https://github.com/cubiq/iscroll

demo:http://cubiq.org/dropbox/iscroll4/examples/simple/

直接拿demo中的iscroll.js套到自己的工程上,一個段落就是一個li,new 一下就完事了,滾動拖動也很happy。然后發現,我按上下方向鍵沒有響應。

IScroll按鍵事件綁定:

查源碼看iscroll的事件處理,都在handleEvent函數里面

JavaScript

handleEvent: function (e) {

var that = this;

switch(e.type) {

case START_EV:

if (!hasTouch && e.button !== 0) return;

that._start(e);

break;

case MOVE_EV: that._move(e); break;

case END_EV:

case CANCEL_EV: that._end(e); break;

case RESIZE_EV: that._resize(); break;

case WHEEL_EV: that._wheel(e); break;

case 'mouseout': that._mouseout(e); break;

case TRNEND_EV: that._transitionEnd(e); break;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

handleEvent:function(e){

varthat=this;

switch(e.type){

caseSTART_EV:

if(!hasTouch&& e.button !== 0) return;

that._start(e);

break;

caseMOVE_EV:that._move(e);break;

caseEND_EV:

caseCANCEL_EV:that._end(e);break;

caseRESIZE_EV:that._resize();break;

caseWHEEL_EV:that._wheel(e);break;

case'mouseout':that._mouseout(e);break;

caseTRNEND_EV:that._transitionEnd(e);break;

}

}

根本就沒有keyEvent,看來偷懶是不行的,官方文檔看一下,原來iscroll有5個版本,各自平臺都是不一樣的,demo中這個估計是移動平臺用的iscroll-lite版本,移動平臺根本不鳥方向鍵的。

去github上down下來源碼,找了找,build目錄下,5個版本都有。用最原始的common版本,這個版本的handleEvent就豐富多了:

JavaScript

handleEvent: function (e) {

switch ( e.type ) {

case 'touchstart':

case 'pointerdown':

case 'MSPointerDown':

case 'mousedown':

this._start(e);

break;

case 'touchmove':

case 'pointermove':

case 'MSPointerMove':

case 'mousemove':

this._move(e);

break;

case 'touchend':

case 'pointerup':

case 'MSPointerUp':

case 'mouseup':

case 'touchcancel':

case 'pointercancel':

case 'MSPointerCancel':

case 'mousecancel':

this._end(e);

break;

case 'orientationchange':

case 'resize':

this._resize();

break;

case 'transitionend':

case 'webkitTransitionEnd':

case 'oTransitionEnd':

case 'MSTransitionEnd':

this._transitionEnd(e);

break;

case 'wheel':

case 'DOMMouseScroll':

case 'mousewheel':

this._wheel(e);

break;

case 'keydown':

this._key(e);

break;

case 'click':

if ( !e._constructed ) {

e.preventDefault();

e.stopPropagation();

}

break;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

handleEvent:function(e){

switch(e.type){

case'touchstart':

case'pointerdown':

case'MSPointerDown':

case'mousedown':

this._start(e);

break;

case'touchmove':

case'pointermove':

case'MSPointerMove':

case'mousemove':

this._move(e);

break;

case'touchend':

case'pointerup':

case'MSPointerUp':

case'mouseup':

case'touchcancel':

case'pointercancel':

case'MSPointerCancel':

case'mousecancel':

this._end(e);

break;

case'orientationchange':

case'resize':

this._resize();

break;

case'transitionend':

case'webkitTransitionEnd':

case'oTransitionEnd':

case'MSTransitionEnd':

this._transitionEnd(e);

break;

case'wheel':

case'DOMMouseScroll':

case'mousewheel':

this._wheel(e);

break;

case'keydown':

this._key(e);

break;

case'click':

if(!e._constructed){

e.preventDefault();

e.stopPropagation();

}

break;

}

}

然后套用上去,可以支持方向鍵了。中間遇到兩個小問題,第一個是按鍵一直沒反應,檢查下是z-index太小,keyEvent被上層元素拿走了;第二個是只有在#warpper拿到focus的時候才響應按鍵,但我用的引擎不支持focus,這個也不難,頁面強行綁定handleEvent:

JavaScript

document.addEventListener("keydown", function(evt) {

if (evt.keyCode === keyCodes.ENTER) {

} else {

myScroll && myScroll.handleEvent(evt);

}

}, false);

1

2

3

4

5

6

document.addEventListener("keydown",function(evt){

if(evt.keyCode===keyCodes.ENTER){

}else{

myScroll&& myScroll.handleEvent(evt);

}

},false);

然后整個頁面隨便按什么鍵,都可以響應了。接下來就是滾動條樣式的問題了,這個也簡單,跟著官方文檔&樣例走就行

http://lab.cubiq.org/iscroll5/demos/styled-scrollbars/

關鍵步驟有三個:

1.option

JavaScript

myScroll = new IScroll(document.getElementById('wrapper'), {

keyBindings: true, // 綁定按鍵事件

scrollbars: 'custom', // 自定義樣式

resizeScrollbars: false // 是否自動縮放滾動條

});

1

2

3

4

5

myScroll=newIScroll(document.getElementById('wrapper'),{

keyBindings:true,// 綁定按鍵事件

scrollbars:'custom',// 自定義樣式

resizeScrollbars:false// 是否自動縮放滾動條

});

設置了scrollbars: 'custom',在頁面的Elements就可以找到

里面還包含了

第一個是滾動區域,第二個是滾動條。拿到Element就好辦了,css給定樣式:

CSS

.iScrollVerticalScrollbar {

position: absolute;

z-index: 9999;

width: 0.1rem;

bottom: 2px;

top: 2px;

right: 0;

overflow: hidden;

}

.iScrollIndicator {

position: absolute;

width: 0.08rem; height: 0.3rem;

background: rgba(255,255,255,0.6);

border-radius: 0.1rem;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

.iScrollVerticalScrollbar{

position:absolute;

z-index:9999;

width:0.1rem;

bottom:2px;

top:2px;

right:0;

overflow:hidden;

}

.iScrollIndicator{

position:absolute;

width:0.08rem;height:0.3rem;

background:rgba(255,255,255,0.6);

border-radius:0.1rem;

}

大功告成!

當然,IScroll不止這點功能,官方文檔后面還有無限滾動等高級用法,以后用到再添加。

總結

以上是生活随笔為你收集整理的android 滚动条自定义样式,IScroll的使用-方向键绑定自定义滚动条样式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产卡一卡二卡三 | 国产免费成人 | 玉足调教丨vk24分钟 | 日韩欧美中文字幕在线观看 | 成人性生交大片免费看中文 | 无码av免费精品一区二区三区 | 桃色视屏| 户外露出一区二区三区 | 成人精品视频在线播放 | 成人精品影院 | 成人动漫一区 | 亚洲最新网址 | xnxx国产| 久久中文娱乐网 | 艳妇臀荡乳欲伦交换在线播放 | 亚洲精品免费电影 | 欧美视频一二三区 | 悠悠色综合 | 夜夜夜影院 | 亚洲精品动漫在线观看 | 一级片欧美 | 爱av导航| 欧美日韩免费看 | 美女啪啪无遮挡 | 色多多网站 | 欧美国产成人精品一区二区三区 | 欧美老熟妇喷水 | 理论在线视频 | 一级肉体全黄裸片中国 | 人人插人人爽 | 在线看你懂得 | 91精品免费 | 天堂av免费在线观看 | 精品久久久久久无码中文野结衣 | 香蕉视频污视频 | 精品98| 国产在线中文字幕 | 18禁裸乳无遮挡啪啪无码免费 | 亚洲天堂一区 | 成人音影 | av在线地址 | 韩国中文字幕在线观看 | 亚洲综合另类小说 | 欧美一级久久 | 成人综合色站 | 国产成人无码AA精品区 | 国产精品无码一区二区三区三 | 久久亚洲无码视频 | 亚洲av无码国产精品久久不卡 | 国产成人愉拍精品久久 | 在线免费看黄视频 | 亚洲青色在线 | 欧美黑吊大战白妞欧美大片 | 黄色大片网站 | 在线观看亚洲视频 | a级在线视频| 亚洲小视频在线播放 | 麻豆网站在线免费观看 | 欧美日韩少妇 | 97超碰在线免费 | 麻豆亚洲av成人无码久久精品 | 天天干天天爱天天射 | 二级毛片在线观看 | 黄色在线免费视频 | 免费吃奶摸下激烈视频 | 已满十八岁免费观看全集动漫 | www啪啪 | 国产又粗又猛又爽又黄的 | 91蝌蚪少妇偷拍 | 欧美xxxx在线 | 亚洲无吗一区二区三区 | 黄av在线播放 | 免费观看一区二区三区视频 | 日本草草影院 | 亚洲天堂区| 免费看av毛片 | 草草视频在线观看 | 亚洲第一大综合区 | 亚洲激情图片 | 亚洲美女综合网 | 女人十八岁毛片 | 蜜桃精品一区二区 | 人妻一区二区三区视频 | 免费的黄色大片 | 天天躁日日躁狠狠很躁 | 欧美精品一区二区免费看 | 午夜少妇久久久久久久久 | 亚洲天堂网站 | 激情综合丁香五月 | 无码日韩人妻精品久久蜜桃 | cao我| 免费国产网站 | 青娱乐国产盛宴 | 国产成人啪精品午夜在线观看 | av第下页| 懂色中文一区二区在线播放 | 色网站在线看 | 伊人伊人鲁 | 久热久操|