.focus
class:focus
HTML
new View()
<link href="./css/view.css" type="text/css" rel="stylesheet">
<div class="search_keyborad" id="search">
<a data-key="A">A</a>
<a data-key="B">B</a>
<a data-key="B">C</a>
...
</div>
<ul class="search_list" id="list">
<li class="search_item">
<img src="" >
<h3>11DNA</h3>
</li>
<li class="search_item">
<img src="" >
<h3>22DNA</h3>
</li>
...
</ul>
<script type="text/javascript" src="./js/smoothscroll.min.js"></script>
<script type="text/javascript" src="./js/view.js"></script>
var S = $('search');
var L = $('list');
var V = new View(S);
var Vl = new View(L);
V.init(S.getElementsByTagName('a'));
Vl.init(L.getElementsByTagName('li'));
V.onfocus();
**** new View(container)
new View(#container)``n*m
V.init(children)``nodeList
var con = document.getElemetById('con');
var V = new View(con);
container
getElementsByTagName
var child = [ nodeA,nodeB,nodeC ];
V.init(child)
a
<div id="con">
<a></a>
<div>
<span></span>
<a></a>
<a></a>
</div>
<a></a>
</div>
V.init(S.getElementsByTagName('a'));
//
ajax({
url:'XXX',
sunccess:function(data){
var html = '';
for(var i=0;i<data.length;i++){
html+='<a>'+data[i]+'</a>';
}
S.innerHTML = html;
V.init(S.getElementsByTagName('a'));
}
})
ajax({
url:'XXX',
sunccess:function(data){
var div = document.createElement("div");
var html = '';
for(var i=0;i<data.length;i++){
html+='<a>'+data[i]+'</a>';
}
div.innerHTML = html;
M.appendChild(div);
V.insertAfter(M.getElementsByTagName('a'));
}
})
M.appendChild(node)``M.inderHTML+=html
M.inderHTML += html;
//
M.inderHTML = M.inderHTML + html;
insertAfter
()
var V = new View(S);
V.onfocus();
focus``focus
autofocus``0
autofocus=true
(DOM)
<div>
<a></a>
<a autofocus="true"></a>
<a></a>
<a></a>
</div>
id
()
index
()
index
<div>
<a></a> <!--0-->
<div>
<span></span>
<a></a> <!--1-->
<a></a> <!--2-->
</div>
<a></a> <!--3-->
</div>
index``null
dir``left``right``up``down
V.findByDir['right','down','down'] //
if(!this.findByDir['down','down']){
//...
this.down();
//...
}
V.init(nodeList)
var rules = [
[1,1,3,null],//0
[null,2,3,0],
[1,null,3,1],
[1,2,null,0],
]
V.sortby(rules);
00``[1,1,3,null]
1 |
1 | |
1 |
1 | |
3 |
3 | |
null |
pressIn
V.isCurrent
V.ok = function(item){
if(this.isCurrent){
console.log('');
}else{
console.log(item)//dom
}
}
///
V.left``shake
300mscss/view.css
V.left = function(){
Vl.onfocus();//VVl
}
V.move = function (prev, current) {
//prev
//current
}
current``tab``false
current``tab
okfalse
current
true
scrollTop``scrollLeft``overflow:hidden|auto
scroll-behavior: smooth
smoothscroll.min.js``V.scrollAnimate = true
actionup``right``down``left``ok``back
V.right = function () {
Vnav.onfocus();
Vnav.onkey('right');
Vnav.onkey('down');
}
moveLeft``moveUp``moveRight``moveDown``doConfirm``keyBack
//console
moveLeft();
moveUp();
//...
ok
demo
overflow:auto
,overflow:hidden
http://xboxyan.codelabo.cn/auto-keyboard/example/index.html