Ⅰ js怎麼監聽移動端鍵盤展開事件
目的 : 監聽移動端鍵盤展開事件
工具 : 移動端, js
思路 : 可以通過監聽窗口大小的改變來實現,當端鍵盤展開時,窗口的大小發生改變,依據此基礎進行判斷.
js 移動端關於頁面布局,如果底部有position:fixed的盒子,又有input,當軟鍵盤彈出收起都會影響頁面布局。這時候Android可以監聽resize事件,代碼如下,而iOS沒有相關事件。
方法一實現代碼:
//獲取當前頁面高度
varwinHeight=$(window).height();
$(window).resize(function(){
varthisHeight=$(this).height();
if(winHeight-thisHeight>50){
//窗口發生改變(大),故此時鍵盤彈出
//當軟鍵盤彈出,在這裡面操作
}else{
//窗口發生改變(小),故此時鍵盤收起
//當軟鍵盤收起,在此處操作
}
});
方法二:監控鍵盤
監控的方式其實篩選下來也不過兩種:
① 時鍾setInterval不停監控
② 系統級別的監控,比如鍵盤出現時候通知window一個事件,但是很遺憾現在還沒有這個事件,但是這個事件等於
input類元素獲取焦點 == 彈出虛擬鍵盤
input類元素失去焦點 == 收起虛擬鍵盤
但是我們前面已經說過,上面的原則不一定可靠,所以該種方案也未必可靠了
基於系統監控這點,我們還可以監控resize事件或者scroll事件,但是經過我的測試,setInterval表現比較好.於是,我們簡單寫一段代碼,可靠是否滿足需求:
window.alert=function(msg){
$('body').append('<div>'+msg+'</div>')
};
functionfixedWatch(el){
if(document.activeElement.nodeName=='INPUT'){
el.css('position','static');
}else{
el.css('position','fixed');
}
}
setInterval(function(){
fixedWatch($('#headerviewheader'));
},500);
如上:移動端鍵盤展開事件即可被監聽.
Ⅱ 這段js文本展開收縮代碼默認是展開的,怎麼設成默認是收縮的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
#div1 {width: 400px; background: lightblue; margin: 0 auto;}
</style>
</head>
<body>
<div id="div1"> 說真的這屆美國隊甜瓜和歐文才是真大腿,每到要分、硬仗的時候沒慫過,歐文的特點擺在這里,正是這種特點才讓他取得現在的成就,歐文在場上現在出球速度並不慢關鍵是其他人真的沒有什麼得分、串聯的能力啊,就像我在其他帖子里說的,這只球隊不缺得分手,缺少的是一名軸心,組織者,要是保羅、老詹、哈登來其一都可以讓進攻流暢起來,總之,這個鍋不應該歐文來背。
<a href="javascript:;">>>收縮</a>
</div>
</body>
<script type="text/javascript">
var oDiv=document.getElementById('div1');
var oA=oDiv.getElementsByTagName('a');
var onOff=false;
var old='';
old=oDiv.innerHTML;
oDiv.innerHTML=oDiv.innerHTML.substring(0,20)+'......<a href="javascript:;">>>展開</a>';
oA[0].onclick=function move()
{
if(onOff)
{
onOff=false;
old=oDiv.innerHTML;
oDiv.innerHTML=oDiv.innerHTML.substring(0,20)+'......<a href="javascript:;">>>展開</a>';
oA=oDiv.getElementsByTagName('a');
oA[0].onclick=move;
}
else
{
onOff=true;
oDiv.innerHTML=old;
oA=oDiv.getElementsByTagName('a');
oA[0].onclick=move;
}
}
</script>
</html>
Ⅲ js 超出100個字隱藏展開問題
用JQUERY 比較好實現 給你需要實現該效果的DIV加上 name="content" 就行 具體代碼 看附件
下載後 直接用瀏覽器打內開 裡面的100 代表容50個漢字 你換成200 就行 然後自己加個dIV 字數少點 就可以看到效果了 下班了 沒時間測 應該沒問題
Ⅳ 怎麼用js或jq點擊展開,出現隱藏的DIV,點擊收起DIV又隱藏起來.
<script src="jquery-1.8.2.js"></script>
<script>
/*展開和收起用一個div,也可以說它是個按鈕,假設它的id=d1;
假設需要顯示和隱藏的div叫d2;
下面這段代碼只是粗略的實現了你的要求,主要是給你提供個思路;
*/
$(function(){
$('#d1').click(function(){//給d1綁定一個點擊事件;
/*這個判斷的意義是,如果d2是隱藏的,那麼讓它顯示出來,並將d1的文本內容替換成收起,
如果是顯示的,那麼就隱藏它並將d1的文本內容替換為展開;*/
if($('#d2').is(':hidden'))
{
$('#d2').slideDown('slow');
$(this).text('收起');
}else{
$('#d2').slideUp('slow');
$(this).text('展開');
}
/*這是一個很簡單的事件處理,如果還需要跟上圖片的變換,就在判斷的對應位置寫入圖片或者背景變換的代碼,*/
});
});
</script>
<div id='d1'>展開</div>
<div id='d2' style=" display:none">內容</div>