強大的抄HTML5提供了一種新的標簽<progress>,只需要通襲過該標簽+簡單的js,即可以實現進度條滾動的效果。
代碼如下:
HTML
1<progressmax="100" value="0" id="pg"></progress>這個標簽意義很明確,並且屬性只有以上兩個,max表示需要完成的任務量,value是目前完成的任務量。
js
12345varpg=document.getElementById('pg');setInterval(function(e){if(pg.value!=100) pg.value++;elsepg.value=0;},100);以上的實現方式不僅更加的語義化,同時也極大的簡化了我們的代碼,並且靈活性更高,所以熟練使用HTML5是非常有必要的!
不過HTML5標簽的瀏覽器兼容性也是我們需要考慮的一個問題,所以如果網頁需求的兼容性比較高的話,特別是對低版本IE有兼容需求的話,那麼HTML5的標簽就不太適用了。以下為<progress>的瀏覽器支持情況。
2. JS如何實現圖片滑動
<script language="javascript" type="text/javascript">
//圖片滾動展示 Start
var counts = 4;
//大圖//
img1 = new Image();
img1.src = 'images/1.jpg';
img2 = new Image();
img2.src = 'images/2.jpg';
img3 = new Image();
img3.src = 'images/3.jpg';
img4 = new Image();
img4.src = 'images/4.jpg';
var smallImg = new Array();
//小圖
smallImg[0] = 'images/index_adb1.gif';
smallImg[1] = 'images/index_adb2.gif';
smallImg[2] = 'images/index_adb3.gif';
smallImg[3] = 'images/index_adb4.gif';
//鏈接地址
url1 = new Image();
url1.src = ' http://www..com';
url2 = new Image();
url2.src = ' http://www.qzxtg.com';
url3 = new Image();
url3.src = ' http://www.soso.com';
url4=new Image();
url4.src=' http://www.sina.com.cn'
//alt值
alt1 = new Image();
alt1.alt = '';
alt2 = new Image();
alt2.alt = '';
alt3 = new Image();
alt3.alt = ' ';
alt4 = new Image();
alt4.alt='';
////歡迎來到標准之路.
var nn = 1;
var key = 0;
function change_img() {
if (key == 0) {
key = 1;
} else if (document.all) {
document.getElementById("pic").filters[0].Apply();
document.getElementById("pic").filters[0].Play(ration = 2);
}
eval('document.getElementById("pic").src=img' + nn + '.src');
eval('document.getElementById("url").href=url' + nn + '.src');
eval('document.getElementById("pic").alt=alt' + nn + '.alt');
if (nn == 1) {
document.getElementById("url").target = "_blank";
document.getElementById("url").style.cursor = "pointer";
} else {
document.getElementById("url").target = "_blank"
document.getElementById("url").style.cursor = "pointer"
}
for ( var i = 1; i <= counts; i++) {
document.getElementById("xxjdjj" + i).className = 'axx';
}
document.getElementById("xxjdjj" + nn).className = 'bxx';
nn++;
if (nn > counts) {
nn = 1;
}
tt = setTimeout('change_img()', 7000);
}
function changeimg(n) {
nn = n;
window.clearInterval(tt);
change_img();
}
function imageshow() {
document.write('<div class="picshow_main">');
document.write('<div><a id="url"><img id="pic" class="imgbig" /></a></div>');
document.write('<div class="picshow_change">');
for ( var i = 0; i < counts; i++) {
document.write('<a href="javascript:changeimg(' + (i + 1)
+ ');" id="xxjdjj' + (i + 1)
+ '" class="axx" target="_self"><img src="' + smallImg[i]
+ '"></a>');
}
document.write('</div></div>');
change_img();
}
//圖片滾動展示 End
</script>
<script language="javascript" type="text/javascript">
imageshow();
</script>
3. js移動div怎麼做出滑動的效果
1:使用js的插件 目前主流的js庫 比如jq 也有手勢的插件,
2:還有移動端的zepto庫 也有手勢插件,
3:另外還有個叫QuoJS的手勢插件 這個插件不依賴任何的庫,
4:早期的應該是用wml語言支持的WMLScript實現。
5:舉例:使用iscroll.js實現
1)下載iScroll.js,網路搜索iScroll.js下載即可
2)引入iScroll.js,在要使用滑動效果的地方,引入iScroll.js文件
3)編寫規范的html格式
只有如下格式才能實現滑動效果
<div id="wrapper">
<div class="scroll">
這個區域可以滑動
</div>
</div>
如下格式不能滑動
<div id="wrapper">
<div class="other">這個區域可以滑動</div>
<div class="scroll">
這個區域不可以滑動了
</div>
</div>
只有wrapper的第一個子元素才能實現滑動效果。
4)編寫js調用代碼
var Scroll = new iScroll('wrapper',{hScrollbar:false, vScrollbar:false});
第一參數必需是滑動元素的父元素的id。
主要參數一覽:
hScroll: true, 左右滑動,默認為true
vScroll: true,上下滑動
hScrollbar: true, 是否顯示y軸滾動條,默認為顯示
vScrollbar: true,是否顯示X軸滾動條,默認為顯示
4. 怎麼用js實現類似手機切屏的左右滑動的效果
這是自己復封裝的原生js方法,為了制偷懶,用了電jqurey。調用方法如下:
touchs._left(object);//往左滑動,
touchs._right(object);//往右滑動
touchs._top(object);//往上滑動
touchs._bottom(object);//往下滑動
說明:object的取值可以是一個id("#id")表達式,或者是一個樣式表達式(".class"),或者標簽的屬性表達式("div[id=id]")等,只要可以用jqurey通過這個表達式獲取到dom對象,這個表達式怎麼寫都可以。
5. js或jq怎麼實現滾輪控制頁面上下滑動
jQuery監聽滑鼠滾輪(滾動)事件
第一步:下載jquery-mousewheel插件
第二步:復制以下代碼做測試,打開日誌看內效果
jQuery(function($) {
$('#nav')
.bind('mousewheel', function(event, delta) {
var dir = delta > 0 ? 'Up' : 'Down';
if (dir == 'Up') {
console.log(「向容上滾動, www.imiansha.com」);
} else {
console.log(「向下滾動, http: //blog.csdn.net/u011627980」);
}
return false;
});
});
}
6. 頁面實現滑動JS代碼
js實現隨頁面滑動效果的方法。具體如下:
頁面向上向下滾動,分享到的模塊隨著滑動。
要點:
代碼如下:
var scrtop =document.documentElement.scrollTop||document.body.scrollTop;
var height = document.documentElement.clientHeight||document.body.clientHeight;
var top = scrtop + (height - jb51.offsetHeight)/2;
top = parseInt(top);
獲得頁面垂直居中的位置
上代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>無標題文檔</title>
<style>
body{margin:0; padding:0; font:12px/1.5 arial; height:2000px;}
#jb51{width:100px; height:200px; line-height:200px;
text-align:center; border:1p solid #ccc;
background:#f5f5f5; position:absolute; left:-100px; top:0;}
#jb51_tit{position:absolute; right:-20px; top:60px;
width:20px; height:60px; padding:10px 0;
background:#06c; text-align:center;
line-height:18px; color:#fff;}
</style>
<script>
window.onload = function(){
var jb51 = document.getElementById("jb51");
jb51.onmouseover = function(){
startrun(jb51,0,"left")
}
jb51.onmouseout = function(){
startrun(jb51,-100,"left")
}
window.onscroll = window.onresize = function(){
var scrtop=document.documentElement.scrollTop||document.body.scrollTop;
var height=document.documentElement.clientHeight||document.body.clientHeight;
var top = scrtop + (height - jb51.offsetHeight)/2;
top = parseInt(top);
startrun(jb51,top,"top")
}
}
var timer = null
function startrun(obj,target,direction){
clearInterval(timer);
timer = setInterval(function(){
var speed = 0;
if(direction == "left"){
speed = (target-obj.offsetLeft)/8;
speed = speed>0?Math.ceil(speed):Math.floor(speed);
if(obj.offsetLeft == target){
clearInterval(timer);
}else{
obj.style.left = obj.offsetLeft + speed + "px";
}
}
if(direction == "top"){
speed = (target-obj.offsetTop)/8;
speed = speed>0?Math.ceil(speed):Math.floor(speed);
if(obj.offsetTop == target){
clearInterval(timer);
}else{
obj.style.top = obj.offsetTop + speed + "px";
}
document.title = obj.offsetTop + ',' + target + ',' +speed;
}
},30)
}
</script>
</head>
<body>
<div id="jb51">
分享到內容
<span id="jb51_tit">分享到</span>
</div>
</body>
</html>
7. 移動端的一個js效果:手滑動向上向下滾動li標簽
試試以下代碼:
<!DOCTYPEhtml>
<html>
<head>
<matacharset="utf-8"/>
<linkrel="stylesheet"href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">
<scriptsrc="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<scriptsrc="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script>
$(document).on("pageinit","#pageone",function(){
$(document).on("scrollstop",function(){
alert("停止滾動!");
});
});
</script>
</head>
<body>
<divdata-role="page"id="pageone">
<divdata-role="header">
<h1>scrollstop事件</h1>
</div>
<divdata-role="content">
<p><b>提示:</b>如果未出現滾動條,請嘗試調整窗口尺寸。</p>
<uldata-inset="true">
<lidata-role="list-divider">信息列表</li>
<lidata-role="fieldcontain">大學1</li>
<lidata-role="fieldcontain">大學大學2</li>
<lidata-role="fieldcontain">大學大學3</li>
<lidata-role="fieldcontain">大學大學4</li>
<lidata-role="fieldcontain">信息大學5</li>
<lidata-role="fieldcontain">大學6</li>
<lidata-role="fieldcontain">大學信息7</li>
<lidata-role="fieldcontain">信息大學8</li>
<lidata-role="fieldcontain">信息大學大學9</li>
<lidata-role="fieldcontain">信息大學10</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
<lidata-role="fieldcontain">信息大學11</li>
<lidata-role="fieldcontain">信息大學12</li>
</ul>
</div>
<divdata-role="footer">
<h1>頁腳文本</h1>
</div>
</div>
</body>
</html>
8. 手機端如何用JS實現觸屏 表格列左右滑動的效果
手機觸屏就那幾個事件,左右就判斷下 X坐標就行了,事件觸發的判斷 你可以專參考下我這個文章屬,希望有幫助。http://blog.csdn.net/waterdemo/article/details/38112545
9. js如何實現慣性滑動效果
主要思路是:滑鼠當前點到下一點直接間隔計算出速度。這樣就實現了慣性滑動效果。
下面是簡單的js代碼實現:僅供參考:
<style>
#div1{width:100px;height:100px;background:red;position:absolute;left:0px;top:0;}
</style>
<script>
window.onload=function(){
varoDiv=document.getElementById('div1');
variSpeedX=0;
variSpeedY=0;
varlastX=0;
varlastY=0;
vartimer=null;
oDiv.onmousedown=function(ev){//div的滑鼠按下事件,主要計算滑鼠當前位置,和移動位置。這樣可以計算出滑鼠移動速度。
varoEvent=ev||event;
vardisX=oEvent.clientX-oDiv.offsetLeft;
vardisY=oEvent.clientY-oDiv.offsetTop;
clearInterval(timer);
document.onmousemove=function(ev){//滑鼠拖動事件。
varoEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
iSpeedX=oEvent.clientX-lastX;
iSpeedY=oEvent.clientY-lastY;
lastX=oEvent.clientX;
lastY=oEvent.clientY;
}
document.onmouseup=function(){//當滑鼠抬起後,清掉移動事件。
document.onmousemove=null;
document.onmouseup=null;
oDiv.releaseCapture&&oDiv.releaseCapture();
startMove();
}
oDiv.setCapture&&oDiv.setCapture();
returnfalse;
}
functionstartMove(){//移動函數,主要操作是計算滑鼠移動速度和移動方向。
clearInterval(timer);
timer=setInterval(function(){
iSpeedY+=3;
vart=oDiv.offsetTop+iSpeedY;
varl=oDiv.offsetLeft+iSpeedX;
if(t>document.documentElement.clientHeight-oDiv.offsetHeight){
t=document.documentElement.clientHeight-oDiv.offsetHeight;
iSpeedY*=-0.8;
iSpeedX*=0.8;
}
if(t<0){
t=0;
iSpeedY*=-0.8;
iSpeedX*=0.8;
}
if(l>document.documentElement.clientWidth-oDiv.offsetWidth){
l=document.documentElement.clientWidth-oDiv.offsetWidth;
iSpeedX*=-0.8;
iSpeedY*=0.8;
}
if(l<0){
l=0;
iSpeedX*=-0.8;
iSpeedY*=0.8;
}
oDiv.style.left=l+'px';
oDiv.style.top=t+'px';
if(Math.abs(iSpeedX)<1)iSpeedX=0;
if(Math.abs(iSpeedY)<1)iSpeedY=0;
if(iSpeedX==0&&iSpeedY==0&&t==document.documentElement.clientHeight-oDiv.offsetHeight){
clearInterval(timer);
}
document.title=i++;
},30);
}
};
</script>
</head>
<body>
<divid="div1"></div>
</body>
10. js控制頁面滾動(實例)
目標描述:多個圖片排列下來,按右邊的小按鈕,抵達相應位置,滑鼠滑動,抵達下一圖,或者上一圖
知識點:onmousewheel,addEventListener,scrollTo,setTimeout
過程:
1.body 寬,高釘死,100vw,100vh,overflow:hidden 使得不出現滾動條,不然不好看
2.圖片放進去,排起來,(注意:默認空隙的處理,可以使用flex布局,空隙就不見了)
3.製作相對於視窗的按鈕,幾張圖片就幾個按鈕,(position: fixed;計算一下高度,可以利用calc計算top使得上下居中)
4.美化一下,css寫寫
5.先寫簡單的按鈕事件
6.寫監聽滑動事件(onmousewheel在火狐無效,DOMMouseScroll只在火狐有效)
react在componentDidMount的時候監聽
7.補充寫一下火狐的
9.測試檢查一下。
完成啦,啦啦啦~
我的截圖:
缺點:這里我是一直對頁面進行監聽,導致滑動過快對時候動畫效果開始執行對時間延後。體現為滑動對輕,整個就流暢一點。
ps:寫這種帶計算帶頁面,我覺得是考驗思維的,你可以對這里的知識點不熟練,但是你必須得能理解每一步的加加減減。